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實驗場景圖