##今天是我的短距离课程设计完工的日子,写篇博客纪念一下~~
说起来也是一个很简单的设计,只不过从软件到硬件都是一点一点搞出来的,话不多说进入正题。。。
设计目标:
用arduino与蓝牙(Hc06) 通过用手机APP控制开门开灯
材料准备
首先,你要有一块蓝牙,进入AT指令设置蓝牙的模式,这个可能会有帮助
https://blog.csdn.net/weixin_37272286/article/details/78016497?locationNum=10&fps=1&tdsourcetag=s_pctim_aiomsg
然后买一块Arduino uno板子,至于开发环境 驱动 什么的某宝上买的就去找客服要
再然后准备一个led小灯、一个步进电机(用来做开关门演示)
软件的话就Android Studio开发环境用来开发 APP
线路连接
先说led灯
就只需要直接插在板子上就好(长正短负,我用长的接13引脚,短的接GND)
蓝牙与arduino连接,这里我是自定义了软串口11 12 引脚,两种都行
TX<----------->RX (11引脚)
RX<----------->TX (12引脚)
5V<----------->5V
GND<------>GND
然后是步进电机
步进电机的驱动模块与arduino连接,看图吧
至于原理什么的一句话也说不清楚,朋友推荐的一个老师讲的Arduino与步进电机连接的视频可以看一下,还是很详细的,其实arduino板子就可以带动步进电机,要不要外接电源都行,我嫌麻烦就没整,直接接在板子上了,记得接地!!
https://www.bilibili.com/video/av31147843?p=13&tdsourcetag=s_pctim_aiomsg
好了,准备工作做的差不多了,接下来就上代码了
#include <SoftwareSerial.h>
SoftwareSerial SerialBT(11,12);//自定义的软串口
void setup()
{
// 初始化串口设置波特率为 38400
Serial.begin(38400);
SerialBT.begin(38400);
pinMode(13, OUTPUT);
//初始化与步进电机连接的引脚2,3,4,5
for (int i = 2; i < 6; i++) {
pinMode(i, OUTPUT);
}
}
void loop()
{
while(SerialBT.available())
{
//从串口读到来自APP发的信息
char c=SerialBT.read();
if(c=='1')
{
Serial.println("BT is ready!");
// 灯亮,返回到手机调试程序上
SerialBT.println("Serial--13--high");
digitalWrite(13,HIGH);
}
if(c=='2')
{
//灯灭
SerialBT.println("Serial--13--low");
digitalWrite(13,LOW);
}
if(c=='3')
{
//这个循环用来控制电机转动的角度,60不是角度
for (int count = 0; count < 60; count++)
{
for (int i = 2; i < 6; i++)
{
// 开门
digitalWrite(i, HIGH);
delay(3);
digitalWrite(i, LOW);
}
}
}
if(c=='4')
{
for (int count = 0; count < 60; count++)
{
for (int i = 5; i > 1; i--)
{
//关门
digitalWrite(i, HIGH);
delay(3);
digitalWrite(i, LOW);
}
}
}
}
}
手机APP ,可以下载一个蓝牙串口助手,连上蓝牙,直接就可以使用,想要自己写程序就找源码
附上一张我的实拍图