DFR0100 Arduino教程 11-- 可控舵机
2014-06-059万
AI 快速预览详细
本篇Arduino教程介绍了如何通过电位器控制舵机角度,实现可控转动装置。首先列出了所需的元件清单,包括DFR0100套件中的电位器和舵机。接着详细说明了硬件连接方法,电位器的一边分别接5V与GND,另一边单独一个引脚接模拟口0。代码部分调用了Servo.h库,并创建了一个舵机对象。通过map函数将模拟口读到的0~1023的值转换为舵机的0~180°,实现精确控制。最后,通过旋转电位器,可以观察到舵机随着电位器转动。
|
【本篇课程内容于 2024年11月14日更新】 >本系教程配套硬件套件:【新版】Arduino入门套件 DFR0100 在前面一个项目中,我们知道了如何让舵机动起来,这里将进一步的通过外部信号来让舵机随着输入的改变来相应改变角度,方便做一些可控的转动装置。我们这里通过一个可变电阻——电位器,来控制舵机。当然你也可以通过其他的模拟量或者数字量来控制舵机。模拟量的话,比如改造一下前面的感光灯,变成一个会动的感光灯。数字量的话,比如通过一个按钮,倾斜开关等等,一旦触发开关,就让舵机转动,可以有很多玩儿法。再给舵机加个外壳,让它更具生命力。 元件清单 ![]() 硬件连接 与项目【舵机初动】不同处在于多了一个电位器,电位器相当于一个可变阻值的电阻,两个引脚的一边分别接5V与GND,而另一边只有单独一个引脚的接模拟口0,用于做输入信号。 ![]() 图 1 可控舵机连线图 代码示例 下载代码,成功后,旋转电位器,看看舵机是不是随着电位器转动。 代码回顾 代码的开始部分还是需要调用<Servo.h>库,并创建相应的对象。同时,需要一个模拟口用来读取电位器的值,我们这里用变量potPin代表模拟口0。这里主要讲下map函数。 函数格式如下: map(value, fromLow, fromHigh, toLow, toHigh) map函数的作用是将一个数从一个范围映射到另外一个范围。也就是说,会将 fromLow到fromHigh之间的值映射到toLow在toHigh之间的值。 map函数参数含义: value:需要映射的值 fromLow:当前范围值的下限 fromHigh:当前范围值的上限 toLow:目标范围值的下限 toHigh:目标范围值的上限 map的神奇之处还在于,两个范围中的“下限”可以比“上限”更大或者更小,因此map()函数可以用来翻转数值的范围,可以这么写: y = map(x, 1, 50, 50, 1); 这个函数同样可以处理负数,请看下面这个例子: y = map(x, 1, 50, 50, -100); val = map(val, 0, 1023, 0, 179); 所以,回到代码中,我们是想将模拟口读到的0~1023的值,转换为舵机的0~180°。 示例代码 Interact_with_Servo_Chinese.rar下一篇教程:Arduino教程 12-- 彩灯调光台 DFRobot版权所有,欢迎转载。 转载请务必标注来源: DF创客社区+作者姓名+原文网址。 |







Servo myservo;
int potpin = 0;
int val;
int ledPin = 5;
void setup() {
myservo.attach(9);
pinMode(ledPin, OUTPUT);
}
void loop() {
val = analogRead(potpin);
val = map(val, 0, 1023, 0, 179);
myservo.write(val);
delay(15);
digitalWrite(ledPin,HIGH);
delay(500);
digitalWrite(ledPin,LOW);
delay(200);
}
为撒 加了个闪灯程序 舵机就疯了 ?
这是我的代码:
[code]int a = 13;
int potpin = 0; // 连接到模拟口0
int val; //变量val用来存储从模拟口0读到的值
void setup() {
pinMode(a,OUTPUT);
Serial.begin(9600); //设置波特率为9600 bps
}
void loop() {
val = analogRead(potpin); //从模拟口0读值,并通过val记录
val = map(val, 0, 1023, 0, 255); //通过map函数进行数值转换
Serial.print(val);
analogWrite(a, val);
delay(100); // 延时
}
[/code]
https://mc.dfrobot.com.cn/thread-3331-1-1.html
顺便问一下,板上的接口各代表什么含义,能不能介绍一下