当前位置: 首页 > 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;但缺少的参数…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...