-Fading LED
Okej, svetleći krug smo savladali (nadam se), sada ćemo ponovo raditi sa LED, ali ovog
puta samo sa jednom. U ovom tutorijalu pokazaćemo kako manuelno možemo smanjivati
i pojačavati osvetljenje LED korišćenjem PWM signala.
Arduino
Kratkosponici
1 LED
330R otpornik
Obrtni potenciometar
Ono što je novo je to što do sada nismo radili sa PWM signalima (šta je PWM – pročitaj OVDE-
SIGNALI), kao i to što ćemo po prvi put koristiti analogni ulaz na Arduinu.
Analogni signal
Analogni signal predstavlja kontinualan signal. Taj signal moze imati neogranicenu vrednost i
svakave oblike. Na slici ispod je prikazan primer jednog oblika analognog signala.
analogni sinusoidni signal
Digitalni signal
U digitalnim sistemima prenos podataka vrši se digitalnim pravougaonim signalima, koji za
razliku od analognih imaju samo 2 vrednosti, tj. 2 stanja. Oni predstavljaju stanje logičke 0 i
logičke 1 i sve se izražava putem ta 2 stanja, stanje kada nema napona (logička 0) i stanje kada
ima napona (logička 1).
U zavisnosti od namene kola koriste se logički nivoi 24V, 15V, 12V, 9V, 5V, 3.3V, 1.8V i
manje. Za nas je najbitniji nivo 5V (kada ima napona od 5V taj signal predstavlja logičku 1)
koji koristi naš Arduino za kontrolu periferija (I/O pinovi), takodje 5V logika predstavlja u
današnje vreme školski primer za digitalnu elektroniku. Na slici ispod prikazan je primer jednog
digitalnog signala.
digitalni pravougaoni signal
PWM
PWM signal (Pulse Width Modulation) ili impulsno širinski modulisan signal koristi se kada
želimo da izimitiramo neki analogni signal, jer digitalni sistemi nisu u stanju da proizvode
analogne signale. Ovi signali nam služe na primer kada želimo da podešavamo osvetljenost
nekog LCD ekrana, dakle, kako ne bi bilo samo 1 ili 0, tj. samo najsvetlije i bez svetla, mi
koristimo PWM da podešavamo vrednost osvetljenosti koja je između „najsvetlijeg“ i „bez
svetla“.
Takođe moram napomenuti da postoje A/D konvertori koji pretvaraju analogni u digitalni
signal. A/D konvertore poseduju svi (ili makar velika većina) mikrokontrolera, kako bi neku
analognu veličinu izrazili digitalnim binarnim veličinama i mogli da manipulišu tim podacima.
Ovo je bilo nešto najelementarnije o signalima, vrlo kratak tekst jer me je iskreno mnogo
mrzelo da ga napišem, što se može videti u razlici između vremena objavljivanja ovog i
Oni predstavljaju otpornike koji menjaju svoje otpornosti prilikom obrtanja kliznog kontakta
koji klizi između 2 kraja otporničke trake, što se može predstaviti i kao razdelnik napona. Oni
su mehanički sklop pa su zato podložni brzom habanju, ali za naše potrebe kvalitet nije od
presudne važnosti.
Povezivanje
Potenciometar se povezuje tako što ćemo njegov srednji izvod povezati sa analognim ulazom
na Arduinu, a ostala 2 izvoda povezati za GND i +5V. Arduino poseduje 10-bitni A/D konvertor
koji analogne vrednosti konvertuje u digitalne u rasponu od 0-1023 (2na10), a PWM izlaz ima
8-bitni opseg, tačnije od 0-255 (2na8). Razlike u rasponima ćemo regulisati softverski.
LED povezati kao i u dosadašnjim tutorijalima, s tim što ovaj put moramo obratiti pažnju na to
da li digitalni izlaz na koji povezujemo LED ima mogućnost generisanja PWM signala (kod
Uno modela to su pinovi 3, 5, 6, 9, 10, 11). Katodu preko 330R otpornika ćemo povezati na
GND
Pisanje koda
Iščitavanje = analogRead(0);
analogWrite(kojiPin,vrednost);
Kada koristimo ovu funkciju, na mestu gde treba upisati vrednost možemo koristiti i određene
promenljive, a ne samo konkretne brojeve od 0 do 255. U našem slučaju pisaćemo:
analogWrite(ledPin,pwmVal);
Sada možete videti celokupan kod, gde će vam implementacijom ovih funkcija njihova svrha
biti jasnija:
int potPin = A0; //definisanje pina na koji ce biti prikacen srednji izvod
potenciometra - pin A0
int potVal; //deklarisanje promenljive koja ce predstavljati iscitanu
vrednost potenciometra
void setup(){
pinMode(potPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
potVal = analogRead(potPin); //definisanje promenljive potVal,
dodeljujemo joj iscitanu vrednost funkcijom analogRead(imePina)
Očekujem pitanja, sugestije, kritike ili predloge! Veliki pozdrav do sledećeg teksta