30个物联网传感器小实验:三行代码点亮LED灯

以下所有实验均要求树莓派刷入完整版Raspbian操作系统,也就是官网上Raspbian Stretch with desktop and recommended software的版本。

三行代码点亮LED灯

  • 接线图如下:

  • 代码如下:
from gpiozero import LED

red = LED(17)

while True:red.on()
  • 在终端运行python3 LED.on.py即可点亮LED灯!

LED灯闪烁

  • 新建LED.blink.py文件,代码如下:
from gpiozero import LED
from signal import pause

red = LED(17)

red.blink()

pause()

核心在于on()方法改成了blink()方法,再运行python3 LED.blink.py即可闪烁!

LED灯调亮度

  • 新建LED.pwn.py文件,代码如下:
from gpiozero import PWMLED
from time import sleep

led = PWMLED(17)

while True:
    led.value = 0  # 全灭
    sleep(1)
    led.value = 0.5  # 半亮
    sleep(1)
    led.value = 1  # 全亮
    sleep(1)

核心在于使用的类改为PWMLED,不再是LED类了。在命令行界面运行python3 LED.pwn.py之后,可以看到LED灯全灭、半亮、全亮,间隔1s,交替运行。

LED淡入淡出

  • 新建LED.pulse.py文件,代码如下:
from gpiozero import PWMLED
from signal import pause

led = PWMLED(17)

led.pulse()

pause()

核心在于使用了pulse()函数,可以观察到led等淡入淡出的效果!

不写一行代码点亮LED灯

  • 在命令行界面使用pinout命令,输出各针脚定义。

  • (2)号口5v电压接1kΩ的电阻,接LED长脚正极,LED负极接(6)号GND地线负极,这样LED灯直接就会点亮,不写一行代码!

全彩RGB灯

  • 红绿蓝分别接GPIO(2)、GPIO(3)、GPIO(4)口,新建RGBLED.py文件,代码如下:
RGBLED.py
from __future__ import division  # required for python 2
from gpiozero import RGBLED
from time import sleep

led = RGBLED(red=2, green=3, blue=4)

led.red = 1  # full red
sleep(1)
led.red = 0.5  # half red
sleep(1)

led.color = (0, 1, 0)  # full green
sleep(1)
led.color = (1, 0, 1)  # magenta
sleep(1)
led.color = (1, 1, 0)  # yellow
sleep(1)
led.color = (0, 1, 1)  # cyan
sleep(1)
led.color = (1, 1, 1)  # white
sleep(1)

led.color = (0, 0, 0)  # off
sleep(1)

# slowly increase intensity of blue
for n in range(100):
    led.blue = n/100
    sleep(0.1)
  • 在命令行界面,运行以上代码python RGBLED.py,则RGBLED灯颜色不断变化,效果如下:

面包板

也称为无焊接面包板,是我们进行物理和电子实验的好帮手,由于其内部集成了走线,从而避免了复杂实验时杂乱无章的飞线。面包上的针脚孔可以轻松地搭配众多带针脚的传感器使用,许多传感器和面包板都包含了配电的部分,使得包含面包板的电路实验设计变得更加容易。一句话总结一下,我们做实验并非一定要用到面包板,但是有个面包板可以使我们事半功倍。

面包板有几个特性:

  • 左右两侧为正负极。正负极下方各有各的金属片,竖排相连。
  • 中间两侧为通用端口,左侧和右侧互不相同。
  • 中间两侧的针孔下方横向相连。

举个例子从从A1到E1是相连接的,从F1J1是相连接的,但是E1F1是不通的。树莓派的5v或者3v3只要接到+级的任何一个孔,整个+级的竖排都会存在相应电压的供电,树莓派的GND-级。下图是一个真实的面包板。

好了,本次介绍就到这里,这个系列的全文会收录在我的github目录,欢迎大家star和沟通:https://github.com/asukafighting/RaspberryPiHacker

30个物联网传感器小实验:三行代码点亮LED灯的更多相关文章

  1. 30个Python物联网小实验3:使用按钮开灯关灯

    使用按钮开灯关灯 接线图非常简单,LED接GPIO17号口,按钮接GPIO2号口,负极接GND地线. 代码也非常简单: from gpiozero import LED, Button from si ...

  2. 树莓派点亮LED灯需要几行代码?3行。小孩子都能学会

    目录 点亮LED灯 硬件连接 代码 闪烁的LED灯 呼吸灯 其他 点亮LED灯 硬件连接 找一个LED灯,连接如上图,注意长短引脚,经过这些年的狂轰乱炸,大家对于这个应该不漠视,毕竟Arduino都进 ...

  3. 我的 FPGA 学习历程(02)—— 实验:点亮 LED 灯

    关于 Quartus 的操作可以使用 Quartus 自带的帮助,帮助中带有全套的操作教程. 中文网络教程链接(链接至 altera中文官网,点击观看) Quartus II 软件设计系列:基础 Qu ...

  4. 实验一:点亮led

    一.先看原理图:

  5. js中关于事件捕获与事件冒泡的小实验

    1.事件冒泡:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div - ...

  6. TCS3200颜色传感器测试实验

    TCS3200颜色传感器测试实验 2013-08-02 17:18:24 分享: 标签:  Arduino  TCS3200  传感器 TCS3200颜色传感器是一款全彩的颜色检测器,包括了一块TAO ...

  7. arduino按钮使用的两个小实验

    一:按钮控制一个灯                                                                                            ...

  8. 使用寄存器点亮LED(第2节)—寄存器映射代码讲解

    // 打开 GPIOB 端口的时钟 *( unsigned int * )0x40021018|= ( 1 << 4 ); // 配置PC2 IO口为通用推挽输出,速度为10M *( un ...

  9. 30个Python物联网小实验5:光线感应灯

    30个Python物联网小实验5:光线感应灯 光线传感器 光线变化执行函数 光线状态执行函数 30个Python物联网小实验5:光线感应灯 光线传感器 可以检测周围环境的亮度: 方向性较好,感知特定方 ...

随机推荐

  1. Linux就该这么学--Shell脚本基本应用

    1.接收用户的参数: Shell脚本为了能够让用户更灵活的完成工作需求,可以在执行命令时传递参数:(命令名 参数1 参数2...) Shell预定义变量: $0 当前执行Shell脚本的程序名 $1- ...

  2. 【Java线程】锁机制:synchronized、Lock、Condition(转)

    原文地址 1.synchronized 把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility). 1.1 原子性 ...

  3. fusioncharts 用法实例

    支持xml格式和json格式的数据. 用法很简单. 1.需要引入FusionCharts.js. 2.html中定义个id="chart"的div <div id=" ...

  4. Django--组件-用户认证Auth(auth_user增加字段)

    引入 :  from django.db import models from django.contrib.auth.models import AbstractBaseUser 源码 :  fro ...

  5. HDU - 2102 A计划 【BFS】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2102 思路 题目有两个坑点 0.Output 说 能在T时刻 找到公主 就输出 YES 但实际上 只要 ...

  6. BFC和haslayout(IE6-7)(待总结。。。)

    支持BFC的浏览器(IE8+,firefox,chrome,safari) Block Formatting Context(块格式化上下文)是W3C CSS2.1规范中的一个慨念,在CSS3中被修改 ...

  7. ajax 异步 跨域上传图片

    客户端 <label for="text">名称</label> <input type="text" id="text ...

  8. mvc Bundling 学习记录

    因为现在的项目JS引用很多,无意中看到了MVC4的Bundling,开始的时候感觉很不错,将所有的CSS,js文件压缩成一个文件处理,画面调用也很简单 于是,花了一个下午的时候研究了一下,并且通过各种 ...

  9. nginx 部署thinkphp 做的东西, 配置 Pathinfo 模式,终于配好了

    用thinkphp做了一个网站,部署到ubuntu上的时候需要,服务器用的是nginx,本身不支持pathinfo模式,需要修改配置文件,使其能够用pathinfo. 我用的是虚拟主机的方式.之前配置 ...

  10. jQuery Validate 插件为表单提供了强大的验证功能

    之前项目开发中,表单校验用的jQuery Validate 插件,这个插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的 ...