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开发板,对伺服电机进行设置,一段时间后,您应该看到伺服电机开始转动。

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

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

    关注

    85

    文章

    2057

    浏览量

    58075
  • 开发板
    +关注

    关注

    25

    文章

    5120

    浏览量

    97950
  • Arduino
    +关注

    关注

    188

    文章

    6477

    浏览量

    187564
  • SG90
    +关注

    关注

    0

    文章

    9

    浏览量

    11519
收藏 人收藏

    评论

    相关推荐

    dsPIC33EDV64MC205电机控制开发板用户指南

    电子发烧友网站提供《dsPIC33EDV64MC205电机控制开发板用户指南.pdf》资料免费下载
    发表于 01-21 14:34 0次下载
    dsPIC33EDV64MC205<b class='flag-5'>电机</b><b class='flag-5'>控制</b><b class='flag-5'>开发板</b>用户指南

    EE-269:以太网802.3初学者指南

    电子发烧友网站提供《EE-269:以太网802.3初学者指南.pdf》资料免费下载
    发表于 01-05 09:48 0次下载
    EE-269:以太网802.3<b class='flag-5'>初学者</b>指南

    Arduino Nano Matter开发板正式上市

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

    XD08M3232红外感应单片机开发板适合初学者吗?

    XD08M3232是一款国产8位高性能Flash的接近感应单片机,具有较大的内存、恒流驱动电路、内置运算放大器和模拟比较器等特点。对于初学者来说,选择合适的开发板是非常重要的,因为它将直接影响
    发表于 12-07 14:55

    正点原子fpga开发板不同型号

    ZYNQ-7000系列 ZYNQ-7000系列是正点原子的入门级FPGA开发板,适合初学者和教育用途。这些开发板搭载了Xilinx的Zynq-7000系列SoC芯片,集成了ARM Cortex-A9
    的头像 发表于 11-13 09:30 1123次阅读

    安信可Ai-WB2+舵机控制(SG90)

    以下作品由安信可社区用户 WangChong 制作 01、SG90舵机介绍 首先介绍说一下什么是舵机。舵机是一种位置(角度)伺服的驱动器。适用于一些需要角度不断变化的,可以保持的控制
    的头像 发表于 11-06 16:10 624次阅读
    安信可Ai-WB2+舵机<b class='flag-5'>控制</b>(<b class='flag-5'>SG90</b>)

    比较不同品牌ARM开发板优缺点

    ,提供了大量的教程和资源,适合初学者快速上手。 价格亲民: 树莓派的价格相对较低,适合预算有限的个人开发者和教育项目。 易于编程: 支持多种操作系统,包括官方的Raspberry Pi OS,以及Ubuntu等Linux发行版。 缺点: 性能限制: 与高端ARM
    的头像 发表于 11-05 11:37 652次阅读

    种草一块国产FPGA开发板,不用烧录器,一根TypeC线即插即用,盘古PGX-MINI 4K开发板

    分享一块国产入门级FPGA开发板,不用烧录器,盘古PGX-MINI 4K开发板,一根TypeC线即插即用,一键式便携操作,非常适用初学者!!!而且配套的资料和实验例程很丰富,对于想尝
    发表于 08-01 10:27

    适合初学者的嵌入式项目有哪些?

    : 1.LED灯控制 详细描述:在这个项目中,你可以使用Arduino或树莓派等开发板连接一组LED灯,并通过编程控制它们的亮度、颜色和闪烁模式。你需要了解基本的电路连接方法,
    发表于 07-11 10:23

    esp32想用自带的LEDPWD来驱动sg90发现没有反应,为什么?

    开发环境:arduino 想用自带的LEDPWD来驱动sg90 发现没有反应Code: [Select all] [Expand/Collapse] int freq = 50; int
    发表于 06-05 07:33

    LoRa模块 WT99C262-SG 开发板使用教程

    ,LoRa扩频技术,且模组大部分管脚均已引出至两侧排针,开发人员可根据实际需求,通过跳线连接多种外围设备,也可将开发板插在面包上使用。同时,WT99C262-SG
    的头像 发表于 05-16 08:03 814次阅读
    LoRa模块 WT99C262-<b class='flag-5'>SG</b> <b class='flag-5'>开发板</b>使用教程

    国内哪家的FPGA适合初学者

    如题,想着手学习FPGA的话,国内哪家的比较好,更适合初学者学习?这方面的经验,是一点都没。
    发表于 04-14 19:17

    种草一块国产FPGA开发板,不用烧录器,一根TypeC线即插即用,盘古PGX-MINI 4K开发板

    分享一块国产入门级FPGA开发板,不用烧录器,盘古PGX-MINI 4K开发板,一根TypeC线即插即用,一键式便携操作,非常适用初学者!!!而且配套的资料和实验例程很丰富,对于想尝
    发表于 03-04 16:04

    初学者请问各位大佬

    为什么在89C51单片机中R1可以提供低地址 在外部扩展RAM中不是P0口提供低8位地址P2口提供高8位地址吗初学者有些不理解望各位大佬解答一下谢谢
    发表于 02-23 16:39

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

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