2013年4月10日 星期三

Arduino : 伺服馬達




這裏要注意,不要使用電腦usb供電,因為如果電流需求大於500ma,會有燒毀usb的可能,推薦使用電池外置供電。

電位器左右兩腳分別接3.3VGND,中間接模擬口0


舵機接5VGND,信號口接數位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,值範圍從0660左右
21.                       int readValue = analogRead(readPin);
22.                       //把值的範圍映射到0165左右
23.                       int angle = readValue / 4;
24.                       //發送50個脈衝
25.                       for(int i=0;i<50;i++)
26.                       {
27.                         //引用脈衝函數
28.                         servopulse(angle);
29.                       }
30.                     }

 


沒有留言:

張貼留言

2024_09 作業3 以Node-Red 為主

 2024_09 作業3  (以Node-Red 為主  Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker  2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...