Gestione di un telepass con Arduino: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Etichetta: Editor wikitesto 2017
Nessun oggetto della modifica
Etichetta: Editor wikitesto 2017
Riga 67:
</syntaxhighlight>
 
Set up del progetto, dove identifichiamo le uscite e le entrate di Arduino verso i vari componenti, e inizializziamo Display e Servo
Set up del progetto
<syntaxhighlight lang="arduino" line="1">
void setup() {
Serial.begin(9600); // Inizializzazione porta seriale
 
lcd.begin(16, 2); // Setup schermo Lcd, identificandone colonne e righe
lcd.print(scritta1); // Scritta iniziale, Benvenuti a Riccione
lcd.setCursor(0,1);
lcd.print(scritta2);
 
servo.attach(pin_servo); // Identificazione pin servo motore
servo.write(0); // Ritornoa posizione iniziale
 
pinMode(trig_pin,OUTPUT); // Setup dei pin di entrata e uscita del segnale a ultrasuonds
pinMode(echo_pin,INPUT);
 
pinMode(piezo,OUTPUT); // Setup deL pin di uscita del piezo
}
</syntaxhighlight>
 
Set upFunzionamento del progetto
<syntaxhighlight lang="arduino" line="1">
void loop() {
long durata, distanza;
 
 
digitalWrite(trig_pin, LOW); // Inizzializzazione Sensore ad Ultrasuoni
delayMicroseconds(2);
digitalWrite(trig_pin, HIGH);
delayMicroseconds(10);
digitalWrite(trig_pin, LOW);
durata = pulseIn(echo_pin,HIGH);
 
:
distanza = durata / 29.1 / 2 ; // Conversione del valore temporale catturato dal sensore in cm (distanza)
 
 
if (distanza <= larghezzacarr){ // Se la distanza è minore o uguale del valore scelto allora:
Serial.println("OK"); // Scrivi OK sul monitor seriale
 
lcd.clear(); // Pulisci il monitor LCD e scrivici ARRIVEDERCI
lcd.print(messaggio);
 
tone(piezo, tonalita); // Suona il Piezo per una certa durata di tempo
delay(duratasuono);
noTone(piezo);
for( int i = 0; i < angolosbarra; i++){ // Fai girare il servo motore di 90 gradi e ritorna indietro
servo.write(i);
delay (velocitaservo);
}
delay (attesasbarra);
tone(piezo, tonalita2); // Suona il Piezo per una certa durata di tempo
delay(duratasuono);
noTone(piezo);
 
for(int i = (angolosbarra - 1) ; i>= 0; i--){
servo.write(i);
delay (velocitaservo);
}
 
lcd.clear();
 
lcd.print(scritta1); // Riscrivi Benvenuti a Riccione
lcd.setCursor(0,1);
lcd.print(scritta2);
 
}
 
else { // Altrimenti
Serial.print(distanza); // Scrivi sul monitor seriale la distanza in centrimetri catturata dal sensore
Serial.println("cm");
Serial.println();
 
}
delay(freqdiagg);
}
</syntaxhighlight>