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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
#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