Menu
CoddyTech

舵机和旋钮

本课属于 Coddy Arduino 学习旅程的“输出”单元。第 22 课,共 24 课。

机械臂可以跟随旋钮转动,而不是按固定的角度列表转动。这和调光器与音高旋钮使用的是同一种模式:读取、转换、使用。

旋钮提供的值是 0 到 1023,而 arm.write() 接收的角度范围是 0 到 180 度,所以 map() 可以在两者之间进行转换:

int reading = analogRead(A0);
int angle = map(reading, 0, 1023, 0, 180);
arm.write(angle);

读数为 0 时会转换为 0 度,读数为 1023 时会转换为 180 度,中间的读数也会转换为相应的角度,因此旋钮转动时,机械臂也会随之转动。

使用 Serial.println() 打印角度,可以在 Serial 监视器中查看机械臂收到的数值。机械臂没有转到你预期的位置时,这会很有帮助。

challenge icon

挑战

简单

让舵机跟随旋钮转动:

  • 用 analogRead(A0) 读取旋钮
  • 用 map() 将读数转换为 0 到 180 之间的角度
  • 用 arm.write() 将舵臂转到对应位置,并打印角度

按“运行”并转动旋钮,然后按“检查”。

亲手试试

#include <Servo.h>

Servo arm;

void setup() {
  arm.attach(9);
  Serial.begin(9600);
}

void loop() {

}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

输出中的所有课

自己练习: Arduino 在线编辑器