PWM + Funkcija + RGB LED dioda 16.000.000 Boja
Ova lekcija je nastavak lekcije “Komanda Random i LED Diode”.
U ovoj lekciji ćemo objasniti:
- Nešto više o RGB diodama
- Šema povezivanja i kod za kontrolu RGB led diode,
- Specifikacija materijala
Nešto više o RGB diodama
Već u prvoj rečenici najavili smo kako je ovo nastavak lekcije, pa kako ne bi ponavljali osnovne karakteristike, za one koji prvi put citaju StarmoTech tutorijale, molim Vas da procitate prethodne.
Pa da krenemo:
Crvena, zelena i plava su primarne boje. Receptori za boje ljudskog oka najosjetljiviji su na primarne boje. Primarne boje su one koje se ne mogu stvoriti miješanjem drugih boja. Međutim, sve druge boje mogu se dobiti miješanjem primarnih boja u različitim omjerima. Najveći niz vidljiv ljudskom oku nastaje međusobnim miješanjem primarnih boja s punim intenzitetom postojeće boje. Kako bi nam napisana teorija bila jasnija pogledajmo sliku:
Kao što smo prethodno rekli, na slici možete vidjeti da PWM kombinacijom Crvene, Zelene i Plave boje možete dobiti skoro svaku boju. Matematički gledano to bi bilo 255x255x255 = 16.581.375 različitih kombinacija. Skoro svaki softver za fotografije ima mješač boja (color mixer), ali ja cu Vam na dnu lekcije ostaviti 2 linka na “W3Schools” gdje ce te u par klikova dobiti PWM kombinaciju boje koju zaželite. 100% sam siguran da će Vam se jedna od 16 miliona boja svidjeti. Kao na sljedećoj slici, meni lično je draži drugi primjer iz razloga što mi daje više slobode da jednostavnim pomicanjem miša dobijem željenu boju.
Na gornjoj slici, na mjestu gdje piše RGB šifra, ne morate mišem pomjerati klizač, već jednostavno kliknite na šifru i ručno unesite željeni broj i vidite da li Vam se rezulrat sviđa.
Šema povezivanja i kod za kontrolu RGB led diode
Pošto smo u lekciji “Šta su to Funkcije i kako se koriste” kao primjer koristili RGB Led diodu i palili jednu po jednu osnovnu boju, sada ćemo unaprijediti tu funkciju.
Kao što možete vidjeti u animaciji iznad, u funkciji pod nazivom blinkLed imamo četiri parametra i to varijablu int rVal , int bVal, int gVal i int duration. Na osnovu samih naziva jasno Vam je da varijabla rVal označava Crvenu vrijednost, bVal označava Plavu vrijednost i gVal označava Zelenu vrijednost, dok je duration odgoda ili delay. Ovaj kod je malokompleksniji od prethodnog ali sam siguran da Vam nije previše strašan. također razlika je što smo u prethodnom kodu koristili digitalWrite jer smo imali samo dva stanja tj. 1 (HIGH) i 0 (LOW), dok smo sada koristili PWM modulaciju i analogWrite.
Samo jednom linijom koda, tačnije, pozivom funkcije blinkLed unesemo željeni redoslijed PWM vrijednosti i dobit ćemo boju koju želimo. Ako neku boju želimo duže gledati promjenimo zadnji parametar u millisekundama i to je to.
Prisjetimo se da je raspon PWM modulacije od 0 do 255 tj. 0 = 0V, a 255 = 5V.
Nakon što proučite ovih 20-ak linija koda, pokušajte ovaj kod napisati bez funkcije, pa ćete najbolje shvatiti zašto su nam bitne funkcije!
Specifikacija materijala:
- 1x Arduino Uno
- 1x Breadboard
- 3x Otpornik 220Ω
- 1x RGB Led dioda
- 5x Komunikacijski kablovi
Koristeći TinkerCad raspored pinova na RGB diodi je crvena, plava, zelena, dok je raspored na pravoj RGB diodi crvena zelena plava, ali siguran sam da ćete se snaći u kodu.
Link 1: https://www.w3schools.com/colors/colors_picker.asp
Link 2: https://www.w3schools.com/colors/colors_rgb.asp