【树莓派】了解wiringPi库、控制继电器

news2024/9/24 13:19:37

目录

  • 一、wiringPi库
  • 二、继电器
    • 1、继电器介绍及接线说明
    • 2、树莓派控制继电器

一、wiringPi库

  wiringPi是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程等。

在树莓派命令行输入gpio -v 可以查看是否安装wiringPi 库,会显示库的相关信息,有版本号就是安装好了。
在这里插入图片描述
在编译时需要链接上wiringPi库:

gcc demo.c -lwiringPi

查看树莓派的引脚标号,输入命令即可查看:

gpio readall

树莓派3b的引脚图:
在这里插入图片描述

二、继电器

1、继电器介绍及接线说明

  继电器主要用于控制电路

  继电器是一种电控制器件,是当输入量的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。继电器具有控制系统和被控制系统,通常应用于自动化的控制电路中,在电路中起着自动调节、安全保护、转换电路等作用。

  简单来说,继电器就相当于一个开关,接在任意线上,断开状态下线就断开了,没导通,闭合状态下线就接在了一起,导通了。
在这里插入图片描述
产品介绍
1、常开接口限大负载:交流250V/10A,直流30V/10A
2、采用贴片光耦隔离,驱动能力强,性能稳定;触发电流5mA
3、模块工作电压有5v、12v、24v可供选择(请注意连接是否为所需电压)
4、模块可以通过跳线设置高电平或低电平触发
5、电源指示灯(绿色),继电器状态指示灯(红色)

继电器接线图
在这里插入图片描述
接口说明
1、继电器输入部分:
a、VCC:接电源正极(电压按继电器要求,有5V、9V、12v和24v选择)
b、GND:接电源负极
c、IN:可以高或低电平控制继电器吸合

2、继电器输出端:
a、NO:继电器常开接口,继电器吸合前悬空,吸合后与COM短接
b、COM:继电器公用接口
c、NC:继电器常闭接口,继电器吸合前与COM短接,吸合后悬空

高低电平触发选择端(有些继电器模块没有):
1、跳线与LOW短接时为低电平触发
2、跳线与HIGH短接时为高电平触发

2、树莓派控制继电器

注意:
单路继电器电源只能接3.3v,接5v不能正常工作,四路继电器可接3.3v和5v。
单路继电器:
代码:

#include<wiringPi.h>
#include<stdio.h>
#define SWITCHER 0

int main()
{
        int cmd;

        if(wiringPiSetup() == -1){
                printf("硬件接口初始化失败\n");
                return -1;
        }

        pinMode(SWITCHER,OUTPUT);
        digitalWrite(0,HIGH);
        while(1){
                printf("请输入0/1:0-断开开关,1-导通开关\n");
                scanf("%d",&cmd);

                if(cmd == 1){
                        digitalWrite(SWITCHER,LOW);
                        printf("开\n");
                }else if(cmd == 0){
                        digitalWrite(SWITCHER,HIGH);
                        printf("关\n");
                }else{
                        printf("输入错误,请重行输入\n");
                }
        }
}

结果:
在这里插入图片描述
在这里插入图片描述
四路继电器:
代码:

#include<wiringPi.h>
#include<stdio.h>
#include<string.h>
#define SWITCHER1 21
#define SWITCHER2 22
#define SWITCHER3 23
#define SWITCHER4 24

int main()
{
        char cmd[12] = {'\0'};

        if(wiringPiSetup() == -1){
                printf("硬件接口初始化失败\n");
                return -1;
        }

        pinMode(SWITCHER1,OUTPUT);
        pinMode(SWITCHER2,OUTPUT);
        pinMode(SWITCHER3,OUTPUT);
        pinMode(SWITCHER4,OUTPUT);

        digitalWrite(SWITCHER1,HIGH);
        digitalWrite(SWITCHER2,HIGH);
        digitalWrite(SWITCHER3,HIGH);
        digitalWrite(SWITCHER4,HIGH);

        while(1){
                printf("请输入1on(off)/2on(off)/3on(off)/4on(off):\n[off-断开开关,on-导通开关]\n");
                memset(cmd,'\0',sizeof(cmd));
                scanf("%s",cmd);

                if(!strcmp(cmd,"1on")){
                        digitalWrite(SWITCHER1,LOW);
                        printf("1开\n");
                }else if(!strcmp(cmd,"1off")){
                        digitalWrite(SWITCHER1,HIGH);
                        printf("1关\n");
                }

                else if(!strcmp(cmd,"2on")){
                        digitalWrite(SWITCHER2,LOW);
                        printf("2开\n");
                }else if(!strcmp(cmd,"2off")){
                        digitalWrite(SWITCHER2,HIGH);
                        printf("2关\n");
                }

                else if(!strcmp(cmd,"3on")){
                        digitalWrite(SWITCHER3,LOW);
                        printf("3开\n");
                }else if(!strcmp(cmd,"3off")){
                        digitalWrite(SWITCHER3,HIGH);
                        printf("3关\n");
                }

                else if(!strcmp(cmd,"4on")){
                        digitalWrite(SWITCHER4,LOW);
                        printf("4开\n");
                }else if(!strcmp(cmd,"4off")){
                        digitalWrite(SWITCHER4,HIGH);
                        printf("4关\n");
                }

                else{
                        printf("输入错误,请重新输入\n");
                }
        }
}

结果:
在这里插入图片描述
在这里插入图片描述
参考:
继电器介绍及接线说明

最后谢谢阅读,笔者乃小白,如有错误之处还请指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/67047.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

供应商管理软件有哪些特点和优势?

在这个快节奏的商业环境中&#xff0c;企业常常需要同时处理多个供应商。手动处理所有这些流程会有不少困难&#xff0c;为了克服这个问题&#xff0c;供应商管理软件是市场上可用的最佳解决方案。 好用的供应商管理软件&#xff0c;比如广受客户好评的8Manage SRM&#xff0c…

Spring 长事务导致connection closed,又熬了一个大夜!

大家好&#xff0c;我是不才陈某~ 是的&#xff0c;今早一到公司就收到了机器人的告警&#xff0c;从异常日志来看是数据库连接已关闭&#xff0c;然后我在解决这个问题的过程中发现了几个问题&#xff0c;不急&#xff0c;听我一一道来 异常被try后没有继续抛出&#xff0c;导…

CN_广域网WAN@PPP协议

文章目录WAN和LANPPP协议PPP协议有三个组成部分&#xff1a;LCPNCP成帧方法PPP帧的格式信息部分范围工作过程PPP协议特点透明传输WAN&InternetWAN和LAN WAN:广域网&#xff08;全写为 wide area network) 广 域 网局 域 网覆盖范围很广,通常跨区域较小,通常在一个区域内连…

Ubuntu内核OverlayFS权限逃逸漏洞(CVE-2021-3493)

文章目录前言关于linux kernel一、漏洞介绍二、漏洞原理三、漏洞影响版本四、漏洞复现五、修复方法前言 关于linux kernel Linux Kernel 一般指Linux内核。Linux是一种开源电脑操作系统内核。它是一个用C语言写成&#xff0c;符合POSIX标准的类Unix操作系统。 一、漏洞介绍 …

如何掌握HEC-RAS建模方法与涉河建设项目防洪评价报告编制

随着社会经济的快速发展&#xff0c;我国河道周边土地开发利用率不断增大&#xff0c;临河建筑物与日俱增&#xff0c;部分河道侵占严重&#xff0c;导致防洪压力增大。迫切需要对全国从事防洪评价咨询类的技术人员开展防洪评价技术方面的学习&#xff0c;为了让相关工程技术人…

深度学习-支持向量机(SVM)

1. 简介 在机器学习领域&#xff0c;支持向量机SVM(Support Vector Machine)是一个有监督的学习模型&#xff0c;通常用来进行模式识别、分类(异常值检测)以及回归分析。SVM算法中&#xff0c;我们将数据绘制在n维空间中&#xff08;n代表数据的特征数&#xff09;&#xff0c;…

C++ 函数指针探幽

首先看下面两个声明代表什么意思&#xff1f; double* (*(*pf)[2])(double*,int); double* (*pa[2])(double*,int);要搞清楚这两个式子&#xff0c;则先要清楚 指向指针的指针指针数组与指向数组的指针函数指针 指向指针的指针 指针的指针特殊点在于指向的是一个指针而已&am…

栈与队列2:用队列实现栈

主要是我自己刷题的一些记录过程。如果有错可以指出哦&#xff0c;大家一起进步。 转载代码随想录 原文链接&#xff1a; 代码随想录 leetcode链接&#xff1a;344. 反转字符串 题目&#xff1a; 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#x…

计量经济学复习

计量经济学 习题&#xff08;史浩江版&#xff09; 习题一 一. 单项选择题 1、横截面数据是指&#xff08;A&#xff09;。 A 同一时点上不同统计单位相同统计指标组成的数据 B 同一时点上相同统计单位相同统计指标组成的数据 C 同一时点上相同统计单位不同统计指标组成的…

GPT-Chinese 复现

github 环境准备 conda -create gpt_cn python3.7 conda activate gpt_cnconda install pytorch1.10.0 torchvision0.11.0 torchaudio0.10.0 -c pytorch pip install -r requirements.txt错误 module distutils has no attribute version解决方案&#xff1a; pip uninstal…

[附源码]计算机毕业设计基于Springboot游戏交易平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

MinIO实战

1.简介 MinIO 是一款基于Go语言发开的高性能、分布式的对象存储系统。客户端支持Java,Net,Python,Javacript, Golang语言。 2.部署 2.1单机器单节点&#xff08;docker&#xff09; 官网教程&#xff1a;https://min.io/docs/minio/container/index.html mkdir -p ~/minio/dat…

Node.js编程

Node.js编程 一、实验目的与要求 实验任务 用户信息增删改查 掌握数据库软件的安装了解集合、文档的概念掌握使用mongoose创建集合的方法创建集合掌握对数据库中的数据进行增删改查操作 二、实验任务和步骤 实验1. 用户信息增删改查 需求说明 (1)搭建网站服务器&#xf…

第十章 降维与度量学习

10.1 k近邻学习 k近邻学习&#xff08;kNN&#xff09;是一种常用的监督学习方法&#xff0c;其工作机制非常简单&#xff1a;给定测试样本&#xff0c;基于某种距离度量找出训练集中与其最靠近的k个训练样本&#xff0c;然后基于这k个邻居的信息来进行预测。 k近邻学习似乎与…

2022 计网复习计算题【太原理工大学】

期末复习汇总&#xff0c;点这里&#xff01;https://blog.csdn.net/m0_52861684/category_12095266.html?spm1001.2014.3001.5482 三、计算题 1. 假定 1km 长的 CSMA/CD 网络的数据率为 1Gb/s&#xff0c;设信号在网络上的传播速率为 200000km/s。求能够使用此协议的最短帧长…

java swing(GUI) MySQL实现的学生选课成绩管理系统源码+运行教程

今天给大家演示一下由Java swing mysql实现的一款学生选课成绩信息管理系统&#xff0c;主要实现的功能有&#xff1a;学生教师信息管理、年级班级信息管理、课程信息管理、选课、成绩录入功能、成绩统计功能&#xff0c;实现学生、教师、管理员三个角色的登录&#xff0c;三个…

【计算机图形学入门】笔记1:图形学概述

前言&#xff1a;今天开始开启一个新篇章的学习&#xff0c;那就是games101闫令琪老师讲的《现代计算机图形学入门》课程&#xff0c;我会根据闫老师每节课讲的内容记录重点笔记&#xff0c;每节课都会整理一篇发布出来&#xff0c;希望自己可以坚持下去&#xff0c;从图形学小…

可视化音视频分析工具:好用工具大集锦,快转发给你兄弟看看丨音视频工具

&#xff08;本文基本逻辑&#xff1a;音画原始数据分析工具介绍 → 编码数据分析工具介绍 → 封装格式分析工具介绍&#xff09; 工欲善其事&#xff0c;必先利其器。在音视频开发中&#xff0c;为了方便、快捷、直观的分析音视频数据&#xff0c;最好能有一些可视化的分析工…

《爱在 ZStack Cube 超融合》三部曲

一、始于初识&#xff1a;很高兴见到你 这一天东川路最靓的仔打开了 ZStack Cube 宝盒 &#xff0c;这可能是我们的第一次相遇&#xff0c;我们相谈甚欢&#xff0c;相遇恨晚。 我的名字是 ZStack Cube&#xff0c;一个基于超融合架构的云平台。我拥有3300、5300、7300、7300…

Acwing_98

题目链接 考察知识点&#xff1a; 坐标变换、递归、分治。 核心问题&#xff1a;计算出点的坐标。 策略是递归算出子图形中的坐标&#xff0c;再进行平移得到当前图形中的坐标。 采用下图方式建立坐标系&#xff1a;原点在中心。 前置知识&#xff1a; (x,y)(x,y)(x,y) 逆时…