Come promesso, visto che l'argomento aveva suscitato interesse da hobbisti del settore e non, nel mio pochissimo tempo a disposizione, ho deciso comunque di rispolverare uno dei miei primi progetti con Arduino, e così potervi insegnare le basi della progettazione di questa interessantissima piattaforma.
Il mio primo lavoro con Arduino è stato quello di progettare un'interfaccia per astronave anni '70! Beh... a dire il vero si tratta di qualcosa di estremamente più semplice, dato che con un pulsante comanderemo tre diodi led, ma il libro dei progetti di Arduino lo chiama così per dare un senso fantasioso al nostro primo progetto. In effetti possiamo immaginare che premendo il tasto attiviamo i cannoni laser della nostra navetta e quando lo rilasciamo si riattiva lo scudo, ecc...
In parole povere in questo semplice progetto, quando il pulsante non è premuto, rimane accesa una luce verde, per indicare che il dispositivo è acceso e pronto, invece quando viene premuto, la luce verde si spegne e iniziano a lampeggiare i due led rossi.
Per realizzare questo progetto abbiamo bisogno dei seguenti componenti:
(Foto dell'autore)
-Scheda Arduino;
-Scheda Breadboard;
-2 diodi led rossi;
-1 diodo led verde;
-3 resistenze da 220 ohm;
-1 resistenza da 1 Kohm;
-1 pulsante;
-alcuni cavetti per collegare il tutto.
Questo è il nostro schema elettrico, preso dal libro dei progetti di Arduino:
(foto dell'autore)
Ecco il nostro pannellino interamente cablato:
(Foto dell'autore)
Piccola nozione di elettronica: in serie ai diodi led va sempre messa una resistenza, perché sennò la corrente che li attraverserebbe sarebbe troppo alta e si brucerebbero. Variando la resistenza, varia anche l'intensità della luminosità della luce. Inserendo una resistenza da 220 ohm e proprio la per legge di ohm (V=R/I), inserendo nella formula la tensione, 5Volt che è la tensione di uscita dai pin di Arduino, diviso la resistenza (220), otteniamo che l'intensità di corrente che attraversa i led è di 22 mA, una corrente ottimale per questi modelli in termini di luminosità e di sicurezza per non bruciarli.
Una volta svolta la parte hardware ci vuole anche quella software, quella che fa "capire" alla scheda Arduino come comandare il tutto. Questo è il codice che va inserito nell'ambiente di programmazione sul nostro PC:
int switchstate = 0;
void setup() {
pinMode(3, OUTPUT); // dichiaro il pin 3 della scheda come output
pinMode(4, OUTPUT); // dichiaro il pin 4 della scheda come output
pinMode(5, OUTPUT); // dichiaro il pin 5 della scheda come output
pinMode(2, INPUT); // dichiaro il pin 2 della scheda come input
}
void loop() {
int switchState = digitalRead(2);
if (switchState == LOW) {
// il pulsante non è premuto
digitalWrite(3, HIGH); // LED VERDE ACCESO
digitalWrite(4, LOW); // LED ROSSO SPENTO
digitalWrite(5, LOW); // LED ROSSO SPENTO
}
else { // il pulsante è premuto
digitalWrite(3, LOW); // LED VERDE SPENTO
digitalWrite(4, LOW); // LED ROSSO SPENTO
digitalWrite(5, HIGH); // LED ROSSO ACCESO
delay(250); // aspetta un quarto di secondo
//cambia gli stati dei led
digitalWrite(4, HIGH); // LED ROSSO ACCESO
digitalWrite(5, LOW); // LED ROSSO SPENTO
delay(250); // aspetta un quarto di secondo
}
} // Torna all'inizio del loop
Il linguaggio di programmazione di Arduino è basato sul C e C++. Grazie ai commenti che ho messo, (tutto quello scritto dopo "//" e che quindi non viene elaborato dal processore), si intuisce a cosa servono i vari comandi.
Completata la scrittura del programma, si collega il PC alla scheda Arduino tramite cavo USB e lo si carica premendo la freccia in alto a sinistra.
(foto dell'autore).
Se si è commesso qualche errore di sintassi nella scrittura del programma, durante il caricamento, l'ambiente di programmazione di Arduino ci restituirà un errore dicendoci dove si trova e di che tipo è.
(Foto dell'autore)
Finalmente la nostra navicella è pronta e funzionante, pronta per il collaudo!
Quindi fin quando il pulsante non viene premuto rimane acceso solo il led verde.
(foto dell'autore)
Quando schiaccio il pulsante (nella foto lo sta premendo mia figlia di 3 anni), il led verde si spegne e i due led rossi iniziano a lampeggiare.
Ed ecco completato il nostro primo progettino con Arduino, dove abbiamo imparato le basi per utilizzare questo piccolo ma potentissimo microcontrollore.
Che nome complicato per 3 lucine comandate :)
Ma si deve seguire il manuale o puoi fare di testa tua per vedere cosa ne esce fuori e magari rivestirlo che non si vedano i vari collegamenti?
Puoi assolutamente fare di testa tua, puoi inventare tutto quello che vuoi. Il manuale serve solo come tutorial facendo degli esempi pratici per imparare. Anzi lo scopo è prendere talmente dimistichezza da inventare e realizzare progetti propri.
Si può mettere tutto dentro una scatola o rivestirlo e addirittura saldare il tutto su una basetta millefori (invece che usare la breadboard) e rendere il tutto definitivo. Così invece è una versione prototipale che puoi montare, smontare e modificare quante volte vuoi, riutilizzando tutti i componenti.
Interessante . Grazie per la delucidazione. Un giorno mi inventero qualcosa di sicuro :) 🤗
Commovente, non avevo ancora visto questo bel post.
Come ti avevo gia accennato, ci provai ma non mi trovai molto d'accordo con il C++ .
Bestemmie che fumava l'aria.
Anni prima comperavo una rivista di elettronica all interno della quale c'erano progettini simili, in allegato la basetta millefori, resistenze,diodi,led.
Ho comunque creato un oggetto del quale parlero' in un mio futuro post .
Figata spaziale :D
Eh si!
Bravissimo, arduino è veramente divertente e, a mio parere, un ottimo strumento per far avvicinare chiunque al magico mondo del DIY :)
Grazie
Molto bello è interessante. Anch'io ogni tanto mi diverto "a giocare" con Arduino...
Grazie! Così ogni tanto potremo anche collaborare!