树莓派控制4路5v继电器开关

  • 准备材料
  • wiringPi库
    • 安装wiringPi库
    • 查看引脚编号表格
    • wiringPi API
      • 硬件初始化函数wiringPiSetup
      • GPIO控制函数pinMode
      • GPIO控制函数digitalWrite
  • demo示例

准备材料

  1. 4路5v继电器

  1. 杜邦线

    这里正常来说是公对母的杜邦线。我直接接的线。

  2. 树莓派3b

  3. 树莓派的电源线

附上继电器的对接规格

wiringPi库

安装wiringPi库

wiringPi是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程等等。
进入 wiringPi的github https://git.drogon.net/?p=wiringPi;a=summary 下载安装包。点击页面的第一个链接的右边的snapshot,下载安装压缩包。

然后进入安装包所在的目录执行以下命令:

tar xfz wiringPi-98bcb20.tar.gz //98bcb20为版本标号,可能不同
cd wiringPi-98bcb20
./build

验证wiringPi的是否安装成功,输入gpio -v,会在终端中输出相关wiringPi的信息。否则安装失败。

查看引脚编号表格

使用如下控制台下命令

gpio readall

注意:查看时,将树莓派的USB接口面对自己,这样看才是正确的。

wiringPi API

插一句:

编写demo是需要写 #include<wiringPi.h>头文件,同样的运行的时候,也要指定-lwiringPi

硬件初始化函数wiringPiSetup

int wiringPiSetup (void)

返回:执行状态,-1表示失败

当使用这个函数初始化树莓派引脚时,程序使用的是wiringPi 引脚编号表。引脚的编号为 0~16
需要root权限

GPIO控制函数pinMode

void pinMode (int pin, int mode)

pin:配置的引脚
mode:指定引脚的IO模式

可取的值:INPUT、OUTPUT、PWM_OUTPUT,GPIO_CLOCK
作用:配置引脚的IO模式

注意:
只有wiringPi 引脚编号下的1脚(BCM下的18脚) 支持PWM输出

只有wiringPi编号下的7(BCM下的4号)支持GPIO_CLOCK输出

GPIO控制函数digitalWrite

void digitalWrite (int pin, int value)

pin:控制的引脚
value:引脚输出的电平值。

可取的值:HIGH,LOW分别代表高低电平

让对一个已近配置为输出模式的 引脚 输出指定的电平信号

demo示例

#include <stdio.h>
#include <wiringPi.h>
#include <stdlib.h>
#include <string.h>
/*树莓派控制继电器高低电平亮灯*/#define SWITCH1 26
#define SWITCH2 27
#define SWITCH3 28
#define SWITCH4 29
int main(){char cmd[12] = {"\0"};if(wiringPiSetup() == -1){printf("wiringPi初始化失败\n");exit(-1);}pinMode(SWITCH1,OUTPUT);pinMode(SWITCH2,OUTPUT);pinMode(SWITCH3,OUTPUT);pinMode(SWITCH4,OUTPUT);digitalWrite(SWITCH1,HIGH);digitalWrite(SWITCH2,HIGH);digitalWrite(SWITCH3,HIGH);digitalWrite(SWITCH4,HIGH);while(1){printf("请输入1/2/3/4 on or off\n");memset(cmd,0,sizeof(cmd));gets(cmd);if(strcmp(cmd,"1 off") == 0){digitalWrite(SWITCH1,HIGH);}else if(strcmp(cmd,"1 on") == 0){digitalWrite(SWITCH1,LOW);}if(strcmp(cmd,"2 off") == 0){digitalWrite(SWITCH2,HIGH);}else if(strcmp(cmd,"2 on") == 0){digitalWrite(SWITCH2,LOW);}if(strcmp(cmd,"3 off") == 0){digitalWrite(SWITCH3,HIGH);}else if(strcmp(cmd,"3 on") == 0){digitalWrite(SWITCH3,LOW);}if(strcmp(cmd,"4 off") == 0){digitalWrite(SWITCH4,HIGH);}else if(strcmp(cmd,"4 on") == 0){digitalWrite(SWITCH4,LOW);}if(strcmp(cmd,"all off") == 0){digitalWrite(SWITCH1,HIGH);digitalWrite(SWITCH2,HIGH);digitalWrite(SWITCH3,HIGH);digitalWrite(SWITCH4,HIGH);}else if(strcmp(cmd,"all on") == 0){digitalWrite(SWITCH1,LOW);digitalWrite(SWITCH2,LOW);digitalWrite(SWITCH3,LOW);digitalWrite(SWITCH4,LOW);}}return 0;
}

执行

gcc demo2.c -lwiringPi

基本实现就是这样,用法和输入比较土。

实现效果图:

树莓派控制4路5v继电器开关相关推荐

  1. 树莓派控制16路PWM输出的PCA9685模块

    树莓派控制16路PWM输出的PCA9685模块 1.PCA9685 1.1简介 采用I2C通信,内置了PWM驱动器和一个时钟,不需要不断发送信号占用单片机资源 支持16路PWM输出,每路12位分辨率( ...

  2. 树莓派python控制舵机_使用树莓派控制16路舵机驱动板(pca9685)

    使用树莓派控制16路舵机驱动板(pca9685) 在树莓派上,可以通过RPI.GPIO方便地输出PWM进行舵机控制. 使用RPI.GPIO 创建一个 PWM 实例: 1 p =GPIO.PWM(cha ...

  3. 树莓派c语言pca9685,使用树莓派控制16路舵机驱动板(pca9685)

    使用RPI.GPIO 创建一个 PWM 实例: 启用 PWM: 更改频率: 更改占空比: 停止 PWM: 但当你同时使用多个舵机时,PWM输出就变得困难了.这时可以借助舵机控制板来进行多路PWM控制. ...

  4. 花 1 小时,开源设计 LoRa 继电器开关

    提示1:锐米所有 LoRa 产品严格遵循国际标准的 LoRaWAN 协议. 提示2:您可以免费复制,修改和商用本项目,请注明锐米原创. 提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米 sup ...

  5. 航模遥控继电器单通道控制2路继电器开关实现原理解析

    航模遥控继电器单通道控制2路继电器开关实现原理解析 航模遥控继电器 硬件解析 两路型号为: SRD-05VDC-SL-C 继电器 2个PC817光耦 3个S4,1N5819WS肖特基二极管 2个S80 ...

  6. 基于51单片机51wifi控制4路继电器开关定时功能

    项目简介: 一款基于STC89C52单片机的手机WIFI控制4路继电器的插座控制器设计.通过安装手机APP实现手机和设备的互联,只要手机发送相应的指令,继电器将会按照相关指令进行操作该设计极大的方便了 ...

  7. 使用MQTT远程控制树莓派继电器开关

    一.MQTT服务器(emqx)搭建 连接:安装 | EMQ X 文档 根据文档进行安装,文档里面包含各种系统安装方式,可以根据服务器系统进行选择,因为我这边用的是阿里云的centos系统服务器,所以具 ...

  8. ESP8266利用Bliker、小爱同学和本地按钮控制4路开关

    ESP8266利用Bliker.小爱同学和本地按钮控制4路开关 Blinker函数说明: Button.color("#FFFF00"); //设置app按键是纯黄色,16进制颜色 ...

  9. 舵机PWM信号转互斥继电器开关信号

    -----------------本文由"麦粒电子"撰写,并提供相应产品服务.---------------- 叙述 上次的PWM转继电器开关方案得到大家的不少好评(博客链接),但 ...

最新文章

  1. 掌贝获2000万美元B+轮融资,和智投资领投、味千中国和金沙江创投跟投
  2. 虚拟手柄控制的小车 air3.4 Android IPones4s 下运行正常
  3. antd Tree组件中,自定义右键菜单
  4. 六十九、数据结构链表的实现
  5. tbc服务器状态,魔兽怀旧服:TBC上线近俩月,玩家心态改变,开始涌入60级服务器...
  6. 在Oracle中重编译所有无效的存储过程
  7. linux内核make执行过程
  8. SSH远程管理,构建密钥对验证的SSH体系,设置SSH代理功能。
  9. Java折叠_[Java教程]Jquery中菜单的展开和折叠
  10. php 多层 对象,php多层数组和对象的转换
  11. Spring框架错误之org.springframework.beans.factory.BeanCreationException
  12. 顺丰丰桥接口开发-不限java(LODOP电子面单打印)
  13. 今日杂谈---重用和程序员
  14. Matlab符号运算(符号的创建和简单运算、函数求导、不定积分和定积分、解方程组)代码和解释
  15. Java实现 蓝桥杯VIP 算法提高 促销购物
  16. DATEADD的用法
  17. [SSD核心技术:FTL 16] 固态硬盘预读技术详解
  18. Spark统计人口平均年龄
  19. 2022年影视系统源码原生双端+安卓苹果+视频教程+搭建工具
  20. IOS 小技巧积累(持续更新)

热门文章

  1. 电子科大自考c语言试题,2016四川省大学一流学科排行榜,电子科大跃居首位
  2. 协同办公考勤管理系统php,协同办公考勤管理系统完整源码 超级给力UI 适用于中小型企业的办公考勤管理系统...
  3. 照度计的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. 史上最全颜色在古代的叫法(快速搜索)
  5. 大数据战略上升为国家战略,悄悄告诉你大数据大牛都在读的8本书
  6. OpenCV内存方式,将rgb数据压缩成jpg数据
  7. (十八)Flink Table API SQL 编程指南 Table API 和Datastream API 集成
  8. 怎么自定义服务器的404,如何自定义404页面
  9. iPad 如何使用妙控键盘
  10. 微信web开发者工具 linux,Linux微信web开发者工具