舵机和旋钮
本课属于 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 监视器中查看机械臂收到的数值。机械臂没有转到你预期的位置时,这会很有帮助。
挑战
简单让舵机跟随旋钮转动:
- 用
analogRead(A0)读取旋钮 - 用
map()将读数转换为 0 到 180 之间的角度 - 用
arm.write()将舵臂转到对应位置,并打印角度
按“运行”并转动旋钮,然后按“检查”。
亲手试试
#include <Servo.h>
Servo arm;
void setup() {
arm.attach(9);
Serial.begin(9600);
}
void loop() {
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输出中的所有课
自己练习: Arduino 在线编辑器