树莓派外设开发接口文档参考
https://www.cnblogs.com/lulipro/p/5992172.html
使用指令 gpio -v查看版本
使用指令 gpio readall查看具体的引脚信息
继电器组的使用
继电器组的工作电压为5v,低电平触发。
接线草图如下:
树莓派给继电器组供电,4个小灯一端接继电器组得常开,一端并联接到电源上。虽然可以接220v电路里面,但是不建议,操作不但可能会造成危险。
代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <wiringPi.h>
#define switcher1 26
#define switcher2 27
#define switcher3 28
#define switcher4 29
/*初始化函数*/
void init()
{
if(wiringPiSetup() == -1)
{
printf("we failed to setup wiring!\n");
exit(-1);
}
/*引脚初始化*/
pinMode(switcher1,OUTPUT);
pinMode(switcher2,OUTPUT);
pinMode(switcher3,OUTPUT);
pinMode(switcher4,OUTPUT);
/*初始化电平*/
digitalWrite(switcher1,HIGH);
digitalWrite(switcher2,HIGH);
digitalWrite(switcher3,HIGH);
digitalWrite(switcher4,HIGH);
}
/*开灯函数*/
void openLight(char *cmd)
{
if(strcmp(cmd,"1 on") == 0)
{
digitalWrite(switcher1,LOW);
}
if(strcmp(cmd,"2 on") == 0)
{
digitalWrite(switcher2,LOW);
}
if(strcmp(cmd,"3 on") == 0)
{
digitalWrite(switcher3,LOW);
}
if(strcmp(cmd,"4 on") == 0)
{
digitalWrite(switcher4,LOW);
}
if(strcmp(cmd,"1 off") == 0)
{
digitalWrite(switcher1,HIGH);
}
if(strcmp(cmd,"2 off") == 0)
{
digitalWrite(switcher2,HIGH);
}
if(strcmp(cmd,"3 off") == 0)
{
digitalWrite(switcher3,HIGH);
}
if(strcmp(cmd,"4 off") == 0)
{
digitalWrite(switcher4,HIGH);
}
if(strcmp(cmd,"initall") == 0)
{
digitalWrite(switcher1,LOW);
digitalWrite(switcher2,LOW);
digitalWrite(switcher3,LOW);
digitalWrite(switcher4,LOW);
}
if(strcmp(cmd,"killall") == 0)
{
digitalWrite(switcher1,HIGH);
digitalWrite(switcher2,HIGH);
digitalWrite(switcher3,HIGH);
digitalWrite(switcher4,HIGH);
}
else
{
printf("command not found!\n");
}
}
int main ()
{
char cmd[8] = {'\0'};
init();
while(1)
{ printf("-----------------------------------\n");
printf("请输入以下指令:\n1/2/3/4 on\n1/2/3/4 off\ninitall\nkillall\n");
printf("-----------------------------------\n");
memset(cmd,'\0',sizeof(cmd));
gets(cmd);
openLight(cmd);
}
return 0;
}