- Mga kinakailangang materyal:
- LDR:
- RGB LED:
- Diagram ng Circuit:
- Paliwanag sa Programming:
- Paggawa ng Arduino Color Mixing Lamp:
Paano kung makakalikha tayo ng iba't ibang kulay gamit ang isang solong RGB na humantong at gawing mas kaakit-akit ang sulok ng aming silid? Kaya, narito ang isang simpleng Arduino based color paghahalo ng lampara na maaaring magbago ng kulay kapag may pagbabago sa ilaw sa silid. Kaya't ang lampara na ito ay awtomatikong magbabago ng kulay nito ayon sa mga kundisyon ng ilaw sa silid.
Ang bawat kulay ay ang kumbinasyon ng kulay Pula, berde at Asul. Kaya maaari kaming makabuo ng anumang kulay sa pamamagitan ng paggamit ng pula, berde at asul na mga kulay. Kaya, dito ay magkakaiba ang PWM ibig sabihin, ang tindi ng ilaw sa LDR. Mapapabago pa nito ang tindi ng pula, berde at asul na kulay sa RGB LED, at magkakaroon ng iba't ibang kulay.
Ipinapakita ng talahanayan sa ibaba ang mga kumbinasyon ng kulay na may kanya-kanyang pagbabago sa mga cycle ng tungkulin.
Mga kinakailangang materyal:
- 1 x Arduino UNO
- 1 x Breadboard
- 3 x 220-ohm resistors
- 3 x 1-kilohm resistors
- Jumper wires
- 3 x LDRs
- 3 x may kulay na mga piraso (pula, berde, asul)
- 1 x RGB LED
LDR:
Gagamit kami ng photoresistor (o light-dependant resistor, LDR, o photo-conductive cell) dito sa circuit na ito. Ang mga LDR ay ginawa mula sa mga materyales na semiconductor upang paganahin ang mga ito na magkaroon ng kanilang mga light-sensitive na katangian. Gumagana ang mga LDR na ito o LABAGAN ng LABOT sa prinsipyo ng "Pagkontrol ng Larawan". Ngayon kung ano ang sinasabi ng prinsipyong ito ay, tuwing bumagsak ang ilaw sa ibabaw ng LDR (sa kasong ito) tataas ang pag-uugali ng elemento o sa madaling salita, ang paglaban ng LDR ay bumagsak kapag bumagsak ang ilaw sa ibabaw ng LDR. Ang pag-aari na ito ng pagbawas ng paglaban para sa LDR ay nakakamit sapagkat ito ay isang pag-aari ng materyal na semiconductor na ginamit sa ibabaw.
Dito ginagamit ang tatlong mga sensor ng LDR upang makontrol ang liwanag ng indibidwal na Red, Green at Blue LED sa loob ng RGB Led. Dagdagan ang nalalaman tungkol sa pagkontrol sa LDR sa Arduino dito.
RGB LED:
Mayroong dalawang uri ng RGB LEDs, ang isa ay karaniwang uri ng cathode (karaniwang negatibo) at iba pa ay karaniwang uri ng anode (karaniwang positibo) na uri. Sa CC (Common Cathode o Common Negative), magkakaroon ng tatlong positibong mga terminal ng bawat terminal na kumakatawan sa isang kulay at isang negatibong terminal na kumakatawan sa lahat ng tatlong mga kulay.
Sa aming circuit gagamitin namin ang uri ng CA (Karaniwang Anode o Karaniwang Positive). Sa uri ng Karaniwang Anode, kung nais nating maging ON ang RED LED, kailangan nating ground ang RED LED pin at bigyan ng kapangyarihan ang karaniwang positibo. Ang parehong napupunta para sa lahat ng mga LEDs. Alamin dito upang i-interface ang RGB LED sa Arduino.
Diagram ng Circuit:
Ang kumpletong diagram ng circuit ng proyektong ito ay ibinigay sa itaas. Ang + 5V at koneksyon sa lupa na ipinakita sa circuit diagram ay maaaring makuha mula sa 5V at ground pin ng Arduino. Ang Arduino mismo ay maaaring pinalakas mula sa iyong laptop o sa pamamagitan ng DC jack gamit ang isang 12V adapter o 9V na baterya.
Gagamitin namin ang PWM upang baguhin ang ningning ng RGB led. Maaari kang matuto nang higit pa tungkol sa PWM dito. Narito ang ilang mga halimbawa ng PWM kasama si Arduino:
- Variable Power Supply Ni Arduino Uno
- DC Motor Control gamit ang Arduino
- Batay sa Tono Generator ng Arduino
Paliwanag sa Programming:
Una, idineklara namin ang lahat ng mga input at output pin tulad ng ipinakita sa ibaba.
const byte red_sensor_pin = A0; const byte green_sensor_pin = A1; Const byte blue_sensor_pin = A2; const byte green_led_pin = 9; Const byte blue_led_pin = 10; const byte red_led_pin = 11;
Ipahayag ang mga paunang halaga ng mga sensor at leds bilang 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); }
Sa seksyon ng loop, kukuha kami ng output ng tatlong mga sensor na may analogRead (); pagpapaandar at pag-iimbak sa tatlong magkakaibang mga variable.
void loop () { red_sensor_value = analogRead (red_sensor_pin); antala (50); blue_sensor_value = analogRead (blue_sensor_pin); antala (50); green_sensor_value = analogRead (green_sensor_pin);
I-print ang mga halagang iyon sa serial monitor para sa layunin ng pag-debug
Serial.println ("Mga Halaga ng Raw Sensor:"); Serial.print ("\ t Pula:"); Serial.print (red_sensor_value); Serial.print ("\ t Blue:"); Serial.print (blue_sensor_value); Serial.print ("\ t Green:"); Serial.println (green_sensor_value);
Makakakuha kami ng 0-1023 na halaga mula sa mga sensor ngunit ang aming mga pin na Arduino PWM ay mayroong 0-255 na halaga bilang output. Kaya kailangan nating baguhin ang aming mga hilaw na halaga sa 0-255. Para doon kailangan nating hatiin ang mga hilaw na halaga ng 4 O simpleng maaari naming magamit ang pag-andar ng pagmamapa ng Arduino upang i-convert ang mga halagang ito.
red_led_value = red_sensor_value / 4; // tukuyin ang Red LED blue_led_value = blue_sensor_value / 4; // tukuyin ang Blue LED green_led_value = green_sensor_value / 4; // tukuyin ang Green Led
I-print ang mga na-map na halaga sa serial monitor
Serial.println ("Mga Halaga ng Mapa ng Sensor:"); Serial.print ("\ t Pula:"); Serial.print (red_led_value); Serial.print ("\ t Blue:"); Serial.print (blue_led_value); Serial.print ("\ t Green:"); Serial.println (green_led_value);
Gumamit ng analogWrite () upang itakda ang output para sa RGB LED
analogWrite (red_led_pin, red_led_value); // ipahiwatig ang pulang LED analogWrite (blue_led_pin, blue_led_value); // ipahiwatig ang asul na LED analogWrite (green_led_pin, green_led_value); // ipahiwatig na berde
Paggawa ng Arduino Color Mixing Lamp:
Habang gumagamit kami ng tatlong LDR's kaya, kapag ang magaan na insidente sa mga sensor na ito, nagbabago ang paglaban bilang isang resulta na ang mga voltages ay nagbabago din sa mga analog pin ng Arduino na kumikilos bilang isang mga input pin para sa mga sensor.
Kapag ang tindi ng mga pagbabago sa ilaw sa mga sensor na ito, kani-kanilang humantong sa RGB ay mamula-mula sa pagbabago ng dami ng paglaban at mayroon kaming magkakaibang paghahalo ng kulay sa RGB na humantong gamit ang PWM.