概述
本实验利用模拟旋转电位器来控制舵机角度定位,旋钮电位器转动一圈输出模拟值转化为9g舵机对应180°范围内的角度值。
元件清单:
Zduino UNO × 1;
OJ传感器扩展板× 1;
USB数据线 × 1 ;
3p杜邦线 × 2 ;
10K旋钮电位器模块 × 1 ;
9G微型舵机 × 1 ;
知识要点:
servo类下成员函数
attach() 连接舵机
write() 角度控制
writeMicroseconds() 输入一个值单位为us,来控制舵机转动到相应角度,输入值为1000时舵机轴转动到逆时针最大位置。输入值为2000时舵机轴转动到顺时针最大位置。为1500时舵机轴在中间位置。
read() 读上一次舵机转动角度
attached() 连接舵机接口引脚
detach() 断开舵机连接
接线示意图:
舵机接对应9号IO口
Arduino示例程序:
/*
www.openjumper.cn
日期:2013.5.18
IDE 版本:1.0.1
功能:旋转电位器则舵机转动,当电位器转动一圈是,舵机则相应的转动最大的180度,
实现实时控制舵机的转动。
*/
#include <Servo.h> //包含舵机库
Servo myservo; //创建一个舵机控制类
int pos = 0; //定义一个变量存储舵机转动角度
void setup()
{
myservo.attach(9); //连接舵机到9号数字口
}
void loop()
{
int value=analogRead(A0); //读取A0口输入的模拟值
pos=map(value,0,1023,0,180); //将读到的模拟值0~1023映射为0°~180°
myservo.write(pos); //舵机转动到相应角度
delay(100); //延时一段时间让舵机转动到对应位置
}
接线实物图:
观察现象:当拧动旋钮电位器时,舵机的舵盘发生相应的角度转动。