本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页
最热资讯


亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」
了解如何在移动设备,Arduino UNO和HC-05蓝牙模块中使用Android应用程序控制伺服电机。
硬件部件:
软件应用程序和在线服务:
手动工具和制造机:
伺服电机是一种闭环系统,它使用位置反馈来控制其运动和最终位置。
RC伺服电机在相同的原理上工作。它包含一个小型直流电动机,通过齿轮连接到输出轴。
输出轴驱动伺服臂,并且还连接到电位器(电位计)。
电位计向伺服控制单元提供位置反馈,在此将电机的当前位置与目标位置进行比较。
根据错误,控制单元会校正电动机的实际位置,使其与目标位置相匹配。
通过通过信号线发送一系列脉冲来控制伺服电机。控制信号的频率应为50Hz或每20ms产生一个脉冲。脉冲的宽度决定了伺服器的角度位置,这些类型的伺服器通常可以旋转180度
控制线用于传达角度。该角度由施加到控制线的脉冲的持续时间确定。这称为脉冲编码调制。伺服器希望每20毫秒(.02秒)看到一个脉冲。脉冲的长度将决定电机旋转多远。例如,一个1.5毫秒的脉冲将使电动机转到90度位置(通常称为空挡位置)。如果脉冲短于1.5毫秒,则电动机会将轴旋转到接近0度的位置。如果脉冲长于1.5毫秒,则轴将更接近180度。
电路原理图:
首先,使用Arduino连接伺服电机。
首先,在没有蓝牙的情况下使用以下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手机的步骤如下:
一文理透舵机(伺服电机),加快电子设计
2019-08-21
高性能电机伺服驱动器:如何使用sinc滤波器对隔离式编码数据解调?
2019-12-26
基于 TI CC2541F256 的蓝牙智能 EMS 按摩器方案
2020-05-25
基于CSR8670 蓝牙4.0的智慧眼镜解决方案
2020-06-16
8大蓝牙电路应用热门方案,快速简单实现近距离无线连接
2020-08-12
[教程]Arduino如何控制伺服电机
2019-07-29
新的ESP32-S2初次评测,是否打破常规,值得期待。
2020-06-16
【基础课】伺服电机是如何实现精确控制的?
2019-06-28
【基础教程】使用Arduino+伺服电机制作激光炮塔
2019-07-07
带有磁场定向控制的步进电机,基于IoT的以太网伺服驱动器电路设计
2020-03-04
讨论