1.继电器接口
继电器驱动电压为 3.3v
2.接线
继电器正极接到树莓派 3.3v,继电器负极接到树莓派 0v,继电器 GPIO 口接到树莓派 GPIO 口
接好后继电器灯亮起(绿灯灭断开,绿灯亮为闭合)
3.代码实现
#include <stdio.h>
#include <wiringPi.h>
#define GPIO7 7
int main()
{
int cmd;
if(wiringPiSetup() == -1){ // 硬件初始化
printf("硬件初始化失败!\n");
return -1;
}
pinMode(GPIO7, OUTPUT); // 配置引脚的 IO 模式,此处我们连接了树莓派 GPIO.7,配置 7 号引脚为输出模式
while(1){
printf("请输入0或1,0--断开,1--闭合:\n");
scanf("%d",&cmd);
if(cmd == 0){
digitalWrite(GPIO7, HIGH); // 引脚 GPIO.7 输出高电平
printf("开关断开!\n");
}else if(cmd == 1){
digitalWrite(GPIO7, LOW); // 引脚 GPIO.7 输出低电平
printf("开关闭合!\n");
}else{
printf("输入错误,");
}
}
return 0;
}
4.多继电器:
使用 5v 驱动电压:
亮灯时为闭合状态,不亮时为断开状态
#include <stdio.h>
#include <wiringPi.h>
#define GPIO1 1
#define GPIO2 2
#define GPIO3 3
#define GPIO4 4
int main()
{
int no,cmd;
if(wiringPiSetup() == -1){ // 硬件初始化
printf("硬件初始化失败!\n");
return -1;
}
pinMode(GPIO1, OUTPUT); // 配置引脚的 IO 模式,配置 1 号引脚为输出模式
pinMode(GPIO2, OUTPUT); // 配置引脚的 IO 模式,配置 2 号引脚为输出模式
pinMode(GPIO3, OUTPUT); // 配置引脚的 IO 模式,配置 3 号引脚为输出模式
pinMode(GPIO4, OUTPUT); // 配置引脚的 IO 模式,配置 4 号引脚为输出模式
while(1){
while(1){
printf("请输入需要控制的继电器的序号(1~4):\n");
scanf("%d",&no);
if(no==1 || no==2 || no==3 || no==4){
printf("%d号继电器——请输入0或1,0--断开,1--闭合:\n",no);
scanf("%d",&cmd);
if(cmd==0 || cmd==1){
break;
}else{
printf("输入错误!\n");
}
}else{
printf("输入错误!\n");
}
}
switch(no){
case 1:
if(cmd == 0){
digitalWrite(GPIO1, HIGH); // 引脚 GPIO.1 输出高电平
printf("%d号继电器——开关断开!\n",no);
}else if(cmd == 1){
digitalWrite(GPIO1, LOW); // 引脚 GPIO.1 输出低电平
printf("%d号继电器——开关闭合!\n",no);
}
break;
case 2:
if(cmd == 0){
digitalWrite(GPIO2, HIGH); // 引脚 GPIO.2 输出高电平
printf("%d号继电器——开关断开!\n",no);
}else if(cmd == 1){
digitalWrite(GPIO2, LOW); // 引脚 GPIO.2 输出低电平
printf("%d号继电器——开关闭合!\n",no);
}
break;
case 3:
if(cmd == 0){
digitalWrite(GPIO3, HIGH); // 引脚 GPIO.3 输出高电平
printf("%d号继电器——开关断开!\n",no);
}else if(cmd == 1){
digitalWrite(GPIO3, LOW); // 引脚 GPIO.3 输出低电平
printf("%d号继电器——开关闭合!\n",no);
}
break;
case 4:
if(cmd == 0){
digitalWrite(GPIO4, HIGH); // 引脚 GPIO.4 输出高电平
printf("%d号继电器——开关断开!\n",no);
}else if(cmd == 1){
digitalWrite(GPIO4, LOW); // 引脚 GPIO.4 输出低电平
printf("%d号继电器——开关闭合!\n",no);
}
break;
}
}
return 0;
}