找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4240|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

arduino舵機(jī)控制實(shí)驗(yàn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

這里使用arduino duemilanove通過(guò)電位器控制一個(gè)舵機(jī)轉(zhuǎn)動(dòng)


使用原件:
arduino duemilanove一塊
10K電位器一個(gè)
舵機(jī)一個(gè)
面包板一個(gè)
面包板連接線若干

這里要注意,不要使用電腦usb供電,因?yàn)槿绻娏餍枨蟠笥?00ma,會(huì)有燒毀usb的可能,推薦使用電池外置供電。

電位器左右兩腳分別接3.3V和GND,中間接模擬口0。
舵機(jī)接5V和GND,信號(hào)口接數(shù)字7號(hào)口。

把下面代碼下載進(jìn)入arduino,然后再進(jìn)行線路連接,運(yùn)行時(shí)一定要使用電池供電。[pre lang="arduino" line="1"]int readPin = 0;   //用來(lái)連接電位器
int servopin = 7;    //定義舵機(jī)接口數(shù)字接口7

void servopulse(int angle)//定義一個(gè)脈沖函數(shù)
{
  int pulsewidth=(angle*11)+500;  //將角度轉(zhuǎn)化為500-2480的脈寬值
  digitalWrite(servopin,HIGH);    //將舵機(jī)接口電平至高
  delayMicroseconds(pulsewidth);  //延時(shí)脈寬值的微秒數(shù)
  digitalWrite(servopin,LOW);     //將舵機(jī)接口電平至低
  delayMicroseconds(20000-pulsewidth);
}

void setup()
{
  pinMode(servopin,OUTPUT);//設(shè)定舵機(jī)接口為輸出接口
}

void loop()
{
  //讀取電位器(傳感器)的讀數(shù),接到3.3V,值范圍從0到660左右
  int readValue = analogRead(readPin);
  //把值的范圍映射到0到165左右
  int angle = readValue / 4;
  //發(fā)送50個(gè)脈沖
  for(int i=0;i<50;i++)
  {
    //引用脈沖函數(shù)
    servopulse(angle);
  }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表