准备工作
需要的外设:
继电器模块、电池、电磁锁(可不用,也可换成其他电气设备)
继电器模块,如图:
电池(两节3.7V)、电磁锁
注:单个继电器模块工作电压为3.3V,使用5V电压可能无法工作,4路继电器模块,3.3V、5V均可。
单个继电器demo.c
#include<wiringPi.h>
#include<stdio.h>
#define SWITCHER 7
int main(){
int cmd;
int initflag;
initflag=wiringPiSetup();
if(initflag == -1){
printf("硬件接口初始化失败");
return -1;
}
pinMode(SWITCHER,OUTPUT);
digitalWrite(SWITCHER,LOW);
while(1){
printf("请输入0/1:0—关闭开关,1—打开开关\n");
scanf("%d",&cmd);
if(cmd == 0){
printf("关闭开关\n");
digitalWrite(SWITCHER,LOW);
}
else if(cmd == 1){
digitalWrite(SWITCHER,HIGH);
printf("打开开关\n");
}else{
printf("输入错误!\n");
} }
return 0;
}
demo中用的IO口:
实验结果:
四个继电器demo.c
#include<wiringPi.h>
#include<stdio.h>
#include<string.h>
#define SW1 29
#define SW2 28
#define SW3 27
#define SW4 26
int main(){
char cmd[10]={
'\0'};
printf("打开开关\n");
else if(strcmp(cmd,"1_on")==0){
int initflag;
initflag=wiringPiSetup();
if(initflag == -1){
printf("硬件接口初始化失败");
return -1;
}
pinMode(SW1,OUTPUT);
pinMode(SW2,OUTPUT);
pinMode(SW3,OUTPUT);
pinMode(SW4,OUTPUT);
digitalWrite(SW1,LOW);
digitalWrite(SW2,LOW);
digitalWrite(SW3,LOW);
digitalWrite(SW4,LOW);
while(1){
printf("请输入off/on:off—关闭开关,on—打开开关\n");
memset(cmd,'\0',sizeof(cmd));
scanf("%s",cmd);
if(strcmp(cmd,"1_off")==0){
printf("关闭开关\n");
digitalWrite(SW1,LOW);
}
else if(strcmp(cmd,"1_on")==0){
digitalWrite(SW1,HIGH);
printf("打开开关\n");
}else{
printf("输入错误!\n");
}
}
return 0;
}