You are on page 1of 11

Vježba-BREATHING LED

DECEMBAR, 2019.G.
Programirati Arduino da generira PWM pravougani signal koji će
upravljati LED diodom. Efekt koji želimo postići je pulsirajuća ili dišuća
LED dioda . Dakle, LED-se postupno uključuje, te se postupno isključuje.

1x Arduino Uno
1x USB kabel
1x LED bilo koje boje
1x otpornik 220R
1x Prototipna pločica
– Nekoliko žica za spajanje
Intenzitet svjetlosti je direktno ovisan o struji koja protiče kroz LED
diode.

Struja se podešava pomoću serijskog otpora koji ograničava njen


iznos.

Način upravljanja intenzitetom svjetlosti koji se po automatizmu


nameće jeste korištenje promjenjivog serijskog otpora (reostata).

Upravljanje intenzitetom svjetlosti najčešće se obavlja pomoću


impulsno-širinske modulacije – PWM (eng. Pulse Width Modulation) i
prekidačkih komponenti kao što su tranzistori
PWM je skraćenica za Pulse Widht Modulation.

 PWM je tehnika za dobivanje analognih rezultata sa digitalnim


značenjem.

Digitalna kontrola koristi se za izradu pravouganog signala koji može


biti samo uključen ili isključen(on-off).

Ovakav on-off uzorak može simulirati napone između ON=5 volti i


OFF=0 volti, promjenom količine vremena koje signal provede u
stanju ON ili stanju OFF.
Trajanje kada je signal “ON” naziva se širina pulsa ili eng. pulse width
(odatle i naziv za ovu funkciju).

Za dobivanje različitih analognih vrijednosti, mijenjamo ili


moduliramo tu širinu pulsa.

Ako dovoljno brzo ponavljamo ON-OFF uzorak sa npr. LED diodom,


tada napon “varira” između 0 i 5V te na taj način reguliramo svjetlost
LED
int ledpin=11; //definisanje digitalnog 11 PIN kao pin za kontrolu LED
void setup ()
{
pinMode(ledpin,OUTPUT); //postavljanje digitalnog 11PIN za izlazni
}
void loop()
{for (int a=0; a<=255;a++) //Loop, PWM upravljanje povećanjem svjetline LED
analogWrite(ledpin,a); //PWM izlazne vrijednosti a (0~255)
delay(15); //trajanje svjetlosti level. 15ms
}
for (int a=255; a>=0;a- -) //Loop, PWM upravljanje smanjenjem svjetline LED
{
analogWrite(ledpin,a); //PWM output vrijednost a (255~0)
delay(15); //15ms
}
delay(100); //100ms delay
}
Prvo se vrši inicijalizacija i tačno jednom.

Svaki prolazak kroz petlju, uslov se testira; Ako je to istinit, blok se


izvršava, a inkrement se povećava, tada se uslov ponovno ispituje.

Kada uslov nije ispunjen, petlja se završava.

analogWrite() radi s pinovima koji podržavaju PWM (Puls-Width


Modulation).
analogWrite() postavlja pin kao OUTPUT. Vrijednost koju možemo
zadavati s analogWrite je 8bitna (0-255).
Z/2
int del=100; // postavlja se default vrijednost za kašnjenje
void setup() {

// inicijalizacija digitalnih PIN ova kao izlaznih:


for (int i = 2; i<=8 ; i++) {

pinMode(i, OUTPUT);

} // kraj for loop


} // kraj setup
void loop() {
for (int i = 2; i<=8; i++) { // blinkaju LED 2 do 8
digitalWrite(i, HIGH);
delay(del);
digitalWrite(i, LOW);
}
for (int i = 7; i>=3; i--) { // blink od LED 8 do 3
digitalWrite(i, HIGH);
delay(del);
digitalWrite(i, LOW);
}
}

You might also like