1 怎样用Arduino和操纵杆控制伺服电机-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

怎样用Arduino和操纵杆控制伺服电机

454398 来源:工程师吴畏 2019-08-01 14:24 次阅读

电路图

这个项目的硬件部分非常容易制作。首先,将操纵杆模块与Arduino连接。操纵杆模块和Arduino的连接如下:

将操纵杆模块上的VCC与Arduino上的5V引脚连接

将操纵杆模块上的GND引脚与Arduino上的GND连接

将操纵杆模块上的VER引脚与Arduino上的A0连接

将操纵杆模块上的HOR引脚与Arduino上的A1连接

然后,将伺服电机与Arduino连接。使用Arduino的伺服电机的连接如下:

将两个伺服电机上的黑线连接到Arduino上的GND

将两个伺服电机上的红线连接到Arduino上的5V引脚

将第一个电机上的黄色线连接到Arduino上的引脚8

将第二个电机上的黄色线连接到Arduino上的引脚9

它是如何工作的?

当操纵杆模块在水平或垂直方向上移动,它给出0到1023之间的值。因此我们可以在代码中应用一个条件,如果该值小于300或大于700,则伺服器将移动。

当操纵杆沿水平方向移动时,第一个伺服器将向右或向左移动,并在移动乐趣时移动在垂直方向上打勾,第二个伺服将向右或向左移动。

Arduino代码

#include

Servo servo1;

Servo servo2;

int x_key = A1;

int y_key = A0;

int x_pos;

int y_pos;

int servo1_pin = 8;

int servo2_pin = 9;

int initial_position = 90;

int initial_position1 = 90;

void setup ( ) {

Serial.begin (9600) ;

servo1.attach (servo1_pin ) ;

servo2.attach (servo2_pin ) ;

servo1.write (initial_position);

servo2.write (initial_position1);

pinMode (x_key, INPUT) ;

pinMode (y_key, INPUT) ;

}

void loop ( ) {

x_pos = analogRead (x_key) ;

y_pos = analogRead (y_key) ;

if (x_pos 《 300){

if (initial_position 《 10) { } else{ initial_position = initial_position - 20; servo1.write ( initial_position ) ; delay (100) ; } } if (x_pos 》 700){

if (initial_position 》 180)

{

}

else{

initial_position = initial_position + 20;

servo1.write ( initial_position ) ;

delay (100) ;

}

}

if (y_pos 《 300){

if (initial_position1 《 10) { } else{ initial_position1 = initial_position1 - 20; servo2.write ( initial_position1 ) ; delay (100) ; } } if (y_pos 》 700){

if (initial_position1 》 180)

{

}

else{

initial_position1 = initial_position1 + 20;

servo2.write ( initial_position1 ) ;

delay (100) ;

}

}

}

代码说明

首先,我们加入了伺服电机库,这将有助于我们简化代码。然后,我们初始化了两个变量,一个用于两个伺服电机中的每一个,这将有助于我们使用库函数。

#include

Servo servo1;

Servo servo2;

然后,我们将引脚初始化我们连接了操纵杆模块上的垂直和水平引脚以及伺服系统上的信号引脚。

int x_key = A1;

int y_key = A0;

int x_pos;

int y_pos;

int servo1_pin = 8;

int servo2_pin = 9;

int initial_position = 90;

int initial_position1 = 90;

然后我们告诉Arduino我们连接了伺服引脚并移动了伺服电机在初始位置,即90度。之后,我们将操纵杆模块上的垂直和水平引脚都声明为输入引脚。

servo1.attach (servo1_pin ) ;

servo2.attach (servo2_pin ) ;

servo1.write (initial_position);

servo2.write (initial_position1);

pinMode (x_key, INPUT) ;

pinMode (y_key, INPUT) ;

在循环函数中,我们从操纵杆模块中读取水平和垂直位置的值并将这些保存在变量中。然后我们应用了一个条件,如果水平位置的值小于300,那么第一个伺服将向右移动。

x_pos = analogRead (x_key) ;

y_pos = analogRead (y_key) ;

if (x_pos 《 300){

if (initial_position 《 10)

{

}

else{

initial_position = initial_position - 20;

servo1.write ( initial_position ) ;

delay (100) ;

}

}

如果水平位置的值大于700 ,然后伺服将向左移动。类似地,对于操纵杆模块的垂直位置,如果该值小于300,则第二伺服将向左移动,如果该值大于700,则第二伺服将向右移动。

if (x_pos 》 700){

if (initial_position 》 180)

{

}

else{

initial_position = initial_position + 20;

servo1.write ( initial_position ) ;

delay (100) ;

}

}

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

    关注

    85

    文章

    2043

    浏览量

    57809
  • Arduino
    +关注

    关注

    188

    文章

    6468

    浏览量

    186952
  • 操纵杆
    +关注

    关注

    0

    文章

    69

    浏览量

    8526
收藏 人收藏

    评论

    相关推荐

    TMAG5170操纵杆附件组装指南

    德赢Vwin官网 网站提供《TMAG5170操纵杆附件组装指南.pdf》资料免费下载
    发表于 11-28 14:28 0次下载
    TMAG5170<b class='flag-5'>操纵杆</b>附件组装指南

    伺服电机原理及控制应用

    伺服电机(Servo Motor)是一种高精度、高性能的电动机系统,广泛应用于需要精确控制位置、速度和加速度的场合。 一、伺服电机的工作原理
    的头像 发表于 10-22 16:58 470次阅读

    伺服电机有什么,伺服电机可以当普通电机

    一、伺服电机的作用与特点 伺服电机(Servo motor),作为伺服系统中的关键组件,扮演着控制
    的头像 发表于 10-22 16:16 377次阅读

    PLSY指令怎样控制伺服正反转

    PLSY指令(PLC中的脉冲输出指令)通常用于控制伺服电机的正反转和速度。 1. 伺服电机概述 伺服
    的头像 发表于 08-19 14:51 1563次阅读

    伺服电机也是脉冲控制吗为什么

    伺服电机是一种高精度、高响应速度的电机,广泛应用于工业自动化、机器人、航空航天等领域。伺服电机控制
    的头像 发表于 07-14 10:37 871次阅读

    伺服驱动器对伺服电机控制要求

    伺服驱动器对伺服电机控制要求是一个复杂而深入的话题。以下是关于伺服驱动器对伺服
    的头像 发表于 06-14 15:24 775次阅读

    plc控制伺服电机的指令有哪些

    PLC(可编程逻辑控制器)是一种广泛应用于工业自动化领域的控制设备。伺服电机作为执行元件,可以通过PLC进行精确控制。以下是关于PLC
    的头像 发表于 06-12 11:39 2289次阅读

    伺服电机可以当普通电机

    伺服电机和普通电机在很多方面都有所不同,因此不能简单地将伺服电机当作普通电机使用。
    的头像 发表于 06-12 10:05 1461次阅读

    如何用stm32f103zet6控制伺服电机的加减速运动?

    想用stm32f103zet6控制伺服电机的加减速运动,不知该怎么做,请大神指教。具体情况是有个机械凸轮,有一根顶顶着凸轮边沿,随着凸轮转动及其外径的变化,水平顶
    发表于 04-30 08:00

    从虚拟操纵到现实驾驶 迈来芯磁力计技术引领无限可能

    磁强力计与三轴技术的完美结合,在游戏控制台的操纵杆领域已大放异彩。
    的头像 发表于 03-22 13:58 445次阅读

    arduino控制步进电机代码

    Arduino是一种开放源代码的电路板平台,它可以用于控制各种不同的电子设备,包括步进电机。步进电机是一种电动机,可以通过下达特定的指令来控制
    的头像 发表于 02-14 16:29 2010次阅读

    如何使用Arduino UNO板和电位器控制伺服电机

    在本Arduino伺服电机教程中,您将学习如何使用Arduino UNO板和电位器控制伺服
    的头像 发表于 02-11 10:11 2783次阅读
    如何使用<b class='flag-5'>Arduino</b> UNO板和电位器<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>电机</b>

    伺服电机最简单控制方法

    伺服电机是一种特殊的电机,可以根据控制信号准确地控制角度、速度和位置。伺服
    的头像 发表于 01-14 14:40 1933次阅读

    伺服电机的三种控制方式 如何确定选择伺服电机控制方式?

    伺服电机的三种控制方式 如何确定选择伺服电机控制方式? 伺服
    的头像 发表于 12-26 14:02 1599次阅读

    怎样验证防爆伺服电机是否过冲呢?

    怎样验证防爆伺服电机是否过冲呢? 验证防爆伺服电机是否过冲是非常重要的,因为过冲可能导致设备损坏、事故发生,甚至危及人员的生命安全。下面将详
    的头像 发表于 12-25 11:47 799次阅读