|
212906zwzhwvexn99xngjj.jpg (202.43 KB, 下載次數(shù): 123)
下載附件
連接圖2
2017-2-14 21:31 上傳
212907mld560jz0djld6qf.jpg (93.96 KB, 下載次數(shù): 147)
下載附件
連接圖1
2017-2-14 21:31 上傳
這里使用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);
}
}
|
|