In questo post andremo ad analizzare in dettaglio lo Sketch che ho scritto per il mio primo progetto con Arduino ovvero comandare con uno smartphone l’accensione/spegnimento di una lampadina via Bluetooth.
//dichiarazioni char com; int ledpin = 8; void setup() { pinMode(ledpin, OUTPUT); //dichiarazione dell'OUTPUT Serial.begin(9600); // inizializzazione seriale } void loop() { if( Serial.available() ) { com = Serial.read(); } //controllo input da seriale if( com == 'H') { //se riceve 'H' eccita il relè digitalWrite(ledpin, HIGH); } else { if( com == 'L') //se riceve 'L' spegne la lampadina digitalWrite(ledpin, LOW); } }
In breve ho dichiarato l’utilizzo del pin 8 quale Output. Arduino ciclicamente andrà a controllare quanto ricevuto via seriale dal modulo Bluetooth e se riceverà la lettera “H” andrà a alzare il livello del pin 8 ed ecciterà il relè accendendo la lampadina, mentre se riceverà una “L” andrà ad abbassare il livello del pin 8 comandando al relè di spegnere la lampadina.
Download dello Sketch: qui il link
Analizziamo in dettaglio le parti del codice dello Sketch:
//Dichiarazioni char val; int ledpin = 8;
In questa parte iniziale del codice troviamo la dichiarazione della variabile che verrà successivamente utilizzata che chiamiamo “com” e sarà di tipo stringa, quindi troviamo la dichiarazione relativa al pin digitale di Arduino che andremo a controllare e a cui demandiamo il controllo del relè, in questo caso abbiamo scelto il pin 8 al quale da qui in avanti ci riferiremo con il nome ledpin.
void setup() { pinMode(ledpin, OUTPUT); //dichiarazione dell'OUTPUT Serial.begin(9600); // inizializzazione seriale }
La funzione void setup() è la prima ad essere eseguita dopo ogni accensione o reset di Arduino. Qui andiamo ad impostare lo stato del pin 8 (chiamato ledpin), quindi impostiamo la comunicazione seriale impostando la velocità a 9600 baud per secondo.
void loop() { if( Serial.available() ) { com = Serial.read(); } //controllo input da seriale if( com == 'H') { //se riceve 'H' eccita il relè digitalWrite(ledpin, HIGH); } else { if( com == 'L') //se riceve 'L' spegne la lampadina digitalWrite(ledpin, LOW); } }
La funzione void loop() esegue ciclicamente il programma definito al suo interno. Innanzitutto andiamo a controllare che la comunicazione seriale sia attiva, nel caso si controlla quanto ricevuto via seriale. Se Arduino riceve la lettera ‘H’ andrà ad impostare lo stato del pin 8 a HIGH che collegato al relè andrà ad eccitarlo aprendo il circuito e quindi accendendo la lampadina. Se Arduino riceve la lettera ‘L’ andrà ad impostare lo stato del pin 8 a LOW andando a spegnere la lampadina.
Il tutorial è suddiviso in tre parti:
– Arduino+Bluetooth+Relè+Lampadina (parte 1/3) – L’Hardware – Dove troverete il progetto completo con la spiegazione dell’hardware utilizzato e i vari collegamenti.
– Arduino+Bluetooth+Relè+Lampadina (parte 2/3) – Lo Sketch – Dove troverete l’analisi del programma caricato sull’Arduino per questo progetto.
– Arduino+Bluetooth+Relè+Lampadina (parte 3/3) – L’App Android – Dove troverete l’analisi del programma realizzato per lo smartphone Android per il controllo remoto.
Filed under: Arduino & Raspberry, Software | Tagged: Arduino & Raspberry, Arduino Uno, bluetooth, modulo BT HC-06, scheda relè, Sketch, void loop(), void setup() |
Rispondi