树莓派C编程实现继电器控制

目录

 

树莓派的引脚信息

继电器的基本知识

继电器引脚信息

继电器电路图连接 

继电器工作原理

C编程控制实现 

运行程序

运行结果说明:


  • 树莓派的引脚信息

  • 继电器的基本知识

  • 继电器引脚信息

nc:常闭端

no:常开端

com:公共端

s/in:输入控制信号端

vcc:连接树莓派的VCC

gnd:连接树莓派的GND

继电器封装图片:

  • 继电器电路图连接 

  1. VCC、GND、S/IN与树莓派上对应的VCC、GND、以及自己想要编程控制的引脚相接;

  2. 先把所需要控制的器件一路线路分为两段,一段与继电器的com相接,另一段与继电器的no相接,类似于把继电器当一个开关接入。

  • 继电器工作原理

在连接好电路之后,如果控制树莓派自己指定的引脚输出低电平时,此时线圈没有电流通过,衔铁与常闭端形成通路,如果小灯泡的一路线与no相接,此时灯泡不亮;如果控制树莓派自己指定的引脚输出高电平时,即树莓派发送信号,此时线圈有电流通过,通过电生磁,衔铁就会与常开的一端形成通路,即灯泡亮。

具体工作原理详见此链接:继电器工作原理 

  • C编程控制实现 

  1. 头文件:
    #ifndef  _RELAY_H_
    #define  _RELAY_H_
    #include <stdio.h>
    #include <string.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <getopt.h>
    #include <wiringPi.h>
    #include <unistd.h>
    #include <errno.h>
    
    #define time_out 5   //dealy time 
    #define RELAY    28  //使用的树莓派管脚
    enum
    {
            OFF = 0,   //低电平,灯灭
            ON     //高电平,灯亮
    };
    
    extern int realy(int cmd);
    #endif   /* ----- #ifndef _RELAY_H_  ----- */
  2. 源文件
    #include "relay.h"
    static inline void relay_init()
    {
        wiringPiSetup();         //初始化wiringPiSetup
        pinMode(RELAY, OUTPUT);  //将管脚定义为输出管脚
    }
    
    int main()
    {
        while(1)
        {
            realy(ON);
            sleep(3);
            realy(OFF);
            sleep(1);
        }
    }
    
    int realy(int cmd)
    {
        relay_init();
    
        if (cmd == ON)
        {
            digitalWrite(RELAY,ON);//高电平,灯亮 
        }
        else if(cmd == OFF)
            digitalWrite(RELAY,OFF); //高电平,灯亮
        return 0;
    }
  • 运行程序

gcc relay.c -o relay -lwiringPi  //指定使用lwiringPi库,引脚编码就会与wiring引脚编码一致


./relay
  • 运行结果说明:

当线路连接正确之后,运行代码,被控制的灯泡就会亮三秒后熄灭;如此反复。

猜你喜欢

转载自blog.csdn.net/qq_44045338/article/details/107215634