【Linux】树莓派控制继电器(C、python手把手教学)

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

一、继电器说明

1.类型
下图为网上找的图
【Linux】树莓派控制继电器(C、python手把手教学)_第1张图片

2.工作原理:

【Linux】树莓派控制继电器(C、python手把手教学)_第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.引脚对照表
【Linux】树莓派控制继电器(C、python手把手教学)_第3张图片
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库函数下载链接
打开如下页面:最上面的的代表最新版,建议下载最新版
【Linux】树莓派控制继电器(C、python手把手教学)_第4张图片
然后你会下载到一个.tar.gz 的压缩包,名字可能为 wiringPi-df45388.tar.gz,由于不同的发行版本,后面的 df45388 字符串可能会不同。下载完成后,你可以执行下面的命令来安装 wiringPi:
注:文件名可能会不同,要相应改变

tar xfz wiringPi-df45388.tar.gz
cd wiringPi-df45388
./build

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

gpio -v

结果如下:
【Linux】树莓派控制继电器(C、python手把手教学)_第5张图片

gpio readall

结果如下:可以获取 wiringPi 不树莓派的 GPIO 接口之间的对应关系
【Linux】树莓派控制继电器(C、python手把手教学)_第6张图片
上图中的Physical列即代表树莓派物理上接口J8的管脚定义,wPi列即代表在wiringPi
中所对应的数值,BCM 列即代表在 BCM2835 的 GPIO 寄存器中的偏移地址,即在
BCM2835 C Library 中对应的 GPIO 的数值。
如果得到上图中的效果则说明wiringPi 已经安装成功。

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

你可能感兴趣的:(嵌入式,Linux)