PWM (Pulse Width Modulation) i FOR Petlja
U prethodnoj lekciji objasnili smo osnovne karakteristike for petlje. U ovoj lekciji navest ćemo još neke primjere korištenja for petlje, ali istu ćemo obogatiti i upotrebom pulsno širinske modulacije.
U ovoj lekciji ćemo objasniti:
- Šta je PWM?
- Šema povezivanja i kod za kontrolu led dioda,
- Specifikacija materijala
Šta je PWM?
PWM (Pulse Width Modulation) ili na našem jeziku širinsko-impulsna modulacija jeste tehnika dobijanja analognih vrijednosti pomoću digitalnih impulsa konstantne amplitude. PWM signal se smatra digitalnim signalom jer je u svakom trenutku vremena nivo signala ili na nuli ili na maksimumu. Na Arduino PWM pinovima ovom tehnikom, odnosno upisivanjem različitih vrijednosti između 0 i 255, možemo dobiti vrijednosti izlaznih napona i između 0 i 5V, ne samo granične vrijednosti.
U grafičkom prikazu, zelene linije predstavljaju redovito vremensko razdoblje. Ovo trajanje ili razdoblje je obrnuto od PWM frekvencije. Drugim riječima, s Arduinom PWM frekvencijom na oko 500 Hz, zelene linije bi mjerile 2 svake milisekunde. Poziv na analogWrite() je na skali od 0 do 255, tako da analogWrite(255) zahtijeva 100% radni ciklus (uvijek uključen), a analogWrite(127) je 50% radnog ciklusa (na pola vremena) za primjer.
U nastavku su navedene najčešće korištene Arduino ploče sa PWM pinovima i frekvencijama.
Šema povezivanja i kod za kontrolu ked dioda:
Pa da krenemo sa Šemom i kodom. U slučaju da ne želite prepisivati kod sa slike, kliknite na ovaj GITHUB link i preuzmite kod iz ovog tutorijala, kao i od ostalih Tutorijala.
Povezivanje komponenti ćemo uraditi sljedećim redoslijedom:
Povezivanje senzora sa Arduinom i značenja boja:
- Zelena = pin 9 -> Otpornik 220Ω -> anoda led diode (+)
- Plava = GND (-)
Nakon što smo povezali led diodu sa kontrolerom vrijeme je za naš prvi PWM kod:
Kao što možete vidjeti, na slici su dva različita koda, a ishod im je isti. Razlika je samo što smo na lijevom primjeru for petlju proširili za jedan if uslov, a u desnom primjeru smo postavili dvije for petlje. Naravno, lijevom primjeru smo povećali delay i ubacili ispis Serial.print kako bi se uvjerili da se vrijednost povećava i smanjuje. Vaša dioda će se upaliti i povećavati do maksimalne vrijednosti, tj. vrijednosti 255 (5v), nakon čega će se po zadanoj brzini postepeno gasiti.
Specifikacija materijala:
- 1x Arduino Uno
- 1x Breadboard
- 3x Komunikacijski kablovi
- 1x Otpornik 220Ω
- 1x Led dioda
U ovoj lekciji naučili smo šta je to PWM i uvjerili se da koristeći petlje i uslove možemo na više načina postići istu stvar.