当前位置: 首页 > news >正文

树莓派编程控制继电器及继电器组

目录

一,继电器说明

● 继电器接口说明 

① 继电器输入端:

② 继电器输出端:

二,树莓派控制继电器

三,树莓派控制继电器组


一,继电器说明

通俗点讲,可以把继电器理解成是一些功能设备的控制开关。

● 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 //全部灯关闭

相关文章:

树莓派编程控制继电器及继电器组

目录 一&#xff0c;继电器说明 ● 继电器接口说明 ① 继电器输入端: ② 继电器输出端: 二&#xff0c;树莓派控制继电器 三&#xff0c;树莓派控制继电器组 一&#xff0c;继电器说明 通俗点讲&#xff0c;可以把继电器理解成是一些功能设备的控制开关。 ● LOW&#…...

oracle和mysql的区别

Oracle与MySQL的区别以及优缺点 MySQL的特点 1、性能卓越&#xff0c;服务稳定&#xff0c;很少出现异常宕机&#xff1b; 2、开放源代码无版本制约&#xff0c;自主性及使用成本低&#xff1b; 3、历史悠久&#xff0c;社区和用户非常活跃&#xff0c;遇到问题及时寻求帮助…...

<Linux开发> linux应用开发-之-uart通信开发例程

一、简介 串口全称叫做串行接口&#xff0c;串行接口指的是数据一个一个的按顺序传输&#xff0c;通信线路简单。使用两条线即可. 实现双向通信&#xff0c;一条用于发送&#xff0c;一条用于接收。串口通信距离远&#xff0c;但是速度相对会低&#xff0c;串口是一种很常用的工…...

基于深度学习的安全帽检测系统(YOLOv5清新界面版,Python代码)

摘要&#xff1a;安全帽检测系统用于自动化监测安全帽佩戴情况&#xff0c;在需要佩戴安全帽的场合自动安全提醒&#xff0c;实现图片、视频和摄像头等多种形式监测。在介绍算法原理的同时&#xff0c;给出Python的实现代码、训练数据集&#xff0c;以及PyQt的UI界面。安全帽检…...

Linux - 进程控制(进程替换)

0.引入创建子进程的目的是什么&#xff1f;就是为了让子进程帮我执行特定的任务让子进程执行父进程的一部分代码如果子进程想执行一个全新的程序代码呢&#xff1f; 那么就要使用进程的程序替换为什么要有程序替换&#xff1f;也就是说子进程想执行一个全新的程序代码&#xff…...

Java中 ==和equals的区别是什么?

作用&#xff1a; 基本类型&#xff0c;比较值是否相等引用类型&#xff0c;比较内存地址值是否相等不能比较没有父子关系的两个对象equals()方法的作用&#xff1a; JDK 中的类一般已经重写了 equals()&#xff0c;比较的是内容自定义类如果没有重写 equals()&#xff0c;将…...

Linux(网络基础---网络层)

文章目录0. 前言1. IP协议1-1 基本概念1-2 协议头格式2. 网段划分2-1 基本概念2.2 IP地址分五大类2-3 特殊的IP地址2-4 IP地址的数量限制2-5 私有IP地址和公网IP地址2-6 路由0. 前言 前面我们讲了&#xff0c;应用层、传输层&#xff1b;本章讲网络层。 应用层&#xff1a;我…...

空间信息智能应用团队研究成果介绍及人才引进

目录1、多平台移动测量技术1.1 车载移动测量系统1.2 机载移动测量系统2、数据处理与应用技术研究2.1 点云与影像融合2.2 点云配准与拼接2.3 点云滤波与分类2.4 道路矢量地图提取2.5 道路三维自动建模2.6 道路路面三维病害分析2.7 多期点云三维变形分析2.8 地表覆盖遥感监测分析…...

ChatGPT应用场景与工具推荐

目录 写在前面 一、关于ChatGPT 二、应用实例 1.写文章 2.入门新的知识 3.解决疑难问题 4.生成预演问题 5.文本改写 6.语言翻译 7.思维导图 8.PDF阅读理解 9.操作格式化的数据 10.模拟场景 11.写代码 三、现存局限 写在前面 本文会简单介绍ChatGPT的特点、局限以…...

图像分类卷积神经网络模型综述

图像分类卷积神经网络模型综述遇到问题 图像分类&#xff1a;核心任务是从给定的分类集合中给图像分配一个标签任务。 输入&#xff1a;图片 输出&#xff1a;类别。 数据集MNIST数据集 MNIST数据集是用来识别手写数字&#xff0c;由0~9共10类别组成。 从MNIST数据集的SD-1和…...

艹,终于在8226上把灯点亮了

接上次点文章ESP8266还可以这样玩这次&#xff0c;我终于学会了在ESP8266上面点亮LED灯了现在一个单片机的价格是几块&#xff0c;加上一个晶振&#xff0c;再来一个快递费&#xff0c;十几块钱还是需要的。所以能用这个ESP8266来当单片机玩&#xff0c;还是比较不错的可以在ub…...

脱不下孔乙己的长衫,现代的年轻人该怎么办?

“如果我没读过书&#xff0c;我还可以做别的工作&#xff0c;可我偏偏读过书” “学历本该是我的敲门砖&#xff0c;却成了我脱不下的长衫。” 最近&#xff0c;“脱下孔乙己的长衫”在网上火了。在鲁迅的原著小说中&#xff0c;孔乙己属于知识阶级&#xff08;长衫客&#xf…...

Matlab实现遗传算法

遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;是一种基于生物进化理论的优化算法&#xff0c;通过模拟自然界中的遗传过程&#xff0c;来寻找最优解。 在遗传算法中&#xff0c;每个解被称为个体&#xff0c;每个个体由一组基因表示&#xff0c;每个基因是…...

评价公式-均方误差

均方误差的公式可以通过以下步骤推导得出&#xff1a; 假设有n个样本&#xff0c;真实值分别为y₁, y₂, ……, yₙ&#xff0c;预测值分别为ŷ₁, ŷ₂, ……, ŷₙ。 首先&#xff0c;我们可以定义误差&#xff08;error&#xff09;为预测值与真实值之间的差&#xff1a; …...

冲击蓝桥杯-时间问题(必考)

目录 前言&#xff1a; 一、时间问题 二、使用步骤 1、考察小时&#xff0c;分以及秒的使用、 2、判断日期是否合法 3、遍历日期 4、推算星期几 总结 前言&#xff1a; 时间问题可以说是蓝桥杯&#xff0c;最喜欢考的问题了,因为时间问题不涉及到算法和一些复杂的知识&#xf…...

10个杀手级应用的Python自动化脚本

10个杀手级应用的Python自动化脚本 重复的任务总是耗费时间和枯燥的。想象一下&#xff0c;逐一裁剪100张照片&#xff0c;或者做诸如Fetching APIs、纠正拼写和语法等任务&#xff0c;所有这些都需要大量的时间。为什么不把它们自动化呢&#xff1f;在今天的文章中&#xff0c…...

2023​史上最全软件测试工程师常见的面试题总结​ 备战金三银四

在这里我给大家推荐一套专门讲解软件测试简历&#xff0c;和面试题的视频&#xff0c;实测有效&#xff0c;建议大家可以看看&#xff01; 春招必看已上岸&#xff0c;软件测试常问面试题【全网最详细&#xff0c;让你不再踩坑】_哔哩哔哩_bilibili春招必看已上岸&#xff0c;…...

2023年全国最新安全员精选真题及答案29

百分百题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 81.&#xff08;单选题&#xff09;同一建筑施工企业在12个月内连续发生&#xff08;&…...

关系数据库的7个基本特征

文章目录关系数据库中的二维表─般满足7个基本特征:①元组(行)个数是有限的——元组个数有限性。 ②元组(行)均不相同——元组的唯—性。 ③元组(行)的次序可以任意交换——元组的次序无关性。 ④元组(行)的分量是不可分割的基本特征——元组分量的原子性。 ⑤属性(列)名各不相…...

2023QT面试题总会

1、Qt信号槽机制的优势 &#xff08;1&#xff09;类型安全。需要关联的信号和槽的签名必须是等同的&#xff0c;即信号的参数类型和参数个数同接收该信号的槽的参数类型和参数个数相同。不过&#xff0c;一个槽的参数个数是可以少于信号的参数个数的&#xff0c;但缺少的参数…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...