arduino教程系列21-舵机控制实验 学习,笔记

舵机是什么这里就不详细介绍了,详情请看论坛里《舵机详解》帖子



这里使用arduino duemilanove通过电位器控制一个舵机转动



使用原件:

arduino duemilanove一块

10K电位器一个

舵机一个

面包板一个

面包板连接线若干



这里要注意,不要使用电脑usb供电,因为如果电流需求大于500ma,会有烧毁usb的可能,推荐使用电池外置供电。



电位器左右两脚分别接3.3V和GND,中间接模拟口0。

舵机接5V和GND,信号口接数字7号口。



先上硬件连接图


Snap2.jpg

2011-10-9 21:29 上传
(93.96 KB)




IMGP5433_调整大小.JPG

2011-10-9 21:29 上传
(202.43 KB)





把下面代码下载进入arduino,然后再进行线路连接,运行时一定要使用电池供电。ARDUINO

int readPin = 0;   //用来连接电位器
int servopin = 7;    //定义舵机接口数字接口7
 
void servopulse(int angle)//定义一个脉冲函数
{
  int pulsewidth=(angle*11)+500;  //将角度转化为500-2480的脉宽值
  digitalWrite(servopin,HIGH);    //将舵机接口电平至高
  delayMicroseconds(pulsewidth);  //延时脉宽值的微秒数
  digitalWrite(servopin,LOW);     //将舵机接口电平至低
  delayMicroseconds(20000-pulsewidth);
}
 
void setup()
{
  pinMode(servopin,OUTPUT);//设定舵机接口为输出接口
}
 
void loop()
{
  //读取电位器(传感器)的读数,接到3.3V,值范围从0到660左右
  int readValue = analogRead(readPin);
  //把值的范围映射到0到165左右
  int angle = readValue / 4;
  //发送50个脉冲
  for(int i=0;i<50;i++)
  {
    //引用脉冲函数
    servopulse(angle);
  }
}

下面是实验效果

via - 极客工坊

标签: Arduino教程