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

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



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

在这里插入图片描述

| 树莓派的引脚编号

数据交互成功后,使用命令 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 27

int 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 改为人脸面部特征数据,那就是人脸识别相关产品的研发了。输入可以是红外线、人体的温度、人的行走步态等等(万物皆可输入),输出可以是蜂鸣器的吼叫、人体热成像图、山林等高线地势图、机器学习中关于的人体动态图谱以及电动车辅助驾驶等等(万物皆可输出)。

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


参考资料


文章更新记录

  • “树莓派的引脚编号”一节完成。 「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
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值