ultimo aggiornamento 4 settembre 2016


 

Per il collegamento del Modulo RGB alla scheda Arduino Nano (e possibile anche utilizzare una Arduino 2009 o una Arduino UNO) occorre collegare la scheda e il modulo come riportato nello schema, si utilizzerà poi lo sketch per la prova.

Arduino-NANO-Fronte.JPG

Per la prova servono:

homotix

Riepilogo caratteristiche Arduino NANO

Microcontroller  

Atmel ATmega168 o Atmega328

Tensione di funzionamento  

5 V

Tensione in ingresso  

7-12 V (cosigliati)

Tensione in ingresso  

6-20 V (limiti)

I / O digitale  

14 pins (di cui 6 di fornire output PWM)

Ingresso analogico  

8 pins

Corrente continua per I / O  

40 mA

Flash Memory  

32 kB di cui 2 KB utilizzati dal bootloader

SRAM  

2 kB

EEPROM  

2 KB

Velocità di clock  

16 MHz

Dimensioni  

4,31 x 1,85 cm

Schema di collegamento

 

Sketch per Arduino

/*
 led_RGB.pde
 Programma per il test di un LED tipo RGB anodo comune
 
 Vengono utilizzati i seguenti pin
 Pin +5V         -> +5V
 Pin GND         -> GND
 Pin Digital 9   -> Led VERDE
 Pin Digital 10  -> Led BLU
 Pin Digital 11  -> Led ROSSO
 Pin Analocico 0 -> Potenziometro
 
 Creato il 8/1/2012
 da Adriano Gandolfo <https://www.adrirobot.it>
 This example code is in the public domain.
 */
//Definizione pin 
#define LED_GREEN 9
#define LED_BLUE 10
#define LED_RED 11
#define POT 0

unsigned long interval = 1000;
unsigned long previousMillis = 0;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  color_wheel();

}// Loop...


void RGB_led(int red_led, int green_led, int blue_led)
{
  analogWrite(LED_RED, red_led);
  analogWrite(LED_GREEN, green_led);
  analogWrite(LED_BLUE, blue_led);
}

void color_wheel()
{
  int red_val = 255;
  int green_val = 0;
  int blue_val = 0;
  int offset;

  int wheel = map(analogRead(POT), 0, 1023, 0, 1535);

  if( wheel <= 255 )      //Rosso al max + Verde in crescita
    green_val = wheel;    // ottengo al max il Giallo
  else if( wheel <= 511 )  //Verde al max + Rosso in diminuzione
  {
    red_val = abs(wheel - 511);  //Rosso va da 255 a 0
    green_val = 255;             //Verde lo tengo al max
  }
  else if( wheel <= 767 )  //Verde al max + Blu in crescita
  {				//(0, 255, 255) = Ciano
    red_val = 0;
    green_val = 255;  //Verde al max
    blue_val = wheel - 511;  //Blu in crescita da 0 a 255
  }
  else if( wheel <= 1023 )  //Blu al max + Verde in diminuzione
  {     //(0, 0, 255) = Blu
    red_val = 0;
    green_val =  abs(wheel - 1023); //Verde in diminuzione da 255 a 0
    blue_val = 255;  //Blu fisso al max
  }
  else if( wheel <= 1279 )   //Blu al max + Rosso in crescita
  {				  //(255, 0, 255) = Magenta
    red_val = wheel - 1023;  //Rosso aumenta da 0 a 255
    blue_val = 255;  //Blu fisso al max
  }
  else {	 //Rosso al max + Blu in diminuzione
    blue_val = abs(wheel - 1535);
  }
  if(millis() - previousMillis > interval)
  {
    previousMillis = millis();

    Serial.print("Potenziometro: ");
    Serial.print(wheel);
    Serial.print(", Rosso: ");
    Serial.print(red_val);
    Serial.print(", Verde: ");
    Serial.print(green_val);
    Serial.print(", Blu: ");
    Serial.println(blue_val);
  }
  RGB_led(red_val, green_val, blue_val);
}    

Foto di un modulo commerciale

In commercio esistono anche modulo RGB già pronti, nella foto il modulo denominato KY-009 RGB full color LED SMD module, per maggiori informazioni vedere la pagina dedicata.

 

Elenco revisioni
04/09/2016 Aggiornato pagina
14/01/2012 Emissione preliminare
Private Policy Cookie Policy