本文分为三个部分:
1.继电器说明 2.程序解读 3.前期准备(放在最后一部分,供小白查阅借鉴)
一、继电器说明
2.工作原理:
我们控制的就是下面的那个开关,当下面的开关处于闭合状态时,带铁芯的线圈会输出对应的磁场,把衔铁吸附住,上面的电路就形成了闭合回路。
具体工作原理详见此链接:继电器工作原理
3.接线:
按照第三部分的图和上图为例,我的VCC(电源正极)接的是 5v , GND(电源负极)接GND,in(即可以控制继电器的引脚)接GPIO.29
二、程序解读
1.简单版程序:(仅用于测试使用)
#include
#include
#include
#define time_out 5 //延时时间 5s
#define RELAY 29 //查看第三部分 引脚图 gpio.29对应wiringPi编码为 29
#define ON 1
#define OFF 0
int main()
{
wiringPiSetup(); //初始化wiringPi
pinMode(RELAY,OUTPUT); //将RELAY管脚设置为OUTPUT
while(1)
{
digitalWrite(RELAY,ON);
sleep(time_out);
digitalWrite(RELAY,OFF);
sleep(time_out);
}
return 0;
}
编译:( 因包含wiringPi库函数 -lwiringPi)
gcc relay.c -o relay -lwiringPi
运行:
./relay
结果:
将会听到继电器每五秒钟转换开关状态的“滴答”声音,即证明代码有效。
简单版代码python版本:
对于try except 的疑惑请点击:http://www.runoob.com/python/python-exceptions.html
注意python的代码使用 BCM 编码(gpio.29对应 BCM编码为 21)
以下为测试用代码:
#!/usr/bin/python
#encoding:utf-8
import RPi.GPIO
import time
time_out=5
RELAY=21
RPi.GPIO.setmode(RPi.GPIO.BCM)
RPi.GPIO.setup(RELAY,RPi.GPIO.OUT)
try:
while True:
RPi.GPIO.output(RELAY,RPi.GPIO.HIGH)
time.sleep(time_out)
RPi.GPIO.output(RELAY,RPi.GPIO.LOW)
time.sleep(time_out)
except KeyboardInterrupt:
pass
RPi.GPIO.cleanup()
运行:(文件名为relay.py)
./TSL2561.py
三、前期准备
我们需要一些工具来帮助我们更好的控制树莓派:
1.引脚对照表
2.wiringPi库函数
如果尚未安装git工具,可以执行如下的命令来安装 git 工具:
sudo apt-get install git-core
安装时如果发生了错误,可以尝试更新 apt 库,命令如下:
sudo apt-get update
或者可能需要对系统进行更新,命令如下:
sudo apt-get upgrade
安装 git 工具之后,就可以使用如下的命令来获取 wiringPi 了:
git clone git://git.drogon.net/wiringPi
获取到 wiringPi 的最新版本之后编译和安装 wiringPi
了,命令如下:
cd wiringPi
./build
安装:
点击以下超链接
wiringPi库函数下载链接
打开如下页面:最上面的的代表最新版,建议下载最新版
然后你会下载到一个.tar.gz 的压缩包,名字可能为 wiringPi-df45388.tar.gz,由于不同的发行版本,后面的 df45388 字符串可能会不同。下载完成后,你可以执行下面的命令来安装 wiringPi:
注:文件名可能会不同,要相应改变
tar xfz wiringPi-df45388.tar.gz
cd wiringPi-df45388
./build
需要测试wiringPi是否安装成功
打开命令终端,可以通过 gpio 命令来检查 wiringPi 是否安装成功,运行下面的命令:
gpio -v
gpio readall
结果如下:可以获取 wiringPi 不树莓派的 GPIO 接口之间的对应关系
上图中的Physical列即代表树莓派物理上接口J8的管脚定义,wPi列即代表在wiringPi
中所对应的数值,BCM 列即代表在 BCM2835 的 GPIO 寄存器中的偏移地址,即在
BCM2835 C Library 中对应的 GPIO 的数值。
如果得到上图中的效果则说明wiringPi 已经安装成功。
因本人水平有限,如果有误,欢迎指正,如需转载请附上本文链接并注明。