基于Arduino UNO和HC-05蓝牙模块控制伺服电机

了解如何在移动设备,arduino uno和hc-05蓝牙模块中使用android应用程序控制伺服电机。
硬件部件:
arduino uno × 1个
hc-05蓝牙模块 × 1个
sg90微型伺服电机 × 1个
软件应用程序和在线服务:
mit app inventor 2
手动工具和制造机:
10个 跳线套件,5厘米长
面包板,170针
伺服电机是一种闭环系统,它使用位置反馈来控制其运动和最终位置。
rc伺服电机在相同的原理上工作。它包含一个小型直流电动机,通过齿轮连接到输出轴。
输出轴驱动伺服臂,并且还连接到电位器(电位计)。
电位计向伺服控制单元提供位置反馈,在此将电机的当前位置与目标位置进行比较。
根据错误,控制单元会校正电动机的实际位置,使其与目标位置相匹配。
通过通过信号线发送一系列脉冲来控制伺服电机。控制信号的频率应为50hz或每20ms产生一个脉冲。脉冲的宽度决定了伺服器的角度位置,这些类型的伺服器通常可以旋转180度
控制线用于传达角度。该角度由施加到控制线的脉冲的持续时间确定。这称为脉冲编码调制。伺服器希望每20毫秒(.02秒)看到一个脉冲。脉冲的长度将决定电机旋转多远。例如,一个1.5毫秒的脉冲将使电动机转到90度位置(通常称为空挡位置)。如果脉冲短于1.5毫秒,则电动机会将轴旋转到接近0度的位置。如果脉冲长于1.5毫秒,则轴将更接近180度。
电路原理图:
首先,使用arduino连接伺服电机。
将两个伺服电机的黑线连接到arduino的gnd将两个电机的橙色线连接到arduino的5v将第一个电机的橙色线连接到arduino的引脚9
首先,在没有蓝牙的情况下使用以下arduino代码测试servo电机扫描功能:
#include 《servo.h》
servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
for (pos = 0; pos 《= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable ‘pos’
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos 》= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable ‘pos’
delay(15); // waits 15ms for the servo to reach the position
}
}
输出结果:
之后,与arduino建立蓝牙模块的连接。
将蓝牙模块的vcc连接至arduino的5v将蓝牙模块的gnd连接至arduino的gnd将蓝牙模块的tx连接至arduino的rx引脚将蓝牙模块的rx连接至arduino的tx引脚
用于蓝牙控制的arduino代码:
#include 《servo.h》
servo myservo;
const int pin = 9; // myservo pin3 pwm
char text;
string spilt;
string angle;
int pos = 0; // variable to store the servo position
int k1;
void setup() {
serial.begin(9600);
pinmode (pin, output);
myservo.attach(pin);
}
void loop() {
if(serial.available())
{
text = serial.read();
spilt = spilt + text;
if (text == ‘*’) {
serial.println(spilt);
spilt = spilt.substring(0, spilt.length() - 1); // delete last char *
k1 = spilt.indexof(‘*’);
angle = spilt.substring(0, k1);
myservo.write(angle.toint());
delay(15);
spilt = “”;
}
}
}上载程序后,重新连接tx和rx,并确保手机已与相应的bluetooth模块配对。连接到android手机的步骤如下:
打开蓝牙模块的电源,然后转到android设备上的设置。
配对设备。在某些电话上,此步骤必须执行两次才能配对。确保准备好pin码(大多数bluetooth mate的默认设置为“ 1234”)》开启两个设备的电源》在android“设置”应用程序的bluetooth图标下搜索模块。
将设备与手机配对后,打开bt servo应用程序。
使用列表连接到并找到包含文本hc-05的正确设备名称。


OLED大放异彩,背光市场雄风不再
基于EP2C35 FPGA和扩频编码技术实现井下通信系统的应用方案
锁定/标记LOTO的具体步骤是怎样的
SoC为系统架构师和软件开发人员提供了平台
英伟达市值一夜蒸发3700亿元
基于Arduino UNO和HC-05蓝牙模块控制伺服电机
强过AirPods 出门问问TicPods Free Pro上市发售 价格599元
澳大利亚发明智能纸尿布 可进行电子感应
PD18轮毂电机产业化制造工序及难点
美国计划提供总价值250亿美元 招揽海内外芯片企业赴美生产
RFID标签在零售业的五大考虑因素
e络盟供应Analog Devices EVAL-ADICUP360评估板 助力高精度模拟应用开发
基于深度学习的自然语言处理系统和应用程序的一些最新趋势
LG Uplus通过将5G网络首次在全球商业化并提供创新服务
新型电脑防盗系统设计方案
Gosund欧规智能排插上市,电器管理更加便捷
这家号称安防监控镜头出货最大的生产商要在创业板上市了
关于机器视觉与芯片之间的联系和分析
高通和中兴通讯利用5G网络实现了语音通话
区块链加密算法RSA加密的原理解析