Browse Source

update arduino sketch

develop
Carmine De Rosa 6 years ago
parent
commit
44edd3b191
  1. 50
      arduino/arduino.ino

50
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);
}
}
}

Loading…
Cancel
Save