Arduino シリアル読み込み
Arduinoを使用してservoモータを動かしてみました。
PCから制御する必要があったので、UARTから任意の数値を読み取って動かしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#include <Servo.h> Servo myservo1; // create servo object to control a servo Servo myservo2; // create servo object to control a servo Servo myservo3; // create servo object to control a servo int val1; int val2; int val3; void setup() { Serial.begin(38400); Serial.setTimeout(5000); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo1.attach(9, 900, 2100); myservo2.attach(10, 900, 2100); myservo3.attach(11, 900, 2100); } void loop() { Serial.println("Type: Ex) S30,20,50E"); bool s1 = Serial.findUntil("S", "S"); if (s1) { val1 = Serial.parseInt(); val2 = Serial.parseInt(); val3 = Serial.parseInt(); bool s2 = Serial.findUntil("E", "E"); if (s2) { Serial.print("Read:"); Serial.print(val1, DEC); Serial.print(","); Serial.print(val2, DEC); Serial.print(","); Serial.print(val3, DEC); Serial.println(""); if ( (0 <= val1 && val1 <= 180) && (0 <= val2 && val2 <= 180) && (0 <= val3 && val3 <= 180)) { myservo1.write(val1); delay(100); myservo2.write(val2); delay(100); myservo3.write(val3); delay(100); } else { Serial.println("Invalid Range"); } } } delay(10); } |
コメントを残す