树莓派8:树莓派控制继电器

爱被打了一巴掌 2022-12-08 05:49 604阅读 0赞

树莓派控制继电器

1.继电器:(可编程电子开关)

低电平有效

一、继电器的定义

继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。

二、继电器的作用(小电流控制大电流)

通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。

三、继电器模块实物图

在这里插入图片描述
四、模块说明:

1、模块采用正品继电器,常开接口大负载:交流250V/10A,直流30V/10A;
2、采用贴片光耦隔离,驱动能力强,性能稳定;触发电流5mA;
3、模块工作电压有5V、9、12V、24V可供选择;
4、模块可以通过跳线设置高电平或低电平触发;
5、容错设计,即使控制线断,继电器也不会动作;
6、电源指示灯(绿色),继电器状态指示灯(红色)
7、接口设计人性化,所有接口均可通过接线端子直接连线引出,非常方便
8、模块:50mm * 26mm* 18.5mm(长高)
9、设有4个固定螺栓孔,孔3.1mm,间距44.5mm*20.5mm
五、 模块接口:
1、DC+:接电源正极(电压按继电器要求,有5V.9V.12V和24V选择)
2、DC-:接电源负极
3、IN:可以高或低电平控制继电器吸合
继电器输出端:
1、NO: 继电器常开接口,继电器吸合前悬空,吸合后与COM短接
2、COM:继电器公用接口
3、NC: == 继电器常闭接口==,继电器吸合前与COM短接,吸合后悬空
高低电平触发选择端:
1.跳线与LOW短接时为低电平触发;
2.跳线与high短接时为高电平触发;

2.树莓派:

一,在终端输入:

  1. gpio readall

显示出树莓派的引脚信息:
在这里插入图片描述

把指定引脚与继电器进行相连。

程序;

写一个程序实现,键盘输入1:导通;输入0:断开。

  1. #include <stdio.h>
  2. #include <wiringPi.h>
  3. #define SWIT 7
  4. int main()
  5. {
  6. int cmd;
  7. if(wiringPiSetup()==-1)
  8. {
  9. printf("硬件接口初始化失败\n");
  10. return -1;
  11. }
  12. pinMode(SWIT,OUTPUT);
  13. digitalWrite(SWIT,HIGH);
  14. while(1)
  15. {
  16. printf("请输入0/1:0--断开开关;1--导通开关\n");
  17. scanf("%d",&cmd);
  18. getchar();
  19. if(cmd==1)
  20. {
  21. digitalWrite(SWIT,LOW);//继电器低电平有效
  22. }else if(cmd==0)
  23. {
  24. digitalWrite(SWIT,HIGH);//灭
  25. } else
  26. {
  27. printf("输入错误\n");
  28. }
  29. }
  30. return 0;
  31. }

编译运行1:

  1. gcc demo1.c -lwiringPi
  2. ./a.out
  3. 1----亮
  4. 0----灭

二:控制4个继电器开关亮灭:

在这里插入图片描述

在这里插入图片描述
把指定引脚与继电器进行相连。

程序:

  1. #include <stdio.h>
  2. #include <wiringPi.h>
  3. #include <string.h>
  4. #define SWI1 26
  5. #define SWI2 27
  6. #define SWI3 28
  7. #define SWI4 29
  8. int main()
  9. {
  10. char cmd[12]={
  11. '\0'};
  12. if(wiringPiSetup()==-1)
  13. {
  14. printf("硬件接口初始化失败\n");
  15. return -1;
  16. }
  17. pinMode(SWI1,OUTPUT);
  18. pinMode(SWI2,OUTPUT);
  19. pinMode(SWI3,OUTPUT);
  20. pinMode(SWI4,OUTPUT);
  21. digitalWrite(SWI1,HIGH);
  22. digitalWrite(SWI2,HIGH);
  23. digitalWrite(SWI3,HIGH);
  24. digitalWrite(SWI4,HIGH);
  25. while(1)
  26. {
  27. printf("请输入1/2/3/4:off--断开开关;on--导通开关\n");
  28. memset(cmd,'\0'sizeof(cmd));
  29. //scanf("%s",&cmd);
  30. //getchar();
  31. gets(cmd);
  32. if(strcmp(cmd,"1 on")==0)//
  33. {
  34. digitalWrite(SWI1,LOW);//继电器低电平有效
  35. }else if(strcmp(cmd,"1 off")==0)
  36. {
  37. digitalWrite(SWI1,HIGH);//灭
  38. }
  39. if(strcmp(cmd,"2 on")==0)//
  40. {
  41. digitalWrite(SWI2,LOW);//继电器低电平有效
  42. }else if(strcmp(cmd,"2 off")==0)
  43. {
  44. digitalWrite(SWI2,HIGH);//灭
  45. }
  46. if(strcmp(cmd,"3 on")==0)//
  47. {
  48. digitalWrite(SWI3,LOW);//继电器低电平有效
  49. }else if(strcmp(cmd,"3 off")==0)
  50. {
  51. digitalWrite(SWI3,HIGH);//灭
  52. }
  53. if(strcmp(cmd,"4 on")==0)//
  54. {
  55. digitalWrite(SWI4,LOW);//继电器低电平有效
  56. }else if(strcmp(cmd,"4 off")==0)
  57. {
  58. digitalWrite(SWI4,HIGH);//灭
  59. }
  60. if(strcmp(cmd,"all on")==0)//
  61. {
  62. digitalWrite(SWI1,LOW);//继电器低电平有效
  63. digitalWrite(SWI2,LOW);
  64. digitalWrite(SWI3,LOW);
  65. digitalWrite(SWI4,LOW);
  66. }else if(strcmp(cmd,"all off")==0)
  67. {
  68. digitalWrite(SWI1,HIGH);//灭
  69. digitalWrite(SWI2,HIGH);
  70. digitalWrite(SWI3,HIGH);
  71. digitalWrite(SWI4,HIGH);
  72. }
  73. else
  74. {
  75. printf("输入错误请重新输入\n");
  76. }
  77. }
  78. return 0;
  79. }

编译运行:

  1. gcc demo1.c -lwiringPi
  2. ./a.out
  3. 1 on
  4. 2 on
  5. 3 on
  6. 4 on
  7. all on
  8. -------------------------
  9. 1 off
  10. 2 off
  11. 3 off
  12. 4 off
  13. all off

参考:
树莓派wiringPi库详解

发表评论

表情:
评论列表 (有 0 条评论,604人围观)

还没有评论,来说两句吧...

相关阅读

    相关 树莓

    树莓派 ![在这里插入图片描述][20190303220146889.jpg_pic_center] 树莓派是什么 树莓派(英文名为Raspberry Pi,简写