ultimo aggiornamento 4 settembre 2016


JLCPCB - 2$ per prototipi di PCB, di qualsiasi colore. Produzione in 24 ore!
L'Azienda di prototipi PCB più popolare, con oltre 700.000 clienti in tutto il mondo!
Recati presso la JLCPCB, riceverai regali e coupon gratuiti
presso Maker Faire Rome il 18-20 ottobre


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:

OurPCB, your most reliable PCB and PCBA supplier.

Focusing on PCB Prototype and PCB Assembly Turnkey Services.

One-Stop Wire Harness & Cable Assemblies Solution

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