27 dicembre 2011

6 - Arduino comanda led RGB


In questo progetto ho usato il mio Arduino per controllare l'illuminazione di due casette in legno che andranno ad allestire una vetrina natalizia.

Componenti utilizzati:
Due casette in legno, Arduino UNO, 2 led RGB, 2 led a luce bianca e alcune resistenze:

Descrizione:
Dopo aver costruito le casette ho pensato di mettere un illuminazione interna per renderle più carine, ho così inserito un led RGB e un led al luce bianca in ognuna di esse.
Essendo un led RGB ad anodo comune ho alimentato il piedino più lungo del led con i 5 volt di Arduino servendomi di un' opportuna resistenza, mentre gli altri 3 piedini li ho collegati ai pin 9,10,11 di Arduino. Così facendo, tramite la funzione "analogWrite" sono riuscito a controllare l'intensità dei 3 colori principali Red, Green e Blue ottenendo diverse tonalità di colore.
La funzione "analogWrite" permette di impostare un valore in uscita del pin che varia da 0 a 255.
Nel mio caso, avendo un led ad anodo comune otterrò:

AnalogWrite(PinRed, 0)  ------> luce rossa accesa
AnalogWrite(PinRed,255) -----> luce rossa spenta
AnalogWrite(PinRed,125) -----> luce rossa a mezza tonalità
...e così via!

Allo stesso modo comando sia la luce verde che la luce blu.
Per creare un gioco di luci in continuo cambiamento mi sono servito di cicli "For" per ottenere diverse tonalità di colore.
In fine per poter illuminare la parte laterale delle casette ho introdotto un semplice led a luce bianca che accendo e spengo casualmente.

Sketch Arduino:
Puoi scaricarlo qui!

Video:

5 - Arduino IR: pilotare macchinina con telecomando della TV


Descrizione:
In questo progetto ho realizzato una macchinina pilotabile dal telecomando della TV servendomi di un semplice ricevitore IR con preamplificatore e della libreria "IRremote".

Componenti utilizzati: ArduinoUNO, macchina telecomandata, driver L298N, batteria per macchinina telecomandata, telecomando televisore SONY, ricevitore IR preamplificato.



Procedimento:
1- Smontare un macchinina telecomandata mantenendo solamente i motori;
2 - Creare e caricare lo sketch per Arduino (potete usare il mio!);
3 - Preparare una piccola antenna per la macchinina con in cima il il ricevitore IR che andrà collegato ad Arduino in modo che il segnale arrivi sul pin 9;
4 - Collegare i motori della macchinina ad Arduino servendosi del driver L298N;
5 - Alimentare il tutto con una batteria.

Come funziona il programma?
Grazie al ricevitore IR e alla libreria IRremote.h possiamo leggere la codifica esadecimale del pulsante del telecomando che abbiamo premuto.
Nel mio caso, usando un telecomando SONY, ho usato i seguenti tasti:

TASTO TELECOMANDO   >      CODIFICA     >   MOVIMENTO CONTROLLATO

                   2                         >         810               >                 AVANTI
                   1                         >         10                 >                 AVANTI A SINISTRA
                   3                         >         410               >                 AVANTI A DESTRA
                   4                         >         C10              >                 SINISTRA (inutile)
                   5                         >         210               >                 FRENO (spegne i motori)
                   6                         >         A10              >                 DESTRA (inutile)
                   7                         >         610               >                 INDIETRO A SINISTRA
                   8                         >         E10              >                 INDIETRO
                   9                         >         110               >                 INDIETRO A DESTRA


Sketch Arduino:
Scaricare sketch Arduino da qui!


Osservazioni e suggerimenti:
La libreria IRremote.h non contiene la codifica dei telecomandi di tutte le marche!
Nel mio sketch ho lasciato la possibilità di leggere tramite monitor seriale la codifica del tasto schiacciato sul telecomando.
Per verificare la compatibilità del proprio telecomando basterà premere un tasto e se Arduino stamperà su monitor seriale una codifica esadecimale vorrà dire che la libreria "IRremote.h"comprende quella marca.

Video: