From 44edd3b1918e0919b6e2d5e72136624200c1d0a7 Mon Sep 17 00:00:00 2001 From: Carmine De Rosa Date: Sat, 5 Oct 2019 16:22:07 +0200 Subject: [PATCH] update arduino sketch --- arduino/arduino.ino | 54 ++++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/arduino/arduino.ino b/arduino/arduino.ino index 4965250..0b4b715 100644 --- a/arduino/arduino.ino +++ b/arduino/arduino.ino @@ -11,6 +11,7 @@ Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(); const char HEADER = 'H'; const char A_TAG = 'M'; const char B_TAG = 'X'; +const char C_TAG = 'U'; const int TOTAL_BYTES = 10 ; // the total bytes in a message int atomPins[] = {2,3,4,5,6,7,8,9}; @@ -60,36 +61,43 @@ void loop() { if(Serial.available() >= TOTAL_BYTES) { if( Serial.read() == HEADER) { char tag = Serial.read(); - if(tag == A_TAG) { + if(tag == A_TAG || tag == B_TAG) { for(int i=0; i<8; i++) { values[i] = Serial.read(); } } - - for(int i=0; i<8; i++) { - pwm.setPWM(i, 0, SERVOMIN); - delay(values[i]*SERVODIVIDER); - pwm.setPWM(i, 0, ((SERVOMAX-SERVOMIN)/2)+SERVOMIN); - } - - while(cycle < 8) { + + if(tag == C_TAG) { + for(int i=0; i<8; i++) { + pwm.setPWM(i, 0, SERVOMAX+50); + delay(100*SERVODIVIDER); + pwm.setPWM(i, 0, ((SERVOMAX-SERVOMIN)/2)+SERVOMIN); + } + } else { for(int i=0; i<8; i++) { - Serial.print(values[i]); - Serial.print(" "); - if(values[i]>0) { - values[i]--; - digitalWrite(atomPins[i], HIGH); - if(values[i]==0) { - cycle++; - digitalWrite(atomPins[i], LOW); + pwm.setPWM(i, 0, SERVOMIN); + delay(values[i]*SERVODIVIDER); + pwm.setPWM(i, 0, ((SERVOMAX-SERVOMIN)/2)+SERVOMIN); + } + + if(tag == A_TAG) { + while(cycle < 8) { + for(int i=0; i<8; i++) { + Serial.print(values[i]); + Serial.print(" "); + if(values[i]>0) { + values[i]--; + digitalWrite(atomPins[i], HIGH); + if(values[i]==0) { + cycle++; + digitalWrite(atomPins[i], LOW); + } + } } - } + Serial.println(""); + delay(TIMER); + } } - - Serial.println(""); - delay(TIMER); - - //digitalWrite(13, LOW); } } }