這裏要注意,不要使用電腦usb供電,因為如果電流需求大於500ma,會有燒毀usb的可能,推薦使用電池外置供電。
電位器左右兩腳分別接3.3V和GND,中間接模擬口0。
電位器左右兩腳分別接3.3V和GND,中間接模擬口0。
舵機接5V和GND,信號口接數位7號口。
1.
int readPin = 0; //用來連接電位器
2.
int servopin = 7; //定義舵機介面數位介面7
3.
4.
void servopulse(int angle)//定義一個脈衝函數
5.
{
6.
int pulsewidth=(angle*11)+500; //將角度轉化為500-2480的脈寬值
7.
digitalWrite(servopin,HIGH); //將舵機介面電平至高
8.
delayMicroseconds(pulsewidth); //延時脈寬值的微秒數
9.
digitalWrite(servopin,LOW); //將舵機介面電平至低
10.
delayMicroseconds(20000-pulsewidth);
11.
}
12.
13.
void setup()
14.
{
15.
pinMode(servopin,OUTPUT);//設定舵機介面為輸出介面
16.
}
17.
18.
void loop()
19.
{
20.
//讀取電位器(感測器)的讀數,接到3.3V,值範圍從0到660左右
21.
int readValue = analogRead(readPin);
22.
//把值的範圍映射到0到165左右
23.
int angle = readValue / 4;
24.
//發送50個脈衝
25.
for(int i=0;i<50;i++)
26.
{
27.
//引用脈衝函數
28.
servopulse(angle);
29.
}
30.
}
沒有留言:
張貼留言