Zadatak
Na pin broj 5 Arduina s mogućnošću pulsno širinske modulacije (PWM) spojimo jednu LE diodu i napišimo program koji će mijenjati jačinu svjetlosti LE diode od 0% do 100% u jednakim koracima. Kada LE diode postigne maksimalan intenzitet svjetlosti neka ciklus krene ispočetka.
Komponente:
- 1 * Arduino UNO R3 mikrokontroler,
- 1 * USB kabal,
- 1 * LE dioda,
- 1 * Otpornik 220 Ω,
- 1 * Eksperimentalna pločica,
- 2 * Kratkospojničke žice (muško-muške)
Šta je PWM?
PWM (Pulse Width Modulation) ili pulsno širinska modulacija je tehnika dobijanja analognih vrijednosti pomoću digitalnih impulsa konstantne amplitude. PWM signal se smatra digitalnim signalom jer je u svakom trenutku 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 između 0 i 5V, ne samo granične vrijednosti. Na nekim mikrokontrolerima PWM je dostupan samo na odabranim pinovima. Označavaju se znakom tilde (~).
![](https://stemlab.ba/wp-content/uploads/2023/12/vrijednost.jpg)
U grafičkom prikazu, zelene linije predstavljaju redovno vremensko razdoblje. Ovo trajanje ili razdoblje je obrnuto od PWM frekvencije. Drugim riječima, s Arduino PWM frekvencijom na oko 500 Hz, zelene linije bi mjerile svake 2 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 radnog vremena).
1. Izgradite sklop
![](https://stemlab.ba/wp-content/uploads/2023/12/pojacavanje.jpg)
2. Program
/***********************************************************
Pojačavanje
STEM Lab
***********************************************************/
int ledPin = 5; // Definiranje digitalnog pina 5 kao pina za upravljanje LE diodom
int strength; // Definiranje varijable strength - jačina svjetlosti LE diode
void setup() {
pinMode(ledPin, OUTPUT); // Postavite digitalni način rada s pina 5, IZLAZ: izlazni način
digitalWrite(ledPin, LOW); // ledPin (pin 5) postavite u stanje ISKLJUČI (isključi LE diodu)
}
void loop() {
// Izvršavaj varijablu jačina od 0 do 255 u koracima od 1
for (strength = 0; strength < 256; strength++) {
analogWrite(ledPin, strength); // LE dioda mijenja jačinu svjetlosti
delay(50); // Postavite vrijeme čekanja, 50 milisekundi
}
}
3. Prenesite program na Arduino UNO pločicu.