• SOFTWARE & HARDWARE
  • SOFTWARE & HARDWARE
  • PRIVACY POLICY
  • Assistenza On Line


    Orario delle lezioni

     
    Orario delle lezioni...

      Scritto da Prof. S. Giannitto  18/04/2013
    Totale Visite: 1624

    L’obiettivo è realizzare con Arduino un dispositivo capace di controllare un led RGB sulla base dei dati letti da tre potenziometri.

    Occorrente:

    • Arduino Uno (in questo caso abbiamo utilizzato un Arduino Mega ADK)
    • Breadboard
    • Un led RGB
    • Resitenze
    • 3 potenziometri (uno per ogni colore emesso dal led)
    • cavi di collegamento

    Come fare:

    Lo scopo è riuscire a controllare i tre canali di un led RGB attraverso dei potenziometri connessi alle porte analogiche del nostro Arduino.
    Un led RGB ha quattro pin: il più lungo è come al solito il catodo, mentre gli altri tre sono per i rispettivi colori. Sfruttando la PWM (modulazione di larghezza di impulso) è possibile controllare l’intensità di ogni singolo canale, in modo da poter creare tutti i colori possibili mischiando tra di loro rosso, verde e blu.

    Anche in questo caso vale lo stesso discorso per il potenziometro fatto nella guida precedente. I pin analogici leggono valori da 0 a 1023, mentre la funzione analogWrite(LED, val), con cui impostiamo la PWM, assume come secondo parametro un numero da 0 a 255. Bisogna dunque rapportare questi due intervalli in modo che girando il potenziometro il valore di fondo scala combacia con il valore massimo o minimo di intensità del colore.

    Costruiamo il circuito!

    Per iniziare posizionate 3 potenziometri come nello schema. Collegate i potenziometri ai +5V del vostro Arduino e alla GND (terra) e poi a tre pin analogici a vostra scelta. Come si può vedere dallo schema i pin dei colori del led RGB sono collegati alle porte digitali inserendo in serie resistenze da 100? per il blu e per il verde, mentre per il rosso sono state inserite 3 resistenze in serie per un totale di 180? = 100? + 47? + 33? (la resistenza singola da 180? è poco comune). Costruire il circuito come si può vedere è veramente semplice, vediamo ora il codice necessario per trasformare la nostra scheda Arduino in una lampada multicolore!

    Il codice:

    // dichiariamo la posizione dei pin digitali per il led RGB  #define RED 2  #define GREEN 4  #define BLUE 6 
    // e anche di quelli analogici per i potenziometri
    #define POT1 13
    #define POT2 7
    #define POT3 1
    // inizializziamo tre variabili intere che conterranno i valori
    // letti sui potenziometri
    int val1 = 0;
    int val2 = 0;
    int val3 = 0;
    void setup()
    {
    // rendiamo i pin digitali degli output
    pinMode(RED, OUTPUT);
    pinMode(GREEN, OUTPUT);
    pinMode(BLUE, OUTPUT);
    }

    void loop()
    {
    // leggiamo la posizione attuale di ogni potenziometro
    val1 = analogRead(POT1);
    val2 = analogRead(POT2);
    val3 = analogRead(POT3);
    // dividiamo il valore letto sui potenziometri per 4.01176 = 1023 / 255
    // (int) serve per troncare il risultato della divisione e considerare solo
    // la parte intera senza arrotondamento, questo tipo di operazione si chiama CAST
    val1 = (int) (val1/4.01176);
    val2 = (int) (val2/4.01176);
    val3 = (int) (val3/4.01176);
    // impostiamo l'intensità dei tre colori del led RGB sfruttando la PWM
    analogWrite(RED, val1);
    analogWrite(GREEN, val2);
    analogWrite(BLUE, val3);
    }


    Upgrade:

    A partire da questo semplice schema è ora possibile trasformare la scheda Arduino in una lampada, costruendo magari un struttura in carta, tipo origami, per diffondere meglio la luce del led RGB, che come potete vedere dal video è molto luminoso. Oppure è possibile implementare degli algoritmi nel codice per cambiare il colore della luce seguendo un pattern o modulare la luce in base alla temperatura o qualsiasi altra cosa vi passi per la mente. Massimo Banzi, uno dei padri di Arduino, nella sua guida “Getting Started with Arduino” , presentava un progetto dove definiva il colore del led RGB in base al numero di volte che determinate parole comparivano nel blog di Arduino. Se siete curiosi comprate la guida, altrimenti trovate il codice degli esempi a questo link.

     

     
     
    < Prec. Pros. >