本文分为三个部分:

1.继电器说明 2.程序解读 3.前期准备(放在最后一部分,供小白查阅借鉴)

一、继电器说明

1.类型

下图为网上找的图

b50f282b5a7762dd975dea69dea948eb.png

2.工作原理:

bd816721048bfcb936878f885b7ae1bb.png

我们控制的就是下面的那个开关,当下面的开关处于闭合状态时,带铁芯的线圈会输出对应的磁场,把衔铁吸附住,上面的电路就形成了闭合回路。

具体工作原理详见此链接:继电器工作原理

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.引脚对照表

e912578ce8fa949712199737f61eef67.png

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库函数下载链接

打开如下页面:最上面的的代表最新版,建议下载最新版

43e98048f5f18ee4d09959f82771d639.png

然后你会下载到一个.tar.gz 的压缩包,名字可能为 wiringPi-df45388.tar.gz,由于不同的发行版本,后面的 df45388 字符串可能会不同。下载完成后,你可以执行下面的命令来安装 wiringPi:

注:文件名可能会不同,要相应改变

tar xfz wiringPi-df45388.tar.gz

cd wiringPi-df45388

./build

需要测试wiringPi是否安装成功

打开命令终端,可以通过 gpio 命令来检查 wiringPi 是否安装成功,运行下面的命令:

gpio -v

结果如下:

7b979b91bd01092264634b043a98e2b9.png

gpio readall

结果如下:可以获取 wiringPi 不树莓派的 GPIO 接口之间的对应关系

5c6456c2afb2bcf76cbafe0bd68cdb03.png

上图中的Physical列即代表树莓派物理上接口J8的管脚定义,wPi列即代表在wiringPi

中所对应的数值,BCM 列即代表在 BCM2835 的 GPIO 寄存器中的偏移地址,即在

BCM2835 C Library 中对应的 GPIO 的数值。

如果得到上图中的效果则说明wiringPi 已经安装成功。

因本人水平有限,如果有误,欢迎指正,如需转载请附上本文链接并注明。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐