原创首发于CSDN,转载请注明出处,谢谢!https://blog.csdn.net/weixin_46959681/article/details/115145982


文章目录

  • 所用的树莓派与继电器组件
    • | 树莓派的引脚编号
    • |继电器
  • 通过树莓派引脚编程操作继电器组件
    • |源代码: gpioRelay.c
    • |操作继电器组件
  • 思绪
  • 参考资料
  • 文章更新记录

所用的树莓派与继电器组件

| 树莓派的引脚编号

数据交互成功后,使用命令 gpio readall 调出树莓派的引脚全图。参照实际的树莓派板子,图片中左边一侧引脚标号对应树莓派靠近 CPU 一侧的引脚,右边对应树莓派靠外侧一排的引脚。可以看到树莓派的引脚具有特定的编号,如 IN、ALTO(RxD、TxD)、0(GND)。

|继电器

继电器是一类电子控制元器件,具有输入回路(控制系统)和输出回路(被控制系统),多用于自动控制电路中。在实际工作中输入低电流控制高电流的一种自动开关,在电路中起着自动调节、安全保护、转换电路等作用。

继电器的工作原理可以参考文章:详解继电器的工作原理及电路
继电器工作效果教学视频:电子元件从零到精通-通过实验认识“继电器”


通过树莓派引脚编程操作继电器组件

|源代码: gpioRelay.c

/* gpioRelay.c */
#include <stdio.h>
#include <string.h>
#include <wiringPi.h>
//将杜邦线将树莓派的第27、28、29引脚与继电器组件相连。
#define SWIT1 29
#define SWIT2 28
#define SWIT3 27int main()
{   char cmd[12] = {'\0'};if(wiringPiSetup()== -1){printf("Fialed.\n");return -1;}//将配置的引脚设为输出状态。pinMode(SWIT1,OUTPUT);pinMode(SWIT2,OUTPUT);pinMode(SWIT3,OUTPUT);//默认为关闭状态。digitalWrite(SWIT1,HIGH);digitalWrite(SWIT2,HIGH);digitalWrite(SWIT3,HIGH);while(1){printf("Please input the number 1/2/3:off-break,on-pass.\n");memset(cmd,'\0',sizeof(cmd));//函数 sacnf 没起作用。gets(cmd);//低电平LOW电路接通,高电平HIGH电路断开。if(strcmp(cmd,"1 on") == 0){digitalWrite(SWIT1,LOW);}else (strcmp(cmd,"1 off") == 0){digitalWrite(SWIT1,HIGH);}if(strcmp(cmd,"2 on") == 0){digitalWrite(SWIT2,LOW);}else (strcmp(cmd,"2 off") == 0){digitalWrite(SWIT2,HIGH);}if(strcmp(cmd,"3 on") == 0){digitalWrite(SWIT3,LOW);}else(strcmp(cmd,"3 off") == 0){digitalWrite(SWIT3,HIGH);}if(strcmp(cmd,"all on") == 0){digitalWrite(SWIT1,LOW);digitalWrite(SWIT2,LOW);digitalWrite(SWIT3,LOW);}else(strcmp(cmd,"all off") == 0){digitalWrite(SWIT1,HIGH);digitalWrite(SWIT2,HIGH);digitalWrite(SWIT3,HIGH);}}
}

|操作继电器组件

在正确使用杜邦线连接继电器组与树莓派的前提下,终端运行源码 gpioRelay.c ,看到交互软件界面跳出输入指令提示,按提示输入指令即可实现与引脚相对应的继电器的开闭。或者输入 all onall off 实现全开、全闭。具体的效果实现,笔者就不在粘贴效果图了。


思绪

不停地输入 0、1 唤起电路,操纵继电器启动、闭合,目睹绿灯时而亮起时而熄灭,笔者也不禁陷入了深深的思索。从应用的层面上看,确实成功实现了操作树莓派控制了继电器的开闭。但这是通过操作一个类如“巨大的黑箱”般的函数得到的,内里整个组件所应用的原理和庞大的设计全部都被封装了,笔者对其还是一无所知。

IO流的输入、输出也是一个比较抽象的东西,输入0、1实现控制继电器的开闭,若将输入的 0、1 改为人脸面部特征数据,那就是人脸识别相关产品的研发了。输入可以是红外线、人体的温度、人的行走步态等等(万物皆可输入),输出可以是蜂鸣器的吼叫、人体热成像图、山林等高线地势图、机器学习中关于的人体动态图谱以及电动车辅助驾驶等等(万物皆可输出)。

【关于电路原理、遥感理论、传感器、信息论的课程以后必须要补起来。】


参考资料

  • 参考博文 树莓派wiringPi库详解

文章更新记录

  • “树莓派的引脚编号”一节完成。 「2021.3 23 21:55」
  • “沉思”一节完成。 「2021.3.24 11:39」
  • “使用的树莓派与继电器组”一节完成。 「2021.3.26 11:44」
  • “通过树莓派引脚编程操作继电器组”一节完成。 「2021.3.26 17:02」
  • 修改并纠正了部分文本和错别字。 「2021.4.7 10:20」

P.S.1 学习不耗费时间,写博客最耗费时间。

树莓派项目实践 [1] —— 编程控制继电器组件实现电路开闭(C语言)相关推荐

  1. 树莓派项目实践 [2] —— 编程控制实现超声波测距(C语言)

    原创首发于CSDN,转载请注明出处,谢谢!https://blog.csdn.net/weixin_46959681/article/details/115256556 文章目录 超声波模块 树莓派与 ...

  2. 经验分享:如何通过项目实践提升编程能力?

    本文经授权转载自微信公众号"crossin编程教室"(crossincode) 挑选编程实践题目的过程中,有些普遍被关注的问题,今天在这里集中聊一聊,包括我这些年指导学生的一点经验 ...

  3. 为什么以及如何通过机器人学习编程和项目实践

    编程语言有很多,算法应用场景也很丰富,通过机器人学习编程的优势在哪里? 仿真:零成本测试算法 真机:实际环境中直观展示算法 机器人项目实践 机器人编程 深度优先搜索Depth First Search ...

  4. Unix朝代歌《精通Unix下C语言编程与项目实践》读书笔记(7)

      文章试读  <精通Unix下C语言编程与项目实践>读书笔记(new) <精通Unix下C语言编程与项目实践>文章试读 第1回 回评论读者展迷茫,出<笔记>浪子释 ...

  5. Unix下设计动态库的方法《精通Unix下C语言编程与项目实践》(一)

    精通Unix下C语言编程与项目实践 之动态库的生成 作者:朱云翔,胡平 3.3 动态库的生成 动态库的生成可分为三个步骤,设计库源码.编译位置无关码(PIC)型.o文件和链接动态库.链接动态库的命令包 ...

  6. python编程入门指南 明日科技-python从入门到项目实践明日科技三剑客书籍视频...

    ┃ code(实例源码) ┃ ┃ 03.rar ┃ ┃ 04.rar ┃ ┃ 05.rar ┃ ┃ 06.rar ┃ ┃ 07.rar ┃ ┃ 08.rar ┃ ┃ 09.rar ┃ ┃ 10.rar ...

  7. 文件锁操作《精通Unix下C语言编程与项目实践》之三

    文章试读 不拘一个遍程序系列:编程序不能一个脑袋钻到底,有时要学会变通,即所谓的曲线救国.一.二.三.四 职场规划:一些杂七杂八的职场感悟吧.不值钱的软件人才 精力充沛与事业成功 我的诗歌:都是我的打 ...

  8. Java编程比C编程好吗?《精通Unix下C语言与项目实践》读书笔记(15)

    <精通Unix下C语言编程与项目实践>读书笔记(new) 文章试读  不拘一个遍程序系列:编程序不能一个脑袋钻到底,有时要学会变通,即所谓的曲线救国.一.二.三.四 职场规划:一些杂七杂八 ...

  9. Unix编程需要学习的内容(3)《精通Unix下C语言与项目实践》读书笔记(13)

    <精通Unix下C语言编程与项目实践>读书笔记(new) 文章试读  不拘一个遍程序系列:编程序不能一个脑袋钻到底,有时要学会变通,即所谓的曲线救国.一.二.三.四 职场规划:一些杂七杂八 ...

最新文章

  1. mysql索引总结----mysql 索引类型以及创建
  2. [POJ1741]Tree
  3. 在vs2010或者vs2008中配置PC-lint9.0版
  4. mysql+keepalived必须要lvs吗_MySQL 双主热备 + LVS + Keepalived 高可用操作记录
  5. Unity3d DLL脚本通用解密方法
  6. 苏宁大数据怎么运营_运营商大数据精准获客
  7. java 画砖块,钢笔画入门:教你画砖块
  8. 【项目实施随笔】改造一下Dialog
  9. github博客安装jekyll的RUBY更换源
  10. 《How to Write and Publish a Scientifc Paper》个人笔记
  11. jvm中的新生代Eden和survivor区
  12. 联想Y470 非虚拟机安装苹果Mac OS X Mavericks 10.9.1教程详解(文字+图片),通俗易懂亲自动手——序列二之镜像写入,引导建立
  13. 计算机操作系统-运行机制、体系结构
  14. 计算机带不动移动硬盘,我笔记本的USB带不动移动硬盘,但另外一台电脑又可以,同样的盘盒,换一块硬盘又可以,...
  15. Android sockot连接打印机EPSON ESC/POS指令打印
  16. Linux下gunicorn用法
  17. 【基金学习】学习基本概念
  18. 箱形图 python_Python-箱形图
  19. 国移.动50元电话充值 长途ip充值 自.动秒充到账
  20. 推荐一本书 selenium2+python自动化-作者虫师

热门文章

  1. 你会如何给全局对象添加toString()方法
  2. python阿凡提与国王下棋_阿基米德与国王下棋的故事
  3. 网络安全——无线局域网安全技术——802.11i
  4. java弹框刷新原页面_JavaScript:关闭弹出窗口时刷新父窗口
  5. STM32 ES8266上阿里云IOT MQTT实践【第一章】:物联网简介(什么是物联网)
  6. 20200428 线程安全(上)--彻底搞懂volatile关键字
  7. 初识python 视频_#python day02 初识python 学习视频来源于 太白金星
  8. 计算机本科论文胶装封面颜色,毕业论文装订、存档详解
  9. 用MyBatis来操作crud
  10. Http请求状态码:905