当前位置:首页 > 工业园区 >arduino蓝牙模块控制教程(arduino蓝牙控制器)

arduino蓝牙模块控制教程(arduino蓝牙控制器)

了解如何使用移动设备上的Android 应用程序、Arduino UNO 和HC-05 蓝牙模块来控制伺服电机。

硬件组件:

arduino蓝牙模块控制教程(arduino蓝牙控制器)

Arduino UNO 1

HC-05蓝牙模块1

SG90微型伺服电机1

软件应用程序和在线服务:

麻省理工学院应用发明家2

手动工具和制造机器:

10 套毛衣,长5 厘米

面包板,170 针

伺服电机是一个闭环系统,使用位置反馈来控制其运动和最终位置。

RC 伺服电机的工作原理相同。它包含一个通过齿轮连接到输出轴的小型直流电动机。

输出轴驱动伺服臂,同时还连接电位器(pot)。

电位计向伺服控制单元提供位置反馈,将电机的当前位置与目标位置进行比较。

根据误差,控制单元修正电机的实际位置以匹配目标位置。

通过信号线发送一系列脉冲来控制伺服电机。控制信号的频率应为50Hz或每20ms产生一个脉冲。脉冲的宽度决定了舵机的角度位置,这些类型的舵机通常可以旋转180度

控制线用于传达角度。该角度由施加到控制线上的脉冲的持续时间确定。这称为脉冲编码调制。服务器期望每20 毫秒(0.02 秒)看到一个脉冲。脉冲的长度将决定电机旋转多远。例如,1.5 毫秒的脉冲将导致电机转动到90 度位置(通常称为中立位置)。如果脉冲短于1.5 毫秒,电机会将轴旋转到接近0 度的位置。如果脉冲长于1.5 毫秒,轴将接近180 度。

电路原理图:

首先,使用Arduino连接伺服电机。

将两个伺服电机的黑线连接到Arduino 的GND。将两个电机的橙色线连接至Arduino 的5V。将第一个电机的橙色线连接到Arduino 的引脚9。

首先,使用以下arduino 代码在没有蓝牙的情况下测试伺服电机扫描功能:

包括

伺服我的伺服; //创建伺服对象来控制伺服

//大多数板上可以创建12 个伺服对象

int 位置=0; //存储舵机位置的变量

无效设置(){

myservo.attach(9); //将引脚9 上的伺服连接到伺服对象

}

无效循环(){

for (pos=0; pos=180; pos +=1) { //从0 度变为180 度

//以1 度为步长

myservo.write(pos); //告诉舵机转到变量“pos”中的位置

延迟(15); //等待15ms让舵机到达该位置

}

for (pos=180; pos=0; pos -=1) { //从180 度变为0 度

myservo.write(pos); //告诉舵机转到变量“pos”中的位置

延迟(15); //等待15ms让舵机到达该位置

}

}

输出结果:

之后,建立蓝牙模块与Arduino的连接。

将蓝牙模块的VCC连接到Arduino的5V。将蓝牙模块的GND连接到Arduino的GND。将蓝牙模块的TX连接到Arduino的Rx引脚。将蓝牙模块的RX连接到Arduino的Tx引脚。

蓝牙控制的Arduino代码:

包括

伺服我的伺服;

常量int Pin=9; //myservo pin3 PWM

字符文本;

绳子裂开;

弦角;

int 位置=0; //存储舵机位置的变量

整数k1;

无效设置(){

串行.开始(9600);

pinMode(引脚,输出);

myservo.attach(Pin);

}

无效循环(){

if(串行.可用())

{

文本=Serial.read();

溢出=溢出+ 文本;

如果(文本=='*'){

Serial.println(Spilt);

溢出=Spilt.substring(0, Spilt.length() - 1); //删除最后一个字符*

k1=Spilt.indexOf('*');

角度=Spilt.substring(0, k1);

myservo.write(angle.toInt());

延迟(15);

溢出='';

}

}

}上传程序后,重新连接TX和RX,并确保手机已与相应的蓝牙模块配对。连接Android 手机的步骤如下:

打开蓝牙模块电源并转到Android 设备上的设置。

配对设备。在某些手机上,必须执行此步骤两次才能配对。确保您已准备好PIN 码(大多数蓝牙配对的默认值为“1234”) 打开两个设备的电源在Android 设置应用程序中的蓝牙图标下搜索模块。

将设备与手机配对后,打开BT Servo 应用程序。

使用列表连接并查找包含文本HC-05 的正确设备名称。

编辑:hfy

最新资讯

推荐资讯