树莓派库(wiringPi)详解:
https://www.cnblogs.com/lulipro/p/5992172.html
继电器:电源 vcc 是 5v
#include <wiringPi.h>
#include <stdio.h>
#include <string.h>
#define SWI1 26 //宏定义:给引脚命名
#define SWI2 27
#define SWI3 28
#define SWI4 29
int main()
{
char cmd[12] = {'\0'};
if(wiringPiSetup() == -1){ //硬件初始化
printf("硬件接口初始化失败\n");
return -1;
}
pinMode (SWI1, OUTPUT); //配置引脚的IO模式
pinMode (SWI2, OUTPUT);
pinMode (SWI3, OUTPUT);
pinMode (SWI4, OUTPUT);
digitalWrite (SWI1,HIGH); //让对一个已近配置为输出模式的 引脚 输出指定的电平信号
digitalWrite (SWI2,HIGH); //上电后先让继电器是断开
digitalWrite (SWI3,HIGH);
digitalWrite (SWI4,HIGH);
while(1){
printf("请输入1/2/3/4/all on/off :: off-断开开关,on-导通开关\n");
memset(cmd,'\0',sizeof(cmd));
//scanf("%s",cmd); //scanf导致输入无效,不认识指令
gets(cmd); //会有警告,不管,不影响
if(strcmp(cmd,"1 on") == 0){
digitalWrite (SWI1,LOW);
}else if(strcmp(cmd,"1 off") == 0){
digitalWrite (SWI1,HIGH);
}
if(strcmp(cmd,"2 on") == 0){
digitalWrite (SWI2,LOW);
}else if(strcmp(cmd,"2 off") == 0){
digitalWrite (SWI2,HIGH);
}
if(strcmp(cmd,"3 on") == 0){
digitalWrite (SWI3,LOW);
}else if(strcmp(cmd,"3 off") == 0){
digitalWrite (SWI3,HIGH);
}
if(strcmp(cmd,"4 on") == 0){
digitalWrite (SWI4,LOW);
}else if(strcmp(cmd,"4 off") == 0){
digitalWrite (SWI4,HIGH);
}
if(strcmp(cmd,"all on") == 0){
digitalWrite (SWI1,LOW);
digitalWrite (SWI2,LOW);
digitalWrite (SWI3,LOW);
digitalWrite (SWI4,LOW);
}else if(strcmp(cmd,"all off") == 0){
digitalWrite (SWI1,HIGH);
digitalWrite (SWI2,HIGH);
digitalWrite (SWI3,HIGH);
digitalWrite (SWI4,HIGH);
}
else{
printf(">>>>>请输入正确指令>>>>>\n");
}
}
}
gets( ) 函数警告,使用有危险,但是不影响我们控制继电器。直接运行。