Salve a tutti, sono un possessore di Arduino Uno e sto cercando di far funzionare 2 sensori shock contemporaneamente, vi riporto il codice del programma: ho inserito 3 IF consecutivi perchè mi dva problemi con gli ELESe e gli ELSE IF : se io escludo i 2 IF finali il programma legge bene i 2 sensori in contemporanea, ma se io uso il programma per intero (quindi con i 3 IF contemporaneamente attivi) mi esegue solo i IF (che leggono o il sensore1 o il sensore2). E' una anomalia che non riesco a risolvere.
Potete aiutarmi?
grazie
Flavio
int shockSensorPin1 = 2;
int shockSensorPin2 = 4;
int whiteLedPin1 = 3;
int whiteLedPin2 = 5;
int shockSensorState1 = 0;
int shockSensorState2 = 0;
void setup() {
pinMode(shockSensorPin1, INPUT);
pinMode(shockSensorPin2, INPUT);
pinMode(whiteLedPin1, OUTPUT);
pinMode(whiteLedPin2, OUTPUT);
Serial.begin(9600);
}
void loop() {
shockSensorState1 = digitalRead(shockSensorPin1);
shockSensorState2 = digitalRead(shockSensorPin2);
if (shockSensorState1 == 1 && shockSensorState2 == 1) {
Serial.println("SENSORI ENTRAMBI ON");
digitalWrite(whiteLedPin1, HIGH);
digitalWrite(whiteLedPin2, HIGH);
delay(1000);
digitalWrite(whiteLedPin1, LOW);
digitalWrite(whiteLedPin2, LOW);
Serial.println(shockSensorState1);
Serial.println(shockSensorState2);
}
if (shockSensorState1 == 1 && shockSensorState2 == 0) {
digitalWrite(whiteLedPin1, HIGH);
delay(150);
digitalWrite(whiteLedPin2, HIGH);
delay(150);
digitalWrite(whiteLedPin1, LOW);
delay(150);
digitalWrite(whiteLedPin2, LOW);
delay(150);
Serial.println("sensore1=ON e sensore2=OFF");
}
if (shockSensorState1 == 0 && shockSensorState2 == 1) {
digitalWrite(whiteLedPin2, HIGH);
delay(150);
digitalWrite(whiteLedPin1, HIGH);
delay(150);
digitalWrite(whiteLedPin2, LOW);
delay(150);
digitalWrite(whiteLedPin1, LOW);
delay(150);
Serial.println("sensore1=OFF e sensore2 =ON");
/*Serial.print(shockSensorState1);
Serial.print("\n");
Serial.print(shockSensorState2);
Serial.print("\n");*/
}
shockSensorState1 = 0;
shockSensorState2 = 0;
}