树莓派编程控制继电器及继电器组
目录
一,继电器说明
● 继电器接口说明
① 继电器输入端:
② 继电器输出端:
二,树莓派控制继电器
三,树莓派控制继电器组
一,继电器说明
通俗点讲,可以把继电器理解成是一些功能设备的控制开关。
● LOW:给到低电平时,电路接通;
● HIGH:给到高电平时,电路断开;
继电器主要用于控制电路,是一种电控制器件,当输入量的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。继电器具有控制系统和被控制系统,通常应用于自动化的控制电路中,在电路中起着自动调节、安全保护、转换电路等作用。
继电器 | 继电器组 |
● 继电器接口说明
① 继电器输入端:
● VCC:接电源正极(电压按继电器要求,有5V、9V、12v和24v选择);
● GND:接电源负极,开发板上有GND或0V表示;
● IN:GPIO口,可以高电平或低电平控制继电器吸合(开关);
② 继电器输出端:
● NO:继电器常开接口,继电器吸合前悬空,吸合后与COM短接;
● COM:继电器公用接口;
● NC:继电器常闭接口,继电器吸合前与COM短接,吸合后悬空;
二,树莓派控制继电器
(单个继电器)接好电源线和自己设置的控制引脚:
● 继电器vcc——树莓3.3v或5v;
● 继电器Gnd——树莓0v或Gnd;
● 继电器In——树莓GPIO.7(自己设置);
#include <stdio.h>
#include <wiringPi.h>
#include <stdlib.h>#define PIN 7 //#define宏定义控制引脚为GPIO.7int main()
{int cmd;if(wiringPiSetup() == -1){ //初始化wiringPi库printf("init error\n");return -1;}pinMode(PIN,OUTPUT); //设置为输出io口digitalWrite(PIN,HIGH);//默认断电状态while(1){printf("please input 0 or 1:0-close,1-open\n");//输入0或1,0关闭,1打开scanf("%d",&cmd);if(cmd == 1){digitalWrite(PIN,LOW);//输入的是1,就给低电平,供电 }else if(cmd == 0){digitalWrite(PIN,HIGH);//输入的是0,就给高电平,断电 }else{printf("OUTPUT error\n");//如果输入的不是1或0digitalWrite(PIN,HIGH);//就自动断电exit(-1); //并退出}}return 0;
}
编译时需要链接wiringPi库
pi@raspberrypi:~/wiringPi $ gcc demo2.c -lwiringPi //编译要链接wiringPi库
pi@raspberrypi:~/wiringPi $ ./a.out
please input 0 or 1:0-close,1-open
1 //输入1,低电平通电,灯亮
please input 0 or 1:0-close,1-open
0 //输入0,高电平断电,灯灭
please input 0 or 1:0-close,1-open
1
please input 0 or 1:0-close,1-open
3 //输入其它指令,灯灭并退出程序
OUTPUT error
pi@raspberrypi:~/wiringPi $
三,树莓派控制继电器组
控制继电器组其实和控制单个继电器操作一样,只是继电器组要多设置一些控制的io口而已!
● 本次测试用的继电器组是4个继电器为组;
● 针脚有gnd vcc in1 in2 in3 in4共6个。其中in1 in2 in3 in4分别控制继电器的4个灯;
● 接线方式同上,首先电源正负级接通开发板,in1 in2 in3 in4分别接入树莓的GPIO口;
#include <stdio.h>
#include <wiringPi.h>
#include <stdlib.h>
#include <string.h>#define PIN1 29 //#define宏定义控制引脚为29
#define PIN2 28 //#define宏定义控制引脚为28
#define PIN3 27 //#define宏定义控制引脚为27
#define PIN4 26 //#define宏定义控制引脚为26int main()
{char cmd[12] = {'\0'};if(wiringPiSetup() == -1){ //初始化wiringPi库printf("init error\n");return -1;}pinMode(PIN1,OUTPUT);//配置引脚为输出引脚pinMode(PIN2,OUTPUT);pinMode(PIN3,OUTPUT);pinMode(PIN4,OUTPUT);digitalWrite(PIN1,HIGH);//4个控制口默认断电状态digitalWrite(PIN2,HIGH);digitalWrite(PIN3,HIGH);digitalWrite(PIN4,HIGH);while(1){printf("please input 1/2/3/4 off/on:off-close,on-open\n");memset(cmd,'\0',sizeof(cmd));gets(cmd);if(strcmp(cmd,"1 on") == 0){digitalWrite(PIN1,LOW);//输入1 on,给低电平,供电 }else if(strcmp(cmd,"1 off") == 0){digitalWrite(PIN1,HIGH);//输入0 off,给高电平,断电 }if(strcmp(cmd,"2 on") == 0){digitalWrite(PIN2,LOW);//输入2 on,给低电平,供电 }else if(strcmp(cmd,"2 off") == 0){digitalWrite(PIN2,HIGH);//输入2 off,给高电平,断电 }if(strcmp(cmd,"3 on") == 0){digitalWrite(PIN3,LOW);//输入3 on,给低电平,供电 }else if(strcmp(cmd,"3 off") == 0){digitalWrite(PIN3,HIGH);//输入3 off,给高电平,断电 }if(strcmp(cmd,"4 on") == 0){digitalWrite(PIN4,LOW);//输入4 on,给低电平,供电 }else if(strcmp(cmd,"4 off") == 0){digitalWrite(PIN4,HIGH);//输入4 off,给高电平,断电 }if(strcmp(cmd,"all on") == 0){digitalWrite(PIN1,LOW);//输入all on,给低电平,4个灯全部供电 digitalWrite(PIN2,LOW); digitalWrite(PIN3,LOW); digitalWrite(PIN4,LOW);}else if(strcmp(cmd,"all off") == 0){digitalWrite(PIN1,HIGH);//输入all off,给高电平,全部断电 digitalWrite(PIN2,HIGH);digitalWrite(PIN3,HIGH);digitalWrite(PIN4,HIGH); }else{printf("OUTPUT error!\n");//输入其它 提示错误}}return 0;
}
pi@raspberrypi:~/wiringPi $ ./a.out
please input 1/2/3/4 off/on:off-close,on-open
1 on //一号灯亮
INPUT error!
please input 1/2/3/4 off/on:off-close,on-open
1 off //一号灯灭 其他三颗灯一样的
INPUT error!
please input 1/2/3/4 off/on:off-close,on-open
all on //全部灯打开
please input 1/2/3/4 off/on:off-close,on-open
all off //全部灯关闭
树莓派编程控制继电器及继电器组相关推荐
- 树莓派开发3-wiring库控制继电器和继电器组
文章目录 wiring库控制继电器 wiring库控制继电器组 树莓派学习笔记,本文图片文字皆为转述 wiring库控制继电器 电路连接 Vcc引脚接3.3v,程序是demo2.c 程序和运行 编译命 ...
- 树莓派项目实践 [1] —— 编程控制继电器组件实现电路开闭(C语言)
原创首发于CSDN,转载请注明出处,谢谢!https://blog.csdn.net/weixin_46959681/article/details/115145982 文章目录 所用的树莓派与继电器 ...
- python树莓派编程_python树莓派编程
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 例如,你可以用树莓派搭建你自己的家用云存储服务器.? 树莓派用python来进行 ...
- python树莓派编程 沃尔弗拉姆_《 Python树莓派编程》——3.3 Python入门-阿里云开发者社区...
本节书摘来自华章出版社<Python树莓派编程>一书中的第3章,第3.3节,作者:[美]沃尔弗拉姆·多纳特(Wolfram Donat)著韩德强 等译,更多章节内容可以访问云栖社区&quo ...
- 《 Python树莓派编程》——第1章 树莓派简介 第1.1 树莓派的历史
本节书摘来自华章出版社<Python树莓派编程>一书中的第1章,第1.1节,作者:[美]沃尔弗拉姆·多纳特(Wolfram Donat)著 韩德强 等译,更多章节内容可以访问云栖社区&qu ...
- 《 Python树莓派编程》——2.7 总结
本节书摘来自华章出版社<Python树莓派编程>一书中的第2章,第2.7节,作者:[美]沃尔弗拉姆·多纳特(Wolfram Donat)著 韩德强 等译,更多章节内容可以访问云栖社区&qu ...
- Bash编程016——用户与组(二)
Bash编程016--用户与组(二) 用户与组的管理 管理用户与组的命令工具 useradd,添加新的用户 usermod,修改已经存在的指定用户 userdel,删除已经存在的指定用户 groupa ...
- Qt网络编程-简易版UDP组播通信入门Demo(5)
Qt网络编程-简易版UDP组播通信入门Demo(5)
- Java网络编程(八)—— 组播和MulticastSocket
Java网络编程(八)-- 组播和MulticastSocket 文章目录 Java网络编程(八)-- 组播和MulticastSocket 什么是组播 MulticastSocket类 总述 构造方 ...
最新文章
- 能不能用一句话总结 HTTPS?
- html 转换为cshtml,使用Html而不是csHtml
- 第7期 Datawhale 组队学习计划
- Error: Cannot find module ‘webpack-cli/bin/config-yargs‘ 解决办法
- 在.net平台下,执行命令行
- 使用IronPython集成Python和.NET
- Gh0st整理资料1
- 微信群总是有人发广告?我用Python写个机器人消灭他!
- 设置android应用闪屏图片_android 闪屏设计
- Qt(一)消息提示框
- 手机可以拍证件照吗,这方法不错
- (C++/python)LeetCode 589. N叉树的前序遍历
- 硬件电子开发常用工具
- 几个技术虚拟小组会议的思考
- 用JS控制SVG的预设动画
- java风控_【A0538】[java视频教程]金融信贷风控的机器学习实战视频教程 it教程
- 如何成为一名优秀的企业管理者
- 100款绿色重量级软件
- Linux下部署kettle
- iPhone如何恢复删除的微信聊天记录?
热门文章
- 如何用计算机算分组数据方差,分组数据计算方差
- Android--BottomSheet实现可拉伸控件
- android百度云推聊(转)
- Pytorch 网络中的网络 NiN
- java net 包和 apache 的http_org.apache.http.httpentity jar包-系列jar包
- 考托业有什么用途【zhasite】
- QString类详解
- 【日志】最后的时光③
- 动态处理表格多行合并单元格、同时解决hover错乱问题 - Vue Element Table
- 护照识别(港澳台地区及境外护照)API 及 BASE64图片加密