Avvisatore acustico di sicurezza (parte 1)

Verifichiamo l’usabilità del comando tone()
Il comando tone() (già utilizzato quando abbiamo fatto suonare la Maker Uno) ci permette di impostare con grande semplicità il piedio di uscita, la frequenza e la durata del tono ma, cosa succede mentre il tono viene emesso?
Per scoprirlo (in maniera sperimentale) basta caricare il seguente codice

// Test del comado tone()
//Il codice esegue un tono di frequenza Tono1 e durata TTono1
//sul piedino Sirena (pin 8 dove la Maker Uno ha collegato il buzzer)
//Il programma ci fornisce la lettura del timer intero della scheda
//espresso in millisecondi rispettivamente:
// quando inizia il prgramma
// ogni volta che fa il ciclo della loop()
//La velocità di comunicazione della seriale è VelocitaSeriale

#define VelocitaSeriale 9600

#define Sirena 8

#define Tono1 1000

#define TTono1 5000

void setup()
{
Serial.begin(VelocitaSeriale);
Serial.print(“Inizio a “);
Serial.println(millis());
}

void loop()
{
tone(Sirena,Tono1, TTono1);
Serial.print(“Ciclo “);
Serial.println(millis());
}

che trovate pronto per l’ide al link.
Una volta compilato e caricato sulla nostra scheda Maker Uno o altra Arduino Uno compatiile, possiamo lanciare il monitor seriale e osservare che, i numeri che ci appaiono sono veramente prossimi uno all’altro ovvero, il tempo che intercorre fra un giro e l’altro della subroutines loop() è di molto inferiore alla lunghezza fissata per la nostra nota (5000 mS ovvero 5 secondi).
Cosa ne deduciamo?
Ne deduciamo che la lireria di base Arduino mette a disposizione il comado tone() come comando non bloccante per il codice o meglio, il sotto processo che provvede ad eseguire il tono sul piedino richiesto viene eseguito senza che l’esecuzione del programma (principale) venga fermata.

Approfondimenti:
1) Arduino reference tone()

Questa voce è stata pubblicata in didattica digitale, Elettronica, Informatica, laboratori, Make, MakerSpace, robotica e contrassegnata con , , , , , . Contrassegna il permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.