Robofun 機器人論壇

標題: 請問如何用Arduino控制伺服馬達? [打印本頁]

作者: as6212as    時間: 2012-5-12 00:55
標題: 請問如何用Arduino控制伺服馬達?
小弟最今才剛接觸Arduino
所使用的版子是
Arduino Duemilanove 328  Atmel  ATMEGA328P-PU
我想請問的是如何讓兩個或以上的伺服馬達同時轉動?
比如說第9腳位跟第9腳位的伺服馬達同時轉向30度
如果可以 請給我完整的程式碼 謝謝!
作者: as6212as    時間: 2012-5-12 16:14
打錯...是第9腳位跟第10腳位的伺服馬達同時轉向30度
跟第9腳位跟第10腳位的伺服馬達一個轉向30度一個轉向150度
有辨法嗎!?
作者: pcedison    時間: 2012-5-13 03:11
以下程式碼是你所需求的:第9、10腳位馬達同時轉向 30 度和個別轉 30度和 150度
有空記得多逛逛 Arduino 官網,會瞭解更多的!

  1. #include <Servo.h>

  2. Servo servoLeft;          // 宣告左邊伺服馬達
  3. Servo servoRight;         // 宣告右邊伺服馬達

  4. void setup() {
  5.   servoLeft.attach(10);  // 將 Pin 10 指定為左邊伺服馬達
  6.   servoRight.attach(9);  // 將 Pin  9 指定為右邊伺服馬達
  7. }

  8. void loop() {      
  9.   initial();        // 馬達位置歸零
  10.   delay(2000);      // 執行後停止兩秒
  11.   
  12.   same_degree();    // 左右伺服馬達同樣各轉30度        
  13.   delay(2000);      // 執行後停止兩秒
  14.   
  15.     initial();        // 馬達位置歸零
  16.   delay(2000);      // 執行後停止兩秒
  17.   
  18.   dif_degree();     // 左伺服馬達轉30度,右伺服馬達轉150度
  19.   delay(2000);      // 執行後停止兩秒
  20. }

  21. void initial(){
  22.   servoLeft.write(0);
  23.   servoRight.write(0);
  24. }

  25. void same_degree() {
  26.   servoLeft.write(30);
  27.   servoRight.write(30);
  28. }

  29. void dif_degree() {
  30.   servoLeft.write(30);
  31.   servoRight.write(150);
  32. }
複製代碼

作者: as6212as    時間: 2012-5-31 17:32
謝謝
原來我沒有宣告...
作者: a6141100    時間: 2012-8-7 00:18
可以請教如何插線嗎!!?




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2