Ultima modifica il 30 Dicembre 2025 by Adriano
Vediamo come pilotare il modulo KY-009 RGB LED SMD, con un modulo Wemos D1 mini.
Il modulo LED contiene un LED rosso, blu e verde. Questi sono collegati tra loro tramite un catodo comune.
Per altri shield specifici per Wemos D1 mini vedere l’articolo Wemos D1 mini – Raccolta Shield disponibili

Indice
Il modulo KY-009 RGB full color LED
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 un’ampia gamma di colori mescolando rosso, verde e blu. La quantità di ciascun colore primario può venire regolata tramite un pilotaggio di tipo PWM.

La quantità di ciascun colore primario può venire regolata tramite un pilotaggio di tipo PWM.
Test del modulo
Vedremo adesso come collegare il modulo KY-009 al Wemos d1 mini
Materiale necessario
![]() |
![]() |
![]() |
Schema dei collegamenti
Per il pilotaggio dei tre tre LED presenti si utilizzeranno le porte D5, D6, D7. Si dovranno anche montare 3 resistenze limitatrici.
Data la tensione dei led pari a 3.3V si potranno utilizzare resistenze da 100 Ω per i led Blu e Verde e una resistenza da 150 Ω per il led Rosso.

Se si utilizza la Multi test shield per Wemos D1 mini, sarà sufficiente posizionare il modulo sul connettore JP3.
Alla limitazione della corrente che scorre verso i led contenuti nel led RGB tipo 5050, penseranno le resistenze già presenti sullo shield.
Sotto è riportato lo Sketch da caricare su Arduino
#define bluepin D5 // seleziona il pin per il LED blu
#define greenpin D7 // seleziona il pin per il LED verde
#define redpin D6 // seleziona il pin per il LED rosso
void setup() {
pinMode(bluepin, OUTPUT);
pinMode(greenpin, OUTPUT);
pinMode(redpin, OUTPUT);
}
void loop()
{
digitalWrite(redpin, HIGH); //Accende il led rosso
delay (1000);
digitalWrite(redpin, LOW); //Spegne il led rosso
digitalWrite(greenpin, HIGH); //Accende led verde
delay (1000);
digitalWrite(greenpin, LOW); //Spegne led verde
digitalWrite(bluepin, HIGH); //Accende led blu
delay (1000);
digitalWrite(bluepin, LOW); //Spegne led blu
digitalWrite(greenpin, HIGH); //Accende led verde
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
digitalWrite(redpin, LOW);
digitalWrite(greenpin, LOW);
digitalWrite(bluepin, LOW);
delay (2000);
}
Programma con utilizzo del display OLED
Se oltre al modulo KY-009 e al Wemos D1 mini, si possiede l’ OLED Shield per WeMos D1 mini, si potrà montarlo sul Wemos D1 mini, in questo caso, sul display saranno mostrati i comandi eseguiti.
Schema di collegamento

Ora si dovrà collegare la scheda Wemos D1 Mini al PC e compilare lo Sketch sotto riportato nella memoria del Wemos che lo eseguirà.
Visto l’utilizzo del display, occorrerà includere le librerie di gestione, per maggiori informazioni vedere l’articolo OLED Shield per WeMos D1 mini
#include "SPI.h"
#include "Wire.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
#define bluepin D5 // seleziona il pin per il LED blu
#define greenpin D7 // seleziona il pin per il LED verde
#define redpin D6 // seleziona il pin per il LED rosso
int val;
#define OLED_RESET 0 // GPIO0
Adafruit_SSD1306 display(OLED_RESET);
void setup() {
Serial.begin(9600);
pinMode(bluepin, OUTPUT);
pinMode(greenpin, OUTPUT);
pinMode(redpin, OUTPUT);
// Impostazione modulo display con indirizzo I2C addr 0x3C
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(2000);
// Cancellazione schermo e buffer
display.clearDisplay();
// Messaggio iniziale
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(" ADRIROBOT");
display.setTextColor(BLACK, WHITE); // Inverte il colore del testo
display.println(" SHIELD ");
display.println(" TEST FOR ");
display.println(" 37 IN 1 ");
display.println(" SENSOR ");
display.display();
delay(2000);
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println(" TEST ");
display.println(" MODULO ");
display.println(" KY-009 ");
display.display();
}
void loop()
{
display.fillRect(0, 30, 64, 15, BLACK);
display.setCursor(0, 30);
display.print("Led ROSSO");
display.display();
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");
display.display();
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");
display.display();
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");
display.display();
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");
display.display();
delay (200);
digitalWrite(redpin, LOW);
digitalWrite(greenpin, LOW);
digitalWrite(bluepin, LOW);
delay (2000);
}
Filmato del test
Nel filmato è possibile vedere lo Sketch in esecuzione.
Altri progetti









