- Arduino 教程
- Arduino - 首页
- Arduino - 概述
- Arduino - 开发板描述
- Arduino - 安装
- Arduino - 程序结构
- Arduino - 数据类型
- Arduino - 变量和常量
- Arduino - 运算符
- Arduino - 控制语句
- Arduino - 循环
- Arduino - 函数
- Arduino - 字符串
- Arduino - 字符串对象
- Arduino - 时间
- Arduino - 数组
- Arduino 函数库
- Arduino - I/O 函数
- Arduino - 高级 I/O 函数
- Arduino - 字符函数
- Arduino - 数学库
- Arduino - 三角函数
- Arduino 高级应用
- Arduino - Due 和 Zero
- Arduino - 脉冲宽度调制 (PWM)
- Arduino - 随机数
- Arduino - 中断
- Arduino - 通信
- Arduino - 集成电路 (IC)
- Arduino - 串行外围接口 (SPI)
- Arduino 项目
- Arduino - 闪烁LED
- Arduino - 渐变LED
- Arduino - 读取模拟电压
- Arduino - LED 条形图
- Arduino - 键盘注销
- Arduino - 键盘消息
- Arduino - 鼠标按钮控制
- Arduino - 键盘串口
- Arduino 传感器
- Arduino - 湿度传感器
- Arduino - 温度传感器
- Arduino - 水位检测/传感器
- Arduino - PIR 传感器
- Arduino - 超声波传感器
- Arduino - 连接开关
- 电机控制
- Arduino - 直流电机
- Arduino - 伺服电机
- Arduino - 步进电机
- Arduino 和声音
- Arduino - 音调库
- Arduino - 无线通信
- Arduino - 网络通信
- Arduino 有用资源
- Arduino - 快速指南
- Arduino - 有用资源
- Arduino - 讨论
Arduino - 伺服电机
伺服电机是一种小型设备,带有一个输出轴。通过发送编码信号给伺服电机,可以将此轴定位到特定的角度位置。只要编码信号存在于输入线上,伺服电机就会保持轴的角度位置。如果编码信号改变,轴的角度位置也会改变。实际上,伺服电机用于遥控飞机来定位控制面,例如升降舵和方向舵。它们也用于遥控汽车、木偶和机器人。
伺服电机在机器人技术中非常有用。这些电机体积小巧,具有内置控制电路,并且功率强大。标准伺服电机,例如 Futaba S-148,具有 42 oz/英寸的扭矩,对于其尺寸而言非常强大。它还按机械负载的比例消耗功率。因此,轻载伺服电机不会消耗太多能量。
下图显示了伺服电机的内部结构。您可以看到控制电路、电机、一组齿轮和外壳。您还可以看到连接到外部世界的 3 根线。一根用于电源(+5 伏),一根用于接地,白色线是控制线。
伺服电机的运行原理
伺服电机有一些控制电路和一个电位器(一个可变电阻器,又称电位器)连接到输出轴。在上图中,电位器位于电路板的右侧。此电位器允许控制电路监控伺服电机的当前角度。
如果轴处于正确的角度,则电机将关闭。如果电路发现角度不正确,它将转动电机,直到达到所需的角度。伺服电机的输出轴能够旋转大约 180 度。通常在 210 度左右,但是这取决于制造商。普通伺服电机用于控制 0 到 180 度的角度运动。由于主输出齿轮上安装的机械止动器,它在机械上无法进一步旋转。
施加到电机的功率与其需要移动的距离成正比。因此,如果轴需要旋转很大的距离,电机将以全速运行。如果它只需要旋转少量,电机将以较慢的速度运行。这称为**比例控制**。
如何告知伺服电机旋转的角度?
控制线用于通信角度。角度由施加到控制线的脉冲持续时间决定。这称为**脉冲编码调制**。伺服电机期望每 20 毫秒(0.02 秒)看到一个脉冲。脉冲的长度将决定电机旋转的距离。例如,1.5 毫秒的脉冲将使电机旋转到 90 度位置(通常称为中性位置)。如果脉冲短于 1.5 毫秒,则电机将使轴更接近 0 度。如果脉冲长于 1.5 毫秒,则轴将更接近 180 度。
所需组件
您将需要以下组件:
- 1 个 Arduino UNO 开发板
- 1 个伺服电机
- 1 个 ULN2003 驱动 IC
- 1 个 10 KΩ 电阻
步骤
按照电路图,按照下图所示进行连接。
草图
在您的计算机上打开 Arduino IDE 软件。使用 Arduino 语言进行编码将控制您的电路。通过单击“新建”打开一个新的草图文件。
Arduino 代码
/* Controlling a servo position using a potentiometer (variable resistor) */ #include <Servo.h> Servo myservo; // create servo object to control a servo int potpin = 0; // analog pin used to connect the potentiometer int val; // variable to read the value from the analog pin void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023) val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180) myservo.write(val); // sets the servo position according to the scaled value delay(15); }
代码说明
伺服电机有三个端子 - 电源、接地和信号。电源线通常为红色,应连接到 Arduino 的 5V 引脚。接地线通常为黑色或棕色,应连接到 ULN2003 IC 的一个端子 (10-16)。为了保护您的 Arduino 开发板免受损坏,您需要一些驱动 IC 来完成此操作。这里我们使用 ULN2003 IC 来驱动伺服电机。信号线通常为黄色或橙色,应连接到 Arduino 的 9 号引脚。
连接电位器
分压器是串联电路中的电阻,它将输出电压按比例缩放为施加的输入电压的特定比例。以下是电路图:
$$V_{out} = (V_{in} \times R_{2})/ (R_{1} + R_{2})$$
Vout 是输出电压,它取决于施加的输入电压 (Vin) 和串联电阻 (R1 和 R2)。这意味着流过 R1 的电流也会流过 R2,不会被分割。在上式中,随着 R2 值的变化,Vout 将根据输入电压 Vin 缩放。
通常,电位器是一个分压器,它可以根据可变电阻的值缩放电路的输出电压,该可变电阻使用旋钮进行缩放。它有三个引脚:GND、信号和 +5V,如下图所示:
结果
通过改变电位器的旋钮位置,伺服电机将改变其角度。