标题: Arduino+labview(或蓝牙)的多路继电器或负载控制 附源码与手机APP [打印本页]

作者: 864923490    时间: 2018-6-3 15:42
标题: Arduino+labview(或蓝牙)的多路继电器或负载控制 附源码与手机APP
所需元件:Arduino单片机一块,电脑,HC-06蓝牙模块(可选)。若干LED(验证是否有效)蓝牙模块与Arduino接线:
vcc接+5V
GND接GND
RX(蓝牙)接TX(单片机)
TX(蓝牙)接RX(单片机)
Labview采用条件分支结构,与单片机采用串口通讯方式。所以可以用蓝牙模块代替,蓝牙按照要求连接好安装压缩包内蓝牙软件(已经去过广告)。
1.labview控制方式:
电脑需要安装labview软件,然后打开压缩包中VI文件,单片机提前烧录程序连接电脑,电脑软件选择好对应COM口,运行状态下操作前面板即可。
2.蓝牙控制方式
蓝牙模块先和手机配对,然后打开手机软件连接蓝牙。第一次操作需要对蓝牙软件进行设置,需要注意的是按照图中选择16进制。查看表格中编码对应单片机I/O口,例如:对第3脚进行设置,开对应的16进制消息为“55 AA 12 0D”关对应的消息为“55 AA 13 0D”。



手机软件界面:


手机软件设置:



本人采用LED只是为了验证是否有效,实际应用过程中可用继电器代替控制其他负载。程序部分代码如下没有优化,还请见谅。

源码:
  1. break;        
  2. case L9on:
  3. digitalWrite(L9,HIGH);     
  4. Serial.println("L9      on");
  5. break;        
  6. case L9off:
  7. digitalWrite(L9,LOW);      
  8. Serial.println("L9      off");
  9. break;        
  10. case L10on:
  11. digitalWrite(L10,HIGH);   
  12. Serial.println("L10   on");
  13. break;        
  14. case L10off:
  15. digitalWrite(L10,LOW);   
  16. Serial.println("L10   off");
  17. break;        
  18. case L11on:
  19. digitalWrite(L11,HIGH);   
  20. Serial.println("L11   on");
  21. break;        
  22. case L11off:
  23. digitalWrite(L11,LOW);   
  24. Serial.println("L11   off");
  25. break;        
  26. case L12on:
  27. digitalWrite(L12,HIGH);   
  28. Serial.println("L12   on");
  29. break;        
  30. case L12off:
  31. digitalWrite(L12,LOW);   
  32. Serial.println("L12   off");
  33. break;        
  34. case L13on:
  35. digitalWrite(L13,HIGH);   
  36. Serial.println("L13   on");
  37. break;        
  38. case L13off:
  39. digitalWrite(L13,LOW);   
  40. Serial.println("L13   off");
  41. break;        
  42. case L14on:
  43. digitalWrite(L14,HIGH);   
  44. Serial.println("L14   on");
  45. break;        
  46. case L14off:
  47. digitalWrite(L14,LOW);   
  48. Serial.println("L14   off");
  49. break;        
  50. case L15on:
  51. digitalWrite(L15,HIGH);   
  52. Serial.println("L15   on");
  53. break;        
  54. case L15off:
  55. digitalWrite(L15,LOW);   
  56. Serial.println("L15   off");
  57. break;        
  58. case L16on:
  59. digitalWrite(L16,HIGH);   
  60. Serial.println("L16   on");
  61. break;        
  62. case L16off:
  63. digitalWrite(L16,LOW);   
  64. Serial.println("L16   off");
  65. break;        
  66. case L17on:
  67. digitalWrite(L17,HIGH);   
  68. Serial.println("L17   on");
  69. break;        
  70. case L17off:
  71. digitalWrite(L17,LOW);   
  72. Serial.println("L17   off");
  73. break;        
  74. case L18on:
  75. digitalWrite(L18,HIGH);   
  76. Serial.println("L18   on");
  77. break;        
  78. case L18off:
  79. digitalWrite(L18,LOW);   
  80. Serial.println("L18   off");
  81. break;        
  82. case L19on:
  83. digitalWrite(L19,HIGH);   
  84. Serial.println("L19   on");
  85. break;        
  86. case L19off:
  87. digitalWrite(L19,LOW);   
  88. Serial.println("L19   off");
  89. break;        
  90. case L20on:
  91. digitalWrite(L20,HIGH);   
  92. Serial.println("L20   on");
  93. break;        
  94. case L20off:
  95. digitalWrite(L20,LOW);   
  96. Serial.println("L20   off");
  97. break;      
  98. case on:
  99. Serial.println("Allon");
  100. digitalWrite(L1,HIGH);
  101. digitalWrite(L2,HIGH);
  102. digitalWrite(L3,HIGH);
  103. digitalWrite(L4,HIGH);
  104. digitalWrite(L5,HIGH);
  105. digitalWrite(L6,HIGH);
  106. digitalWrite(L7,HIGH);
  107. digitalWrite(L8,HIGH);
  108. digitalWrite(L9,HIGH);
  109. digitalWrite(L10,HIGH);
  110. digitalWrite(L11,HIGH);
  111. digitalWrite(L12,HIGH);
  112. digitalWrite(L13,HIGH);
  113. digitalWrite(L14,HIGH);
  114. digitalWrite(L15,HIGH);
  115. digitalWrite(L16,HIGH);
  116. digitalWrite(L17,HIGH);
  117. digitalWrite(L18,HIGH);
  118. digitalWrite(L19,HIGH);
  119. digitalWrite(L20,HIGH);
  120. break;        
  121. case off:
  122. Serial.println("ALLoff");
  123. digitalWrite(L1,LOW);
  124. digitalWrite(L2,LOW);
  125. digitalWrite(L3,LOW);
  126. digitalWrite(L4,LOW);
  127. digitalWrite(L5,LOW);
  128. digitalWrite(L6,LOW);
  129. digitalWrite(L7,LOW);
  130. digitalWrite(L8,LOW);
  131. digitalWrite(L9,LOW);
  132. digitalWrite(L10,LOW);
  133. digitalWrite(L11,LOW);
  134. digitalWrite(L12,LOW);
  135. digitalWrite(L13,LOW);
  136. digitalWrite(L14,LOW);
  137. digitalWrite(L15,LOW);
  138. digitalWrite(L16,LOW);
  139. digitalWrite(L17,LOW);
  140. digitalWrite(L18,LOW);
  141. digitalWrite(L19,LOW);
  142. digitalWrite(L20,LOW);
  143. break;         
  144.         }   
  145.    
  146.       }   
  147.    
  148.    }   
  149.    
  150. }   
  151.   
复制代码

截图未命名1111.jpg (52.11 KB, 下载次数: 172)

labview前面板

labview前面板

截图未命名2222.jpg (77.37 KB, 下载次数: 148)

labview程序图

labview程序图

截图未命名.jpg (66.34 KB, 下载次数: 164)

对应操作

对应操作

截图未命名0.jpg (25.5 KB, 下载次数: 167)

压缩包文件

压缩包文件

0.png (44.89 KB, 下载次数: 151)

0.png

多路控制.rar

2.04 MB, 下载次数: 133, 下载积分: 黑币 -5

全部文件


作者: wuxishun    时间: 2018-6-21 11:12
最多能控制几路?
作者: 864923490    时间: 2018-7-1 18:00
wuxishun 发表于 2018-6-21 11:12
最多能控制几路?

取决于你所用的单片机型号
作者: 新海东    时间: 2018-9-1 22:06
前几天用蓝牙继电器控制直流减速电机做了个蓝牙门锁
作者: cr8526    时间: 2018-9-24 20:19
我的Labview过期了可以做这样的实验吗???
作者: max_lin_7    时间: 2018-10-14 14:45
請問一下~手機的APP要如何編寫或取得
作者: 白鱼    时间: 2018-11-22 12:32
这个可以加上串口屏做成触摸屏开关
作者: kpzhang    时间: 2019-1-1 20:28
labview连接蓝牙是调用电脑自带的蓝牙吗,还是蓝牙模块(蓝牙适配器)
是否还需要蓝牙驱动管理软件。
希望能尽快回复,谢谢
作者: 864923490    时间: 2019-1-11 21:16
kpzhang 发表于 2019-1-1 20:28
labview连接蓝牙是调用电脑自带的蓝牙吗,还是蓝牙模块(蓝牙适配器)
是否还需要蓝牙驱动管理软件。
希 ...

LabVIEW数据线连的是arduino硬件,手机无线连的是蓝牙模块,蓝牙与arduino Uart通讯
作者: 864923490    时间: 2019-1-11 21:17
max_lin_7 发表于 2018-10-14 14:45
請問一下~手機的APP要如何編寫或取得

附件里面有破解过广告的APP,只支持安卓
作者: 我行天下    时间: 2019-6-24 11:04
可不可以用手机app控制4路或者8路继电器
作者: 864923490    时间: 2019-7-17 15:51
我行天下 发表于 2019-6-24 11:04
可不可以用手机app控制4路或者8路继电器

可以控制,可以同时十几路。手机装个软件写好编码就行了
作者: 都市郎    时间: 2019-8-6 15:45
好像资料,感谢楼主分享。有时间玩玩!
作者: 印第安灿    时间: 2020-4-25 16:33
请问用蓝牙模块链接LabVIEW与Arduino,出现-1073807246的错误怎么解决?错误可能是蓝牙串口被占用了,因为我用串口调试助手链接上了蓝牙模块,但是把LIFA_Base.ino烧进Arduino中提示COM5蓝牙串口被占用,因此无法将程序烧进开发板,不是代码的问题,用数据线烧程序进去是可以实现的,请问有解决的办法吗?

作者: 864923490    时间: 2020-9-25 23:58
印第安灿 发表于 2020-4-25 16:33
请问用蓝牙模块链接LabVIEW与Arduino,出现-1073807246的错误怎么解决?错误可能是蓝牙串口被占用了,因为 ...

1.是arduino连接蓝牙或者lab,主次要分清。
2.打开vi例程如果报错需要安装visa驱动
3.给单片机烧写程序的时候需要取下蓝牙模块




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1