Gestione di un telepass con Arduino: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Etichetta: Editor wikitesto 2017
Riga 33:
 
=== Codice ===
Infine il codice (o, i codici) utilizzato. Per inserire il codice, in quest'ambiente con ''Modifica sorgente'' basta scrivere il testo con un singolo spazio, così:<syntaxhighlight lang="arduino" line="1">
Zona delle variabli, che regolano il completo funzionamento del progetto:
</syntaxhighlight lang="arduino" line="1">
 
#include <LiquidCrystal.h> // Iseriamo le librerie per la semplificazione del codice
#include <Servo.h>
Line 63 ⟶ 66:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Defibniamo a che pin è collegato lo schermo LCD
 
</syntaxhighlight>
 
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
}
 
 
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);
 
// Converti il tempo in distanza:
distanza = durata / 29.1 / 2 ; // Conversione del valore preso dal sensore in cm
 
 
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>
 
=== Conclusioni ===