Il
modulo KY-009 RGB
full color LED Module , si presenta come una piccolo circuito
che misura 18,5 millimetri x 15mm, su di esso è montato un LED RGB tipo
5050 SMD e un connettore a 4 pin. Il LED può emette una ampia gamma di
colori mescolando rosso, verde e blu. La quantità di ciascun colore
primario può venire regolata tramite un pilotaggio di tipo PWM.
Il modulo compatibile con le piattaforme di elettronica più popolari
come Arduino, Raspberry Pi e ESP8266, può operare ad una temperatura di
esercizio da -25 ° C a 85 ° C.
ATTENZIONE:
Per il collegamento del modulo occorre fare attenzione, in quanto in commercio
esistono due versioni che differiscono per la disposizione dei PIN, in una sono: -GRB come presenti all'interno del componente, mentre in altri moduli i pin sono
nell'ordine -RGB.
Per alimentare i tre led che compongono il
modulo KY-009,
é necessario limitare la corrente di alimentazione, pena la distruzione
immediata della giunzione del led stesso, si useranno per questo delle semplici
resistenze il cui valore potrà essere calcolato con la
legge degli ohm
, conoscendo le caratteristiche del led che si và ad alimentare, e la
tensione di alimentazione.
Tensione di alimentazione considerataVin
5V
Tensione di soglia per i led Rosso Vf
1.8V ~ 2.4V
Tensione di soglia per i led
Verde Vf
2.8V ~ 3.6V
Tensione di soglia per i led
Blu Vf
2.8V ~ 3.6V
Corrente If
20 ~ 30mA
Per cui applicando la formula
R = (Vpin – Vf)/If
Si potrà anche calcolare la potenza che dovrà dissipare con la formula
W = (Vpin - Vf) x If
da cui si ottiene
Resistenza per il Led Rosso (5-2)/0,02 =
150Ώ
con una potenza di (5-2)x0,02=
60 mW
per cui si potrà usarne una da 1/4W (0,25W)
Resistenza per il Led Verde-Blu (5-3)/0,02 =
100Ώ
con una potenza di (5-3)x0,02=
40 mW
per cui si potrà usarne una da 1/4W (0,25W)
Esempio di codice
per il modulo KY-009 , lo sketch mostra prima i tre colori base poi l'unione dei
tre che è luce bianca, quindi varia i colori cambiando il
valore PWM su ciascuno dei tre colori primari.
/*
Programma:code_KY-009.ino
Programma test per RGB full color LED SMD module
Su Arduino sono utilizzati i seguenti pin:
Pin GND -> Pin - modulo
Pin 4 -> Pin R modulo 160 ohm
Pin 3 -> Pin G modulo 110 ohm
Pin 2 -> Pin B modulo 110 ohm
Ultima modifica il 4/9/2016
Applicazione realizzata da Adriano Gandolfo
Sito https://www.adrirobot.it
Blog http://it.emcelettronica.com/author/adrirobot
Pagina Facebook https://www.facebook.com/Adrirobot-318949048122955
Istagram https://www.instagram.com/adrirobot/
This example code is in the public domain.
*/
int bluepin = 2; //seleziona il pin per il LED blu
int greenpin = 3;// seleziona il pin per il LED verde
int redpin = 4; //seleziona il pin per il LED rosso
int val;
void setup() {
pinMode(bluepin, OUTPUT);
pinMode(greenpin, OUTPUT);
pinMode(redpin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(redpin, HIGH); //Accende il led rosso
delay (1000);
digitalWrite(redpin, LOW); //Spegne il led rosso
digitalWrite(bluepin, HIGH); //Accende led blu
delay (1000);
digitalWrite(bluepin, LOW); //Spegne led blu
digitalWrite(greenpin, HIGH); //Accende led verde
delay (1000);
digitalWrite(redpin, HIGH); //Accende il led rosso
digitalWrite(bluepin, HIGH); //Accende il led blu
// Essendoi accesi i tre led il colore emesso è il bianco
delay (1000);
// Spegna tutti i tre led
digitalWrite(redpin, LOW);
digitalWrite(greenpin, LOW);
digitalWrite(bluepin, LOW);
delay (1000);
for (val = 255; val > 0; val--)
{
analogWrite(redpin, val); //imposta il valore PWM per il rosso
analogWrite(bluepin, 255 - val); //imposta il valore PWM per il blu
analogWrite(greenpin, 128 - val); //imposta il valore PWM per il verde
Serial.println(val, DEC); //scrive il valore corrente
delay(1);
}
for (val = 0; val < 255; val++)
{
analogWrite(redpin, val); //imposta il valore PWM per il rosso
analogWrite(bluepin, 255 - val); //imposta il valore PWM per il blu
analogWrite(greenpin, 128 - val); //imposta il valore PWM per il verde
Serial.println(val, DEC); //scrive il valore corrente
delay(1);
}
// Spegna tutti i tre led
digitalWrite(redpin, LOW);
digitalWrite(greenpin, LOW);
digitalWrite(bluepin, LOW);
delay (1000);
}
Tramite il
sensore TCS3200, viene riconosciuto uno dei colori fondamentali
dell'oggetto posto di fronte al sensore. A questo punto viene acceso il relativo
led presente nel modulo KY-009 e tramite il modulo audio JQ6500
Arduino pronuncia a voce il relativo colore.
Il Multi Test Shield è uno shield auto
costruito realizzato per testare la serie di sensori
contenuti nella confezione "37
in 1 Sensor Module Board Set" compatibile con la scheda Arduino UNO R3 originale e
relativi cloni.
Sulla scheda sono disponibili molti connettori che risultano già opportunamente
collegati con le porte digitali o analogiche di Arduino.
In realtà, la scheda, oltre ai sensori presenti nel kit "37 in 1 Sensor
Module Board Set" permette di testare altri sensori, servo, ecc per un
totale di oltre 50 tipi, la presenza di un connettore bus I2C espande
ulteriormente la tipologia di dispositivi che lo shield permette.
Sulla scheda è anche presente un connettore per il
collegamento di un piccolo
Display OLED da 0.95"risoluzione
96x64 pixel, 65536 Colori, su di esso potranno essere mostrati dei
messaggio o i valori misurati dai sensori.
Per l'utilizzo occorrerà semplicemente posizionare il
sensore sul connettore JP5, facendo riferimento a quanto riportato sul PCB. In
questo modo i pin del modulo risulteranno automaticamente collegati ai relativi
pin: S al pin D2, il centrale a +5V e - a GND.
Il programma accenderà in sequenza i tre led interni
rosso, blu, verde in sequenza e poi simultaneamente per l'emissione della luce
bianca.
Mostrerà sul display OLED le varie fasi di esecuzione del programma
/*####################################################################
FILE: shield_test_code_KY-009.ino
VERSION: 1.0
Descrizione: Programma per test modulo
KY-009 RGB full color LED SMD modules
Creato il 16/8/2018 da Adriano Gandolfo
Sito web http://www.adrirobot.it
Blog http://it.emcelettronica.com/author/adrirobot
Pagina Facebook https://www.facebook.com/Adrirobot-318949048122955
Istagram https://www.instagram.com/adrirobot/
This example code is in the public domain.
#################################################################### */
// Definizione dei pin di collegamento
#define sclk 13
#define mosi 11
#define cs 10
#define rst 9
#define dc 8
// Il modulo va montato si JP5
#define greenpin 7 // seleziona il pin per il LED verde G
#define redpin 6 // seleziona il pin per il LED rosso R
#define bluepin 5 // seleziona il pin per il LED blu B
// Definizione dei colori
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1331.h>
#include <SPI.h>
Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, rst);
void setup() {
Serial.begin(9600);
display.begin();
pinMode(bluepin, OUTPUT);
pinMode(greenpin, OUTPUT);
pinMode(redpin, OUTPUT);
// Messaggio iniziale
display.fillScreen(BLACK);
display.setTextSize(1);
display.setTextColor(BLUE);
display.setRotation(2); //Ruota display
display.setCursor(0, 0);
display.println(" ADRIROBOT");
display.setTextColor(GREEN);
display.println(" SHIELD ");
display.println(" TEST FOR ");
display.println(" 37 IN 1 ");
display.println(" SENSOR ");
delay(2000);
display.fillScreen(BLACK);
display.setTextColor(YELLOW);
display.setCursor(0, 0);
display.println(" TEST ");
display.println(" MODULO ");
display.println(" KY-009 ");
}
void loop()
{
display.setTextColor(MAGENTA);
display.fillRect(0, 30, 64, 15, BLACK);
display.setCursor(0, 30);
display.print("Led ROSSO");
delay (200);
digitalWrite(redpin, HIGH); //Accende il led rosso
delay (1000);
digitalWrite(redpin, LOW); //Spegne il led rosso
display.fillRect(0, 30, 64, 15, BLACK);
display.setCursor(0, 30);
display.print("Led BLU");
delay (200);
digitalWrite(bluepin, HIGH); //Accende led blu
delay (1000);
digitalWrite(bluepin, LOW); //Spegne led blu
display.fillRect(0, 30, 64, 15, BLACK);
display.setCursor(0, 30);
display.print("Led VERDE");
delay (200);
digitalWrite(greenpin, HIGH); //Accende led verde
delay (1000);
display.fillRect(0, 30, 64, 15, BLACK);
display.setCursor(0, 30);
display.print("Led BIANCO");
delay (200);
digitalWrite(redpin, HIGH); //Accende il led rosso
digitalWrite(bluepin, HIGH); //Accende il led blu
// Essendo accesi i tre led il colore emesso è il bianco
delay (1000);
// Spegne tutti i tre led
display.fillRect(0, 30, 64, 15, BLACK);
display.setCursor(0, 30);
display.print("SPENTO");
delay (200);
digitalWrite(redpin, LOW);
digitalWrite(greenpin, LOW);
digitalWrite(bluepin, LOW);
delay (2000);
}
Proviamo il modulo KY-009 RGB full color
LED SMD module, tramite il che
Multitest Wemos shields con cui si possono sperimentare la serie di
sensori contenuti nella confezione "37
in 1 Sensor Module Board Set" che è venduta da molti siti.
La quantità di ciascun colore primario può venire regolata tramite un pilotaggio
di tipo PWM, il modulo deve essere montato sul connettore JP3 come mostrato in
figura.
la limitazione della corrente che scorre
verso i led contenuti nel led RGB tipo 5050, viene fatto dalle resistenze già
presenti sullo shield.
Se disponibile inserire il display nel connettore come mostrato in figura, il
suo utilizzo non è indispensabile all'esecuzione del programma.
Ora si dovrà collegare la scheda Wemos D1 Mini al PC e compilare il
programma (scaricabile da questo link)
nella memoria del Wemos che lo eseguirà.