树莓派控制4路5v继电器开关
树莓派控制4路5v继电器开关
- 准备材料
- wiringPi库
- 安装wiringPi库
- 查看引脚编号表格
- wiringPi API
- 硬件初始化函数wiringPiSetup
- GPIO控制函数pinMode
- GPIO控制函数digitalWrite
- demo示例
准备材料
- 4路5v继电器
杜邦线
这里正常来说是公对母的杜邦线。我直接接的线。树莓派3b
树莓派的电源线
附上继电器的对接规格
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继电器开关相关推荐
- 树莓派控制16路PWM输出的PCA9685模块
树莓派控制16路PWM输出的PCA9685模块 1.PCA9685 1.1简介 采用I2C通信,内置了PWM驱动器和一个时钟,不需要不断发送信号占用单片机资源 支持16路PWM输出,每路12位分辨率( ...
- 树莓派python控制舵机_使用树莓派控制16路舵机驱动板(pca9685)
使用树莓派控制16路舵机驱动板(pca9685) 在树莓派上,可以通过RPI.GPIO方便地输出PWM进行舵机控制. 使用RPI.GPIO 创建一个 PWM 实例: 1 p =GPIO.PWM(cha ...
- 树莓派c语言pca9685,使用树莓派控制16路舵机驱动板(pca9685)
使用RPI.GPIO 创建一个 PWM 实例: 启用 PWM: 更改频率: 更改占空比: 停止 PWM: 但当你同时使用多个舵机时,PWM输出就变得困难了.这时可以借助舵机控制板来进行多路PWM控制. ...
- 花 1 小时,开源设计 LoRa 继电器开关
提示1:锐米所有 LoRa 产品严格遵循国际标准的 LoRaWAN 协议. 提示2:您可以免费复制,修改和商用本项目,请注明锐米原创. 提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米 sup ...
- 航模遥控继电器单通道控制2路继电器开关实现原理解析
航模遥控继电器单通道控制2路继电器开关实现原理解析 航模遥控继电器 硬件解析 两路型号为: SRD-05VDC-SL-C 继电器 2个PC817光耦 3个S4,1N5819WS肖特基二极管 2个S80 ...
- 基于51单片机51wifi控制4路继电器开关定时功能
项目简介: 一款基于STC89C52单片机的手机WIFI控制4路继电器的插座控制器设计.通过安装手机APP实现手机和设备的互联,只要手机发送相应的指令,继电器将会按照相关指令进行操作该设计极大的方便了 ...
- 使用MQTT远程控制树莓派继电器开关
一.MQTT服务器(emqx)搭建 连接:安装 | EMQ X 文档 根据文档进行安装,文档里面包含各种系统安装方式,可以根据服务器系统进行选择,因为我这边用的是阿里云的centos系统服务器,所以具 ...
- ESP8266利用Bliker、小爱同学和本地按钮控制4路开关
ESP8266利用Bliker.小爱同学和本地按钮控制4路开关 Blinker函数说明: Button.color("#FFFF00"); //设置app按键是纯黄色,16进制颜色 ...
- 舵机PWM信号转互斥继电器开关信号
-----------------本文由"麦粒电子"撰写,并提供相应产品服务.---------------- 叙述 上次的PWM转继电器开关方案得到大家的不少好评(博客链接),但 ...
最新文章
- 掌贝获2000万美元B+轮融资,和智投资领投、味千中国和金沙江创投跟投
- 虚拟手柄控制的小车 air3.4 Android IPones4s 下运行正常
- antd Tree组件中,自定义右键菜单
- 六十九、数据结构链表的实现
- tbc服务器状态,魔兽怀旧服:TBC上线近俩月,玩家心态改变,开始涌入60级服务器...
- 在Oracle中重编译所有无效的存储过程
- linux内核make执行过程
- SSH远程管理,构建密钥对验证的SSH体系,设置SSH代理功能。
- Java折叠_[Java教程]Jquery中菜单的展开和折叠
- php 多层 对象,php多层数组和对象的转换
- Spring框架错误之org.springframework.beans.factory.BeanCreationException
- 顺丰丰桥接口开发-不限java(LODOP电子面单打印)
- 今日杂谈---重用和程序员
- Matlab符号运算(符号的创建和简单运算、函数求导、不定积分和定积分、解方程组)代码和解释
- Java实现 蓝桥杯VIP 算法提高 促销购物
- DATEADD的用法
- [SSD核心技术:FTL 16] 固态硬盘预读技术详解
- Spark统计人口平均年龄
- 2022年影视系统源码原生双端+安卓苹果+视频教程+搭建工具
- IOS 小技巧积累(持续更新)
热门文章
- 电子科大自考c语言试题,2016四川省大学一流学科排行榜,电子科大跃居首位
- 协同办公考勤管理系统php,协同办公考勤管理系统完整源码 超级给力UI 适用于中小型企业的办公考勤管理系统...
- 照度计的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 史上最全颜色在古代的叫法(快速搜索)
- 大数据战略上升为国家战略,悄悄告诉你大数据大牛都在读的8本书
- OpenCV内存方式,将rgb数据压缩成jpg数据
- (十八)Flink Table API SQL 编程指南 Table API 和Datastream API 集成
- 怎么自定义服务器的404,如何自定义404页面
- iPad 如何使用妙控键盘
- 微信web开发者工具 linux,Linux微信web开发者工具