【雕爺學編程】Arduino動手做(164)---Futaba S3003舵機模塊3

37款傳感器與模塊的提法,在網絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑑於本人手頭積累了一些傳感器和執行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流爲目的,這裏準備逐一動手試試多做實驗,不管成功與否,都會記錄下來——小小的進步或是搞不掂的問題,希望能夠拋磚引玉。

 

【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗一百六十四:Futaba S3003舵機 180度3.5KG車船模型38克 機器人攝像頭雲臺

 

 

【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)

實驗一百六十四:Futaba S3003舵機 180度3.5KG車船模型38克 機器人攝像頭雲臺

項目:使用10K電位器模塊控制 RC 伺服電機位置

 

 

Arduino實驗開源代碼

/*
 【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
  實驗一百六十四:Futaba S3003舵機 180度3.5KG車船模型38克 機器人攝像頭雲臺
  項目:使用10K電位器模塊控制 RC 伺服電機位置
*/

#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
 
  
 
void setup(){
         myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop(){
         val = analogRead(potpin); // reads the value of the potentiometer (value // between 0 and 1023)
         val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value
                                                        // between 0 and 180)
         myservo.write(val); // sets the servo position according to the
                                      // scaled value
         delay(15); // waits for the servo to get there
}

  

項目:使用10K電位器模塊控制 RC 伺服電機位置
Arduino實驗場景圖

 

代碼結果

從連接到引腳 A0 的10K電位器模塊讀取模擬值,存儲在變量中,值 = map(val, 0, 1023,由於 Arduino 內部的 ADC 是 0 位 ADC,因此模擬讀數從 179 到 10,但 RC 伺服電機只能旋轉 0- 因此,功能映射必須將刻度從 1023-1 縮放到 180-0,然後將其存儲在 val myservo.write(val); 當刻度從 1023-0 降低到 179-0 時,然後指示伺服電機旋轉到 val delay 變量(1023);延遲 0 毫秒,從而允許通過旋轉等位計調整伺服電機的度。

 

實驗開源仿真編程(Linkboy V5.33)

項目:舵機30°,60°,-30°,-60°之間循環擺動

 

項目:舵機30°,60°,-30°,-60°之間循環擺動

實驗場景動態圖

 

【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)

實驗一百六十四:Futaba S3003舵機 180度3.5KG車船模型38克 機器人攝像頭雲臺

項目:串口打印舵機pos的值

安裝庫:PS2X_lib  ,下載鏈接:

https://github.com/simondlevy/PS2X_lib

 

 

Arduino實驗開源代碼

/*
 【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
  實驗一百六十四:Futaba S3003舵機 180度3.5KG車船模型38克 機器人攝像頭雲臺
  項目:串口打印舵機pos的值
*/

#include <PS2X_lib.h>
#include <Servo.h>

Servo myservo;  // 創建Servo對象用以控制伺服電機

int pos = 0;    // 存儲伺服電機角度信息的變量

void setup() {
  myservo.attach(9);  // Servo對象連接在9號引腳
  Serial.begin(9600);
}

void loop() {
  for (pos = 0; pos <= 180; pos += 1) { // 0°轉到180°
    // 每一步增加1°
    myservo.write(pos);              // 告訴伺服電機達到‘pos’變量的角度
    Serial.println(pos);             //串口打印pos的值
    delay(15);                       // 等待15毫秒以確保伺服電機達到了目標角度
  }
  for (pos = 180; pos >= 0; pos -= 1) { // 180°轉到 0°
    myservo.write(pos);              // 告訴伺服電機達到‘pos’變量的角度
    Serial.println(pos);             //串口打印pos的值
    delay(15);                       //等待15毫秒以確保伺服電機達到了目標角度
  }
}

  

【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)

實驗一百六十四:Futaba S3003舵機 180度3.5KG車船模型38克 機器人攝像頭雲臺

項目:串口打印舵機pos的值

Arduino實驗場景圖

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章