0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 来源:与非网 作者:与非网 2021-02-01 14:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

了解如何在移动设备,Arduino UNO和HC-05蓝牙模块中使用Android应用程序控制伺服电机

硬件部件:

Arduino UNO × 1个

HC-05蓝牙模块 × 1个

SG90微型伺服电机 × 1个

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

MIT App Inventor 2

手动工具和制造机:

10个 跳线套件,5厘米长

面包板,170针

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

o4YBAGAXm_-ABigqAAEpRcD9tB8637.png

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

输出轴驱动伺服臂,并且还连接到电位器(电位计)。

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

根据错误,控制单元会校正电动机的实际位置,使其与目标位置相匹配。

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

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

o4YBAGAXnBCAcD6IAAIv_QqXR_g014.png

电路原理图:

o4YBAGAXnCuAeXNUAAEPsAEIKtE068.png

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

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

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

#include
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 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的正确设备名称。

pIYBAGAXnFWAbCYnAAHcsGdBAD4858.png



编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3985

    浏览量

    133048
  • 伺服电机
    +关注

    关注

    88

    文章

    2165

    浏览量

    60845
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195956
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    伺服电机控制方式简述

    伺服电机作为自动化控制系统的核心执行元件,其控制方式直接决定了设备的动态响应、定位精度和运行效率。随着工业4.0和智能制造的发展,伺服
    的头像 发表于 12-01 07:37 70次阅读
    <b class='flag-5'>伺服</b><b class='flag-5'>电机</b>的<b class='flag-5'>控制</b>方式简述

    派克Parker防爆伺服电机与普通伺服电机的区别

    Parker提供了多款不同的伺服电机,性能各有不同,针对特定易燃易爆场所使用的防爆伺服电机,与普通通用伺服
    的头像 发表于 11-20 13:36 117次阅读
    派克Parker防爆<b class='flag-5'>伺服</b><b class='flag-5'>电机</b>与普通<b class='flag-5'>伺服</b><b class='flag-5'>电机</b>的区别

    贸泽电子开售全新Arduino UNO Q单板计算机

    贸泽电子开售全新Arduino UNO Q单板计算机。Arduino UNO Q单板计算机(SBC)将高性能计算与实时控制结合,提供理想的创
    的头像 发表于 11-08 09:50 959次阅读

    伺服电机和步进电机的核心区别

    大家在运动控制的时候是用伺服电机的还是用步进电机做定位控制了?为什么有时候用伺服
    的头像 发表于 10-15 14:32 1370次阅读
    <b class='flag-5'>伺服</b><b class='flag-5'>电机</b>和步进<b class='flag-5'>电机</b>的核心区别

    Arduino Uno l两轮自平衡机器人 电机驱动无输出求解

    Arduino Uno l两轮自平衡机器人 电机驱动无输出求解
    发表于 10-15 06:36

    Arduino UNO Q 登陆 DigiKey,现已开放预订

    融合高性能微处理器与专用微控制器,Arduino UNO Q加强创新开发能力 美国, 明尼苏达, 锡夫里弗福尔斯市 - 2025 年 10 月 07 日 全球领先的电子元器件与自动化产品分销商
    的头像 发表于 10-13 14:55 272次阅读
    <b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b> Q 登陆 DigiKey,现已开放预订

    舵机与伺服电机的区别是什么?

    舵机与伺服电机都属于 可精确控制的驱动装置 ,但二者在定义范围、结构组成、控制方式和应用场景上存在显著差异,并非完全等同(舵机是伺服
    的头像 发表于 10-13 10:21 763次阅读

    高性能多协议蓝牙6.0无线模块

    PTR54L05S是一款基于NordicnRF54L05芯片打造的硬币大小、超低功耗的双核无线通信模块,专为物联网(IoT)和边缘计算应用设计。该模块集成了先进的无线协议支持与强大的处
    的头像 发表于 09-09 16:16 1910次阅读
    高性能多协议<b class='flag-5'>蓝牙</b>6.0无线<b class='flag-5'>模块</b>

    如何在 NuMaker-IoT-M467 板上使用 Arduino IDE 控制 Wi-Fi 模块

    在NuMaker开发板上,有一个ESP-12F Wi-Fi模块;但是,Arduino IDE 中的 NuMaker UNO 包不提供该模块的相关控制
    发表于 09-04 08:28

    如何用Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino Nano/UNO R3开发板重新烧录引导程序bootlaoder

    本文介绍了如何用能够Arduino IDE下载的Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino
    的头像 发表于 08-08 20:16 3059次阅读
    如何用<b class='flag-5'>Arduino</b> Nano/<b class='flag-5'>UNO</b> R3开发板给另一个<b class='flag-5'>Arduino</b> IDE不能下载的<b class='flag-5'>Arduino</b> Nano/<b class='flag-5'>UNO</b> R3开发板重新烧录引导程序bootlaoder

    ESP32用作经典蓝牙串口透传模块与手机进行串口通信

    本文介绍了如何把ESP32用作一个蓝牙串口透传设备使用,其功能和常用的HC-05/06串口蓝牙设备一样。并与手机蓝牙串口APP进行双向蓝牙
    的头像 发表于 06-20 17:45 2094次阅读
    ESP32用作经典<b class='flag-5'>蓝牙</b>串口透传<b class='flag-5'>模块</b>与手机进行串口通信

    HC05蓝牙原理图加PCB

    HC05蓝牙原理图加PCB
    发表于 06-04 16:31 17次下载

    CW32模块使用 HC05蓝牙模块

    HC-05 蓝牙串口通信模块,是基于 Bluetooth Specification V2.0 带 EDR 蓝牙协议的数传模块。无线工作频段
    的头像 发表于 01-23 12:57 952次阅读
    CW32<b class='flag-5'>模块</b>使用 <b class='flag-5'>HC05</b><b class='flag-5'>蓝牙</b><b class='flag-5'>模块</b>

    电机控制器与伺服系统的关系

    在自动化控制系统中,电机控制器和伺服系统是实现精确运动控制的关键组件。电机
    的头像 发表于 01-22 09:35 1470次阅读

    自己设计的Arduino UNO R3主控板原理图+PCB源文件(可直接打样)

    一年前做的Arduino UNO r3,开源精神,把自己这块板子奉献给大家,板子没有什么问题,可以直接打样制作,原理图文件都表明了型号。不用谢~ Arduino UNO R3主控板原理
    发表于 12-10 10:14