=== 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>
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);
}
=== Conclusioni ===
|