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

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

3天内不再提示

初学者适用!基于Arduino开发板控制SG90伺服电机方案

454398 来源:一板网 作者:风筝 2020-10-20 14:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文非常适合初学者,因为它很容易上手,并且为他们建立有趣的项目(例如通常使用伺服器的机器人)奠定了基础。伺服电机(Servo Motor)是高转矩电机,由于其在机器人和其他一些应用中的通用性,轻松控制其旋转。伺服电机也称为舵机,它带有齿轮输出轴,该齿轮输出轴可以通过电气控制,每次旋转一度。为了控制起见,与普通的直流电动机不同,伺服电机通常在两个电源引脚(VCC和GND)的旁边有一个引脚,即信号引脚。信号引脚用于控制伺服电机,将其轴旋转至任何所需角度。

在本篇文章中,我们将使用非常流行的SG90伺服电机,我们的目标是将伺服电机从一个角度旋转到另一个角度。伺服电机的电流要求很高,因此当在Arduino上使用多个伺服电机时,需要将其电源连接到外部电源,因为Arduino可能无法提供伺服电机所需的电流,这一点很重要。由于在本文中我们将仅使用一个伺服电机,因此可以通过Arduino为它供电。

所需的组件

● SG90伺服电机

● Arduino Uno开发板

● 连接导线

● 面包板

原理图

该项目的原理图非常简单,因为我们只需将伺服电机连接到Arduino,伺服电机通常具有三个引脚,其中包括VCC、GND和Signal引脚。Signal引脚是用于将控制信号从微控制器馈送到伺服电机,以使伺服电机旋转到特定角度。如下图所示,将伺服器连接至Arduino。

Signal引脚连接到Arduino的数字引脚8,因为它是PWM引脚。伺服方向以PWM脉冲方式从微控制器发送到伺服电机。完成所有连接后,我们现在就可以编写项目代码了。

代码

本篇文章的代码非常容易,这要归功于Arduino团队开发的非常全面而简洁的Serve.h库,该库便于在Arduino项目中使用伺服电机。该库使使用单个命令轻松地将伺服电机旋转到不同的角度。

该库是预先安装在Arduino IDE中的,无需我们下载和安装。首先,我们在代码中包含将要使用的库(在本例中为Serve.h库)。

#include

接下来,我们创建该库的一个对象,以在整个代码中用作控制伺服电机的参考。

Servo servo;

完成此操作后,我们开始void setup()函数。首先,将创建的伺服对象附加到微控制器的引脚D8,然后将伺服电机旋转至零度。

void setup() {

servo.attach(8);

servo.write(angle);

}

完成此操作后,我们就可以按照所需的任何方向移动伺服电机了,我们将在void loop()函数中执行此操作。通过使用Servo.h库,要将伺服电机旋转到所需的角度,我们要做的只是将所需角度作为参数传递给Servo.write()函数。为了证明这一点,使用了一个for循环将伺服电机沿一个方向旋转几个角度,并使用另一个循环将伺服器旋转回其起点。

void loop()

{

// scan from 0 to 180 degrees

for(angle = 10; angle < 180; angle++)  

{

servo.write(angle);

delay(15);

}

// now scan back from 180 to 0 degrees

for(angle = 180; angle > 10; angle--)

{

servo.write(angle);

delay(15);

}

}

以下是本文的完整代码:

#include

Servo servo;

int angle = 10;

void setup() {

servo.attach(8);

servo.write(angle);

}

void loop()

{

// scan from 0 to 180 degrees

for(angle = 10; angle < 180; angle++)  

{

servo.write(angle);

delay(15);

}

// now scan back from 180 to 0 degrees

for(angle = 180; angle > 10; angle--)

{

servo.write(angle);

delay(15);

}

}

效果演示

复制上面的代码,然后上传到Arduino开发板,对伺服电机进行设置,一段时间后,您应该看到伺服电机开始转动。

以上就是本文的所有内容,上面的代码可以通过多种方式扩展,以用于涉及伺服电机的不同项目中,您将使用伺服电机制造出什么很棒的东西?

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

    关注

    88

    文章

    2200

    浏览量

    61559
  • 开发板
    +关注

    关注

    26

    文章

    6419

    浏览量

    120816
  • Arduino
    +关注

    关注

    190

    文章

    6527

    浏览量

    197455
  • SG90
    +关注

    关注

    0

    文章

    10

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一块开发板搞定步进、伺服、直流三种电机?TMC9660-STP三合一驱动方案

    一块开发板搞定步进伺服直流三种电机TMC9660-STP三合一驱动方案当你手边同时有步进电机、无刷电机
    的头像 发表于 04-20 15:02 78次阅读
    一块<b class='flag-5'>开发板</b>搞定步进、<b class='flag-5'>伺服</b>、直流三种<b class='flag-5'>电机</b>?TMC9660-STP三合一驱动<b class='flag-5'>方案</b>!

    【ESP32-C2系列】WT99C262-SG开发板上手指南

    本指南将帮助你快速上手WT99C262-SG系列开发板,并提供该开发板的详细信息。WT99C262-SG系列开发板是深圳市启明云端有限公司推
    的头像 发表于 02-25 18:25 455次阅读
    【ESP32-C2系列】WT99C262-<b class='flag-5'>SG</b><b class='flag-5'>开发板</b>上手指南

    MCU 开发板大比拼:STM32、ESP32、Arduino、树莓派谁更强?

    嵌入式开发板琳琅满目,STM32、ESP32、Arduino、RaspberryPi各有特色。新手容易纠结:到底哪块适合我的项目?本文整理了一份开发板对比速查表,帮你快速理清思路。一
    的头像 发表于 01-09 19:03 1392次阅读
    MCU <b class='flag-5'>开发板</b>大比拼:STM32、ESP32、<b class='flag-5'>Arduino</b>、树莓派谁更强?

    DR1M90 开源 IgH EtherCAT 主站案例:伺服电机正反转实时控制方案

    本文为创龙科技DR1M90 评估的 IgH EtherCAT 主站应用案例,基于 Linux-RT 内核与开源协议栈,实现伺服电机正反转实时控制
    的头像 发表于 01-04 15:40 3072次阅读
    DR1M<b class='flag-5'>90</b> 开源 IgH EtherCAT 主站案例:<b class='flag-5'>伺服</b><b class='flag-5'>电机</b>正反转实时<b class='flag-5'>控制</b><b class='flag-5'>方案</b>

    SG90舵机控制秘籍:参数、电源与信号的三大要点,为您综合分析了SG90舵机的控制参数注意事项

    SG90舵机控制秘籍:参数、电源与信号的三大要点SG90舵机的正确控制主要围绕三个核心要素:PWM信号的周期与占空比、电源供电以及机械限制。一、 脉冲宽度调制(PWM)信号参数
    发表于 12-13 20:38

    FPGA初学者求助

    Vivado2025.1配置MIG时出现报错 大家好,我是一名研一的学生,同时也是一名FPGA初学者,最近在使用vivado2025.1配置MIG的时候遇到了问题,具体问题如下: 我这个mig的配置
    发表于 12-07 11:43

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

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

    PIC32CK SG01/GC01 Curiosity Ultra开发板技术解析与应用指南

    Microchip Technology PIC32CK SG Curiosity Ultra开发板 (EV33A17A) 是一款硬件平台,设计用于加速PIC32CK SG控制器设计
    的头像 发表于 10-09 14:57 1036次阅读
    PIC32CK <b class='flag-5'>SG</b>01/GC01 Curiosity Ultra<b class='flag-5'>开发板</b>技术解析与应用指南

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

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

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

    CW32L011电机驱动控制开发板-软件分析 衔接上一个硬件
    的头像 发表于 08-13 10:44 1194次阅读
    CW32L011<b class='flag-5'>电机</b>驱动<b class='flag-5'>控制</b><b class='flag-5'>开发板</b>-软件

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

    CW32L011电机驱动电机控制开发板-硬件介绍 后面有软件分析
    的头像 发表于 08-12 14:20 4488次阅读
    CW32L011<b class='flag-5'>电机</b>驱动<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不能下载的Arduino
    的头像 发表于 08-08 20:16 3959次阅读
    如何用<b class='flag-5'>Arduino</b> Nano/UNO R3<b class='flag-5'>开发板</b>给另一个<b class='flag-5'>Arduino</b> IDE不能下载的<b class='flag-5'>Arduino</b> Nano/UNO R3<b class='flag-5'>开发板</b>重新烧录引导程序bootlaoder

    避雷!树莓派初学者常犯的5个错误!

    如果你刚刚入手树莓派,你就会知道它潜力无穷,几乎能实现你想到的任何功能。然而,这种自由也让你可能在不知不觉中做出对系统有害的操作。在本文中,我将介绍要避免犯哪些错误。初学者最常犯的错误包括:损坏SD
    的头像 发表于 07-22 17:16 1568次阅读
    避雷!树莓派<b class='flag-5'>初学者</b>常犯的5个错误!

    【嘉楠堪智K230开发板试用体验】01 Studio K230开发板Test1——舵机控制

    如下图: 信号线图示 这次舵机选用了基础学习时stm32套件里面的小蓝舵机SG90电流小,避免电流大反向电动势击穿开发板 根据教程中介绍,你需要每隔大约20毫秒(就像打拍子一样,每拍20毫秒)就给它发
    发表于 07-10 09:07

    有ARM,NPU,FPGA三种核心的开发板 — 米尔安路飞龙派开发板

    最近我发现一个有趣的开发板。这个开发板集合了ARM核心,NPU核心甚至还有FPGA核心。它就是米尔新出的YM90X开发板。它基于安路科技所打造的芯片上海安路信息科技于2021年在上交所
    的头像 发表于 06-13 08:03 1987次阅读
    有ARM,NPU,FPGA三种核心的<b class='flag-5'>开发板</b> — 米尔安路飞龙派<b class='flag-5'>开发板</b>