const int trigPin = 5; const int echoPin = 3; const int pulsante = 10;// cambia modalità albero lettura arancio const int foto = 8; // scatta foto verde int pul = 0; int pulp = 0; int Ivel = 1000000; int vel = 0; long durata; float distanza; void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(pulsante, INPUT_PULLUP); pinMode(foto, INPUT_PULLUP); } float CalDist(){ digitalWrite(trigPin, LOW); delayMicroseconds(2); // invia impulso digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // legge il tempo dell'eco durata = pulseIn(echoPin, HIGH); // calcola la distanza (cm) distanza = durata * 0.034 / 2; // stampa sul monitor seriale return(distanza); } void loop() { // assicura che il trig sia spento bool buttonPressed = digitalRead(pulsante) == LOW; bool scattaFoto = digitalRead(foto) == LOW; if (buttonPressed){ if (pulp == 0) { pul = 1; pulp = 1; } else { pul = 0; pulp = 0; } //delay(200); if (pul == 1){ // ho cambiato le parole in numeri perchè dovrebbe essere più facile con il programma del pi Serial.println("-4"); // modalità albero delay(500); } else { Serial.println("-8"); // modalià lettura delay(500); } } if (pul == 0) { if (scattaFoto) { Serial.println("-3680"); // foto! delay(500); } } if (vel == 0){ Serial.println(CalDist()); // ho tolto il controllo della modalità perchè serve ad entrambi sapere la distanza vel = Ivel; } else { vel--; } }