找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8105|回复: 14
收起左侧

Arduino+labview(或蓝牙)的多路继电器或负载控制 附源码与手机APP

  [复制链接]
ID:343850 发表于 2018-6-3 15:42 | 显示全部楼层 |阅读模式
所需元件: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”。

IMG_20180603_143843.jpg

手机软件界面:

手机软件界面

手机软件界面


手机软件设置:

手机软件设置

手机软件设置


本人采用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.   
复制代码

labview前面板

labview前面板

labview程序图

labview程序图

对应操作

对应操作

压缩包文件

压缩包文件
0.png

多路控制.rar

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

全部文件

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:243748 发表于 2018-6-21 11:12 来自手机 | 显示全部楼层
最多能控制几路?
回复

使用道具 举报

ID:343850 发表于 2018-7-1 18:00 | 显示全部楼层
wuxishun 发表于 2018-6-21 11:12
最多能控制几路?

取决于你所用的单片机型号
回复

使用道具 举报

ID:392459 发表于 2018-9-1 22:06 来自手机 | 显示全部楼层
前几天用蓝牙继电器控制直流减速电机做了个蓝牙门锁
回复

使用道具 举报

ID:373684 发表于 2018-9-24 20:19 | 显示全部楼层
我的Labview过期了可以做这样的实验吗???
回复

使用道具 举报

ID:170477 发表于 2018-10-14 14:45 | 显示全部楼层
請問一下~手機的APP要如何編寫或取得
回复

使用道具 举报

ID:429183 发表于 2018-11-22 12:32 | 显示全部楼层
这个可以加上串口屏做成触摸屏开关
回复

使用道具 举报

ID:360137 发表于 2019-1-1 20:28 | 显示全部楼层
labview连接蓝牙是调用电脑自带的蓝牙吗,还是蓝牙模块(蓝牙适配器)
是否还需要蓝牙驱动管理软件。
希望能尽快回复,谢谢
回复

使用道具 举报

ID:343850 发表于 2019-1-11 21:16 来自手机 | 显示全部楼层
kpzhang 发表于 2019-1-1 20:28
labview连接蓝牙是调用电脑自带的蓝牙吗,还是蓝牙模块(蓝牙适配器)
是否还需要蓝牙驱动管理软件。
希 ...

LabVIEW数据线连的是arduino硬件,手机无线连的是蓝牙模块,蓝牙与arduino Uart通讯
回复

使用道具 举报

ID:343850 发表于 2019-1-11 21:17 来自手机 | 显示全部楼层
max_lin_7 发表于 2018-10-14 14:45
請問一下~手機的APP要如何編寫或取得

附件里面有破解过广告的APP,只支持安卓
回复

使用道具 举报

ID:371071 发表于 2019-6-24 11:04 来自手机 | 显示全部楼层
可不可以用手机app控制4路或者8路继电器
回复

使用道具 举报

ID:343850 发表于 2019-7-17 15:51 | 显示全部楼层
我行天下 发表于 2019-6-24 11:04
可不可以用手机app控制4路或者8路继电器

可以控制,可以同时十几路。手机装个软件写好编码就行了
回复

使用道具 举报

ID:272625 发表于 2019-8-6 15:45 | 显示全部楼层
好像资料,感谢楼主分享。有时间玩玩!
回复

使用道具 举报

ID:707307 发表于 2020-4-25 16:33 | 显示全部楼层
请问用蓝牙模块链接LabVIEW与Arduino,出现-1073807246的错误怎么解决?错误可能是蓝牙串口被占用了,因为我用串口调试助手链接上了蓝牙模块,但是把LIFA_Base.ino烧进Arduino中提示COM5蓝牙串口被占用,因此无法将程序烧进开发板,不是代码的问题,用数据线烧程序进去是可以实现的,请问有解决的办法吗?
回复

使用道具 举报

ID:343850 发表于 2020-9-25 23:58 来自手机 | 显示全部楼层
印第安灿 发表于 2020-4-25 16:33
请问用蓝牙模块链接LabVIEW与Arduino,出现-1073807246的错误怎么解决?错误可能是蓝牙串口被占用了,因为 ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表