继电器组的使用

树莓派外设开发接口文档参考

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;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值