树莓派——树莓派控制继电器组

树莓派——树莓派控制继电器组

一、接线
树莓派的5v——继电器的VCC
树莓派的0v——继电器的GND

其他的四根线为信号线
继电器IN1——IN4分别接到树莓派的GPIO26,
GPIO27,GPIO28,GPIO29。

二、代码

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

       /*设置SWI1——SWI4为输出引脚*/
       pinMode(SWI1,OUTPUT);
       pinMode(SWI2,OUTPUT);
       pinMode(SWI3,OUTPUT);
       pinMode(SWI4,OUTPUT);

       //设置SWI1——SWI4引脚上电之前为断开状态
       digitalWrite(SWI1,HIGH);
       digitalWrite(SWI2,HIGH);
       digitalWrite(SWI3,HIGH);
       digitalWrite(SWI4,HIGH);

       while(1)
  {
       printf("请输入1/2/3/4on off:off——断开开关,on——导通开关\n");
       memset(cmd,'\0',sizeof(cmd));//初始化
       //scanf("%s",&cmd);
       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);  
         //高电平导通断开
      }

       else
       {
           printf("请输入正确指令\n");
       }

  }
}

运行时要链接库:gcc demo1.c -lwiringPi
执行代码:./a.out

继电器的灯亮起:
每一个都要执行开关操作
q
继电器亮
在这里插入图片描述
继电器灭
在这里插入图片描述
一键关闭和开启

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

       /*设置SWI1——SWI4为输出引脚*/
       pinMode(SWI1,OUTPUT);
       pinMode(SWI2,OUTPUT);
       pinMode(SWI3,OUTPUT);
       pinMode(SWI4,OUTPUT);

       //设置SWI1——SWI4引脚上电之前为断开状态
       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);
       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");
            }

  }
}

运行效果:
一键全开:
在这里插入图片描述
在这里插入图片描述

一键全关
在这里插入图片描述
在这里插入图片描述

——@上官可编程

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值