Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 8589|回復: 4
打印 上一主題 下一主題

請問如何用Arduino控制伺服馬達?

[複製鏈接]
跳轉到指定樓層
1#
發表於 2012-5-12 00:55:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
小弟最今才剛接觸Arduino
所使用的版子是
Arduino Duemilanove 328  Atmel  ATMEGA328P-PU
我想請問的是如何讓兩個或以上的伺服馬達同時轉動?
比如說第9腳位跟第9腳位的伺服馬達同時轉向30度
如果可以 請給我完整的程式碼 謝謝!
2#
 樓主| 發表於 2012-5-12 16:14:43 | 只看該作者
打錯...是第9腳位跟第10腳位的伺服馬達同時轉向30度
跟第9腳位跟第10腳位的伺服馬達一個轉向30度一個轉向150度
有辨法嗎!?
3#
發表於 2012-5-13 03:11:48 | 只看該作者
以下程式碼是你所需求的:第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. }
複製代碼
4#
 樓主| 發表於 2012-5-31 17:32:22 | 只看該作者
謝謝
原來我沒有宣告...
5#
發表於 2012-8-7 00:18:33 | 只看該作者
可以請教如何插線嗎!!?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2025-1-31 19:56 , Processed in 0.300823 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表