Liunx树莓派(ARM)开发篇—第七章、树莓派控制继电器(附代码)

准备工作

需要的外设:

继电器模块、电池、电磁锁(可不用,也可换成其他电气设备)

继电器模块,如图:
在这里插入图片描述

电池(两节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中用的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;
}
demo中用的IO口:

在这里插入图片描述

实验结果:略

猜你喜欢

转载自blog.csdn.net/weixin_44933419/article/details/113773136