- Materials necessaris:
- LDR:
- LED RGB:
- Esquema de connexions:
- Explicació de la programació:
- Funcionament de la làmpada de barreja de colors Arduino:
Què passa si podem generar diferents colors amb un únic led RGB i fer que el racó de la nostra habitació sigui més atractiu? Així doncs, aquí teniu un senzill llum de barreja de colors basat en Arduino que pot canviar de color quan hi hagi un canvi de llum a l’habitació. Per tant, aquesta làmpada canviarà automàticament el seu color segons les condicions de llum de l'habitació.
Tots els colors són la combinació de color vermell, verd i blau. Per tant, podem generar qualsevol color mitjançant colors vermells, verds i blaus. Així doncs, aquí variarem la intensitat de la llum PWM en els LDR. Això canviarà encara més la intensitat del color vermell, verd i blau del LED RGB i es produiran diferents colors.
A la taula següent es mostren les combinacions de colors amb el canvi respectiu en els cicles de treball.
Materials necessaris:
- 1 x Arduino UNO
- 1 x Taula de pa
- 3 resistències de 220 ohms
- Resistències de 3 x 1 quilohm
- Filferros de pont
- 3 x LDR
- 3 tires de colors (vermell, verd, blau)
- 1 x LED RGB
LDR:
Utilitzarem la fotoresistència (o resistència dependent de la llum, LDR o cèl·lula fotoconductora) aquí en aquest circuit. Els LDR estan fets de materials semiconductors per permetre’ls tenir les seves propietats sensibles a la llum. Aquests LDR o FOTO RESISTORS funcionen segons el principi de "Conductivitat fotogràfica". Ara bé, el que diu aquest principi és que cada vegada que la llum cau sobre la superfície del LDR (en aquest cas) augmenta la conductància de l’element o, dit d’una altra manera, la resistència del LDR cau quan la llum cau sobre la superfície del LDR. Aquesta propietat de la disminució de la resistència per al LDR s’aconsegueix perquè és una propietat del material semiconductor utilitzat a la superfície.

Aquí s’utilitzen tres sensors LDR per controlar la brillantor dels LED vermells, verds i blaus individuals a l’interior del LED RGB. Obteniu més informació sobre com controlar LDR amb Arduino aquí.
LED RGB:
Hi ha dos tipus de LED RGB, un és de tipus càtode comú (negatiu comú) i un altre és de tipus ànode comú (positiu comú). A CC (càtode comú o negatiu comú), hi haurà tres terminals positius cada terminal que representa un color i un terminal negatiu que representa els tres colors.


Al nostre circuit utilitzarem el tipus CA (Common Anode o Common Positive). En el tipus d'ànode comú, si volem que estigui encès el LED VERMELL, hem de posar a terra el pin LED VERMELL i alimentar el positiu comú. El mateix passa amb tots els LED. Apreneu aquí a la interfície del LED RGB amb Arduino.
Esquema de connexions:

El diagrama complet del circuit d’aquest projecte es dóna a la part superior. La connexió de + 5V i de terra que es mostra al diagrama del circuit es pot obtenir a partir del pin de 5V i de terra de l’Arduino. El propi Arduino es pot alimentar des del portàtil o mitjançant la presa de corrent continu mitjançant un adaptador de 12V o una bateria de 9V.
Utilitzarem PWM per canviar la brillantor del led RGB. Podeu obtenir més informació sobre PWM aquí. Aquests són alguns exemples de PWM amb Arduino:
- Font d'alimentació variable d'Arduino Uno
- Control del motor de CC mitjançant Arduino
- Generador de tons basat en Arduino
Explicació de la programació:
En primer lloc, declarem totes les entrades i pins de sortida com es mostra a continuació.
byte const red_sensor_pin = A0; byte const green_sensor_pin = A1; byte const blue_sensor_pin = A2; byte const green_led_pin = 9; byte const blue_led_pin = 10; byte const red_led_pin = 11;
Declareu els valors inicials dels sensors i dels leds com a 0.
unsigned int red_led_value = 0; unsigned int blue_led_value = 0; unsigned int green_led_value = 0; unsigned int red_sensor_value = 0; unsigned int blue_sensor_value = 0; unsigned int green_sensor_value = 0; void setup () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Serial.begin (9600); }
A la secció de bucle, prendrem sortida de tres sensors amb analogRead (); funcionen i emmagatzemen en tres variables diferents.
bucle buit () { red_sensor_value = analogRead (red_sensor_pin); retard (50); blue_sensor_value = analogRead (blue_sensor_pin); retard (50); green_sensor_value = analogRead (green_sensor_pin);
Imprimiu aquests valors al monitor sèrie per tal de depurar-los
Serial.println ("Valors del sensor cru:"); Serial.print ("\ t Vermell:"); Serial.print (valor_sensor_red); Serial.print ("\ t Blau:"); Serial.print (blue_sensor_value); Serial.print ("\ t Verd:"); Serial.println (green_sensor_value);
Obtindrem els valors de 0-1023 dels sensors, però els nostres pins Arduino PWM tenen 0-255 valors com a sortida. Per tant, hem de convertir els nostres valors en brut a 0-255. Per a això hem de dividir els valors en brut per 4 O simplement podem utilitzar la funció de mapatge d'Arduino per convertir aquests valors.
red_led_value = red_sensor_value / 4; // defineix LED vermell blue_led_value = blue_sensor_value / 4; // defineix LED blau green_led_value = green_sensor_value / 4; // defineix Led verd
Imprimiu els valors assignats al monitor sèrie
Serial.println ("Valors del sensor assignats:"); Serial.print ("\ t Vermell:"); Serial.print (red_led_value); Serial.print ("\ t Blau:"); Serial.print (blue_led_value); Serial.print ("\ t Verd:"); Serial.println (green_led_value);
Utilitzeu analogWrite () per configurar la sortida del LED RGB
analogWrite (red_led_pin, red_led_value); // indica LED vermell analogWrite (blue_led_pin, blue_led_value); // indica LED blau analogWrite (green_led_pin, green_led_value); // indica verd
Funcionament de la làmpada de barreja de colors Arduino:

Com que fem servir tres LDR, per tant, quan incideix la llum en aquests sensors, la seva resistència canvia, ja que els voltatges també canvien als pins analògics d'Arduino, que actua com a pins d'entrada per als sensors.
Quan la intensitat de la llum canvia en aquests sensors, el LED respectiu en RGB brillarà amb una quantitat de resistència que canvia i tenim diferents mescles de colors en led RGB mitjançant PWM.
