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

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

3天内不再提示

基于Arduino UNO开发板无线连接伺服电机方案设计

电子设计 来源:一板网 作者:风筝 2021-01-09 11:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

机器人中使用伺服电机进行精确控制很常见。在本文中,我们将向您展示如何使用Arduino UNO开发板无线连接一个伺服电机,并且通过蓝牙连接一台Android设备。我们已经介绍过如何使用Arduino开发板控制伺服电机,这次我们使用无线蓝牙模块HC-06控制伺服电机。

所需的材料

● Arduino UNO开发板

● HC-05或HC-06蓝牙模块

● 伺服电机

● Playstore的Roboremo App

● 面包板

● 连接导线

HC-06蓝牙模块

蓝牙可以运行在以下两种模式:

1. AT指令设置模式

2. 工作模式

在AT指令设置模式下,我们可以配置蓝牙属性,如蓝牙信号的名称、密码、运行波特率等。工作模式是我们可以在PIC单片机和蓝牙模块之间发送和接收数据的一种模式。因此,在本教程中,我们将仅使用工作模式进行测试。AT指令设置模式保留为默认设置。设备名称将是HC-05,密码将为0000或1234,最重要的是所有蓝牙模块的默认波特率为9600。

o4YBAF_5JoqAC0Y4AAMvEkLG6Tk257.png

该模块工作在5V电源,信号引脚工作在3.3V,所以模块内部安装有一个3.3V稳压器。因此我们不必担心。在六个引脚中工作模式只使用了四个引脚。引脚连接表如下所示

序号 HC-05模块的引脚 MCU的引脚 PIC的引脚
1 Vcc Vdd 第31脚
2 Gnd Gnd 第32脚
3 Tx RC6 / Tx / CK 第25脚
4 Rx RC7 / Rx / DT 第26脚
5 State NC NC
6 EN(Enable) NC NC

电路原理

使用Arduino开发板蓝牙控制伺服电机的电路图:

o4YBAF_5Jp2AXX0IAAEqmNvJXuQ298.png

配置Roboremo App以控制伺服电机

第1步: 从Android Play商店下载Roboremo应用程序并将其安装到您的智能手机中。安装完成后,您将看到如下图左侧所示的应用程序窗口,然后点击“Menu”按钮,您将看到如下图右侧所示的窗口:

o4YBAF_5Jq2AGBVOAACrkOT3WIM103.png

第2步: 然后点击“connect”按钮,你会看到如下图3所示的窗口,然后你需要选择'Bluetooth RFCOMM',然后你就可以将HC-06蓝牙模块连接到Android应用'Roboremo'。

o4YBAF_5JsOAPtZKAABqqsy9Xzg845.png

第3步: 连接HC-06蓝牙模块后,返回到第2步右侧的窗口,然后点击'edit ui'按照您的需要创建用户界面。

当点击''edit ui"时,您将再次看到图1所示的窗口,然后在屏幕上的任意位置点击屏幕,您将看到如下图所示的应用程序窗口,并选择“Button”以获得一个按钮模板。

pIYBAF_5Js-AYmn_AABNFiJZrCQ555.png

第4步: 选择按钮模板后,您将在屏幕上获得一个按钮进行编辑。您可以调整大小并将结构移动到屏幕的任何位置。现在,为了设置通过蓝牙点击发送的值,需要设置“set press action”,并键入您想要从该特定按钮发送的值。就像我们通过按下Roboremo android应用程序中的'Start'按钮发送'1'来旋转伺服。

o4YBAF_5Jt2ASkdkAADLsJBIjyM590.png

第5步: 最终我们设计了一个用户界面来使用智能手机来控制伺服电机。

o4YBAF_5JuuAJ0J4AABr58LfvlU472.png

代码和说明

本文末尾给出了使用蓝牙控制伺服电机的完整Arduino代码。

Arduino自带有伺服电机库,它处理所有PWM相关的事情来旋转伺服,你只需要输入你想旋转的角度,然后使用函数servo1.write(angle)即可;该函数将使伺服电机旋转到所需的角度。

因此,我们首先定义伺服电机库和软件串行库用于定义Rx和Tx引脚。

#include

#include

在下面的代码中,我们正在初始化Arduino的Rx和Tx引脚,为伺服电机和其他事情定义变量。

Servo myServo;

int TxD = 11;

int RxD = 10;

int servoposition;

int servopos;

int new1;

SoftwareSerial bluetooth(TxD, RxD);

现在,将所有变量和组件设置为初始阶段。在这里,我们使用Arduino开发板的第9脚连接了伺服电机,并将伺服电机的初始位置设置为0度。串行和蓝牙通信的波特率也设置为9600。

void setup() {

int pos=0;

myServo.attach(9);

myServo.write(0);

Serial.begin(9600); // start serial communication at 9600bps

bluetooth.begin(9600);

}

在void loop()函数中,Arduino将始终检查输入值,并根据智能手机接收到的值旋转伺服器。所有的值将通过串行通信接收。

如果该值为0,伺服将旋转到0度。同样,如果我们从蓝牙应用程序发送45、90、135和180,则伺服器将分别旋转到45、90、135和180度角。

void loop() {

if (bluetooth.available()){

String value = bluetooth.readString();

servoposition = value.toInt();

if (value.toInt() == 0){

Serial.println(servoposition);

myServo.write(0);

}

if (value.toInt() == 45){

Serial.println(servoposition);

myServo.write(45);

}

if (value.toInt() == 90){

Serial.println(servoposition);

myServo.write(90);

}

if (value.toInt() == 135){

Serial.println(servoposition);

myServo.write(135);

}

if (value.toInt() == 180){

Serial.println(servoposition);

myServo.write(180);

}

如果我们通过按下开始按钮发送值'1',伺服将一直旋转,直到按下停止按钮。在这里我们按下停止按钮时发送'2',Arduino开发板读取后,它将跳出while循环,伺服电机停止旋转。

while(value.toInt()==1){

if (bluetooth.available())

{

value = bluetooth.readString();

Serial.println(value);

if (value.toInt()==2)

{Serial.println("YYY");break; }

}

servopos++;

delay(30);

Serial.println(servopos);

myServo.write(servopos);

if (servopos ==180 )

{servopos=0;break;}

}

}

}

使用蓝牙的伺服电机控制的工作过程

pIYBAF_5JvuAM8k7AAWJgoI8eVM718.png

在这个项目中,我们使用Android应用程序“Roboremo”来控制伺服电机。在这个应用程序的界面中,我们创建了5个按钮来控制伺服电机,如前所述。每个按钮的功能在下表中给出:

序号 按钮名称 发送值 描述
1 Start 1 该按钮用于开始将伺服从0°旋转到180°。
2 Stop 2 该按钮用于在任何时候停止伺服。
3 0⁰ 0 该按钮用于将伺服旋转至0°。
4 90⁰ 90 该按钮用于将伺服旋转至90°。
5 180⁰ 180 该按钮用于将伺服旋转至180°。

因此,通过在Android应用程序Roboremo上按下这些按钮,数据将通过智能手机的蓝牙发送到HC-06蓝牙模块。Arduino接收来自该HC-06模块的数据,然后根据代码中按钮表示的角度旋转伺服电机。我们也可以编写角度45和135的代码,但由于Roboremo应用程序的限制,只能创建5个按钮,所以我们跳过了这两个按钮。

通过使用这种方式,我们可以使用蓝牙将数据从智能手机发送到Arduino开发板,然后以无线方式控制伺服器。这可以用于许多应用程序,如玩具车、机器人等。
编辑:hfy

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

    关注

    88

    文章

    2165

    浏览量

    60844
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195945
  • 伺服电机控制

    关注

    0

    文章

    17

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    这块乐鑫科技ESP32-C3开发板太懂开发者了!双无线+全接口,不要太实用

    做智能家居项目时,开发板接口不够用?调试工业传感器时,无线连接总是不稳定?想快速验证创意,却被复杂的烧录流程耽误半天时间?不要慌!真正懂开发者的物联网开发板来了!WT9901C3-SN
    的头像 发表于 12-01 18:02 258次阅读
    这块乐鑫科技ESP32-C3<b class='flag-5'>开发板</b>太懂<b class='flag-5'>开发</b>者了!双<b class='flag-5'>无线</b>+全接口,不要太实用

    STM32 Nucleo-64开发板技术解析与应用指南

    ARDUINO^®^ Uno V3连接和ST morpho接头,可轻松扩展STM32 Nucleo开放式开发平台的功能。该设有板载ST-L
    的头像 发表于 10-22 14:26 404次阅读
    STM32 Nucleo-64<b class='flag-5'>开发板</b>技术解析与应用指南

    STM32WB07CC开发板技术解析与应用指南

    STMicroelectronics NUCLEO-WB07CC STM32 Nucleo-64射频开发板采用基于Arm® Cortex®M0+内核的STM32WB07CC微控制器
    的头像 发表于 10-17 17:11 731次阅读
    STM32WB07CC<b class='flag-5'>开发板</b>技术解析与应用指南

    STM32 Nucleo-144开发板技术解析与应用指南

    。 STMicroelectronics开发板支持多种连接选项,包括Arduino、ST Zio和Morpho,同时集成了开关模式电源(SMPS),可实现高效的电源管理。该非常适合
    的头像 发表于 10-17 14:40 525次阅读
    STM32 Nucleo-144<b class='flag-5'>开发板</b>技术解析与应用指南

    ‌STM32 Nucleo-64开发板技术解析与应用指南

    STMicroelectronics -C051C8 STM32 Nucleo-64开发板通过由STM32微控制器为概念测试和原型创建提供了一种经济实惠且灵活的途径。该开发板支持ARDUINO
    的头像 发表于 10-16 10:50 404次阅读
    ‌STM32 Nucleo-64<b class='flag-5'>开发板</b>技术解析与应用指南

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

    DigiKey 日前宣布,最新发布的 Arduino® UNO Q 现已可通过 DigiKey 官网进行预订。这款前沿新一代开发板集成了高性能微处理器、图形加速功能以及专用微控制器,助力产品
    的头像 发表于 10-13 14:55 272次阅读
    <b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b> Q 登陆 DigiKey,现已开放预订

    高通宣布收购 Arduino,加速普及前沿边缘计算与 AI 技术

    “  全新 Arduino UNO Q 开发板Arduino App Lab 将为数百万开发者带来高通 Dragonwing 处理器的强
    的头像 发表于 10-08 11:15 345次阅读
    高通宣布收购 <b class='flag-5'>Arduino</b>,加速普及前沿边缘计算与 AI 技术

    ‌PIC32CZ CA70 Curiosity Ultra开发板用户指南总结

    微控制器 (MCU)。该开发板集成编程器或调试器,无需额外硬件。PIC32CZ CA70开发板配备Arduino Uno R3兼容接口和Xplained Pro扩展兼容接口。此
    的头像 发表于 09-28 14:43 437次阅读
    ‌PIC32CZ CA70 Curiosity Ultra<b class='flag-5'>开发板</b>用户指南总结

    CW32L011电机驱动开发板——驱动无刷电机

    CW32L011电机驱动开发板
    的头像 发表于 08-22 10:02 755次阅读
    CW32L011<b class='flag-5'>电机</b>驱动<b class='flag-5'>开发板</b>——驱动无刷<b class='flag-5'>电机</b>

    CW32L011电机驱动电机控制开发板-硬件1

    CW32L011电机驱动电机控制开发板-硬件介绍 后面有软件分析
    的头像 发表于 08-12 14:20 3601次阅读
    CW32L011<b class='flag-5'>电机</b>驱动<b class='flag-5'>电机</b>控制<b class='flag-5'>开发板</b>-硬件1

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

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

    【新品】远距离图传数传模块开发板、蓝牙模块开发板无线模块开发板

    新品上市图传数传模块开发板蓝牙模块开发板国产无线模块开发板部分型号参与送样文末了解详情↓↓↓EWT611-900NW20S远距离图传数传模块开发板
    的头像 发表于 06-12 19:33 893次阅读
    【新品】远距离图传数传模块<b class='flag-5'>开发板</b>、蓝牙模块<b class='flag-5'>开发板</b>、<b class='flag-5'>无线</b>模块<b class='flag-5'>开发板</b>

    雷卯收集4G/WIFI无线传输产品开发板

    收集目的:方便客户选用4G/WIFI无线传输产品开发板,并且能够让开发板稳定工作。雷卯EMC小哥围绕4G/WIFI无线传输产品开发板的各种接
    的头像 发表于 04-08 18:21 395次阅读
    雷卯收集4G/WIFI<b class='flag-5'>无线</b>传输产品<b class='flag-5'>开发板</b>

    通过Arduino Nano Matter开发板构建智能卷帘系统

    在本指南中,您将学习如何通过Arduino NanoMatter开发板上的Silicon Labs(芯科科技)MGM240S多协议无线模块来构建一个智能卷帘系统。该系统可通过 Am
    的头像 发表于 02-28 09:46 913次阅读
    通过<b class='flag-5'>Arduino</b> Nano Matter<b class='flag-5'>开发板</b>构建智能卷帘系统

    Arduino Nano Matter开发板正式上市

    Silicon Labs(芯科科技)和Arduino在近日共同宣布Arduino Nano Matter开发板现已正式上市。这是延续今年3 月芯科科技和Arduino释出
    的头像 发表于 12-10 13:50 1429次阅读