Ciljevi učenja
- Prepoznati anodu i katodu LED diode i objasniti ulogu serijskog otpornika.
- Sastaviti kolo na eksperimentalnoj ploči prateći GPIO oznake i šemu.
- Koristiti pinMode() i digitalWrite() za upravljanje digitalnim izlazom.
- Izračunati period treptanja i izraditi signal sa dva kratka bljeska.
Prije početka
Završen kurs 01: podešeno Arduino okruženje i samostalno učitavanje programa na klasični ESP32.
Referentna postavka
- Ploča u Arduino IDE-u
- ESP32 Dev Module
- Arduino-ESP32
- 3.3.12
- Serial Monitor
- 115200 baud
Ovo je referentni profil, a ne identifikacija ploče sa fotografije. Za ESP32-C3/S2/S3 ili drugačije označenu ploču treba prilagoditi GPIO i provjeriti šemu prije spajanja.
Šta ćeš napraviti
Sastavićeš kolo sa jednom LED diodom i programirati je da svijetli pola sekunde, pa bude ugašena pola sekunde. Vidljiv rezultat pomoći će ti da povežeš naredbu u programu sa električnim stanjem izlaznog pina.
Ovo je osnova mnogih budućih uređaja: indikator veze, upozorenje ili signal da je mjerenje završeno. Koristimo spoljašnju LED diodu, pa vježba ne zavisi od ugrađenih lampica konkretne razvojne ploče.
Šta ćeš naučiti
- Da prepoznaš anodu i katodu LED diode.
- Da povežeš serijski otpornik i objasniš njegovu ulogu.
- Da razlikuješ električki povezane grupe otvora na eksperimentalnoj ploči.
- Da koristiš
pinMode()idigitalWrite()za upravljanje izlazom. - Da iz trajanja uključenja i isključenja izračunaš period treptanja.
Predznanje
Prvo završi kurs 01: potrebno je da možeš izabrati ESP32 Dev Module, učitati program i otvoriti Serial Monitor. Za ovaj kurs planiraj oko 60 minuta, uključujući sastavljanje i samostalni zadatak.
Koristimo klasični ESP32/ESP32-WROOM-32 i GPIO25. Broj 25 označava funkciju pina, a ne njegov redni položaj u nizu konektora. ESP32-C3, S2 i S3 zahtijevaju drugi profil povezivanja.
Potrebna oprema
| Komponenta | Količina | Specifikacija i napomene |
|---|---|---|
| ESP32 razvojna ploča sa klasičnim ESP32-WROOM-32 modulom | 1 | GPIO nazivi moraju odgovarati referentnom profilu; fizički položaj izvoda provjeriti na ploči. |
| USB kabl za podatke i napajanje | 1 | Priključak prilagoditi ploči; komplet na slici navodi Micro-USB. |
| Eksperimentalna ploča | 1 | Komplet navodi 830 kontaktnih tačaka. Provjeriti eventualni prekid naponskih vodova. |
| Crvena LED dioda | 1 | Anoda A i katoda K; provjeriti polaritet stvarne komponente. |
| Otpornik 220 Ω | 1 | Po jedan otpornik za svaku LED granu; 220 Ω iz kompleta. |
| Spojni kablovi | 3 | M-M ili F-M prema priključcima ploče. Broj kablova je okviran i zavisi od rasporeda povezivanja. |
Izaberi jednu običnu crvenu LED diodu i otpornik od 220 Ω. Za standardni četvoropojasni otpornik oznaka je crvena–crvena–smeđa, uz poseban pojas tolerancije. Ako su boje nejasne, provjeri vrijednost mjernim instrumentom ili deklaracijom kompleta.
Kako radi
LED provodi struju i emituje svjetlost kada je pravilno polarizovana. Njeni izvodi su anoda, označena A, i katoda, označena K. Kod uobičajene nove LED diode duži izvod je anoda, a kraći izvod i zaravnjenje kućišta označavaju katodu. Ako su izvodi odsječeni ili oznake drugačije, provjeri podatke konkretne komponente. Arduino opisuje povezivanje spoljašnje LED diode.
Otpornik ograničava struju kroz LED. U ovom kolu GPIO25, otpornik i LED formiraju jednu strujnu putanju do GND. Otpornik mora biti u toj putanji; postavljanje u susjedni, nepovezani red ne obavlja njegovu funkciju. Otpornik nema polaritet.
Na tipičnoj eksperimentalnoj ploči grupe od pet otvora povezane su metalnim kontaktom. Središnji kanal odvaja dvije grupe. Napojne trake sa strane mogu biti prekinute na sredini: provjeri oznake svoje ploče. U ovoj vježbi možeš povezati GND direktno na red katode i izostaviti napojne trake.
Povezivanje
Šema povezivanja
Prikaz prikazuje električne veze po GPIO nazivima, a ne fizički raspored priključaka ploče. Napajanje ploče je preko USB kabla.
| Od | Do | Opis veze |
|---|---|---|
ESP32.GPIO25 | R1.1 | Upravljanje granom LED. |
R1.2 | D1.A | Otpornik 220 Ω prema anodi LED diode. |
D1.K | ESP32.GND | Katoda prema zajedničkoj masi. |
- Isključi USB prije povezivanja i pronađi oznake GPIO25/IO25/25 i GND na ploči.
- Postavi LED tako da njena dva izvoda budu u različitim, međusobno nepovezanim grupama otvora.
- Spoji jedan kraj otpornika od 220 Ω na istu grupu kao anodu LED diode. Drugi kraj neka bude u slobodnoj grupi.
- Spojnom žicom poveži GPIO25 sa slobodnim krajem otpornika.
- Poveži katodu LED diode sa GND na ESP32.
- Prati putanju prstom: GPIO25, otpornik, anoda, LED, katoda, GND. Tek nakon provjere priključi USB.
USB napaja razvojnu ploču; GPIO upravlja LED diodom na logičkom nivou od 3,3 V. Pin 5V se ne koristi za ovo kolo. Nemoj direktno povezivati GPIO25 sa GND ili preskakati otpornik.
Priprema Arduino okruženja
Preuzmi Arduino primjer (.zip), raspakuj ga i otvori first_led.ino unutar fascikle first_led. Koristi Arduino IDE 2.x, paket „esp32 by Espressif Systems” 3.3.12 i ploču ESP32 Dev Module. Izaberi port svog uređaja. Dodatne biblioteke nisu potrebne.
Ako podrška za ESP32 još nije instalirana, vrati se na kurs 01 ili prati Espressifovu instalaciju. Nemoj kao zamjenu učitavati primjer za nepoznatu ugrađenu LED, jer ovdje očekujemo izlaz GPIO25.
Program
Prvo učitaj originalni primjer. Preuzeti .ino fajl je isti program koji se prikazuje ovdje.
#include <Arduino.h>
constexpr uint8_t LED_PIN = 25;
constexpr uint32_t BLINK_INTERVAL_MS = 500;
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
Serial.println("WB Maker Bridge - LED blink on GPIO25");
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(BLINK_INTERVAL_MS);
digitalWrite(LED_PIN, LOW);
delay(BLINK_INTERVAL_MS);
}
Kako čitati program
pinMode() postavlja GPIO25 u režim OUTPUT. digitalWrite() zatim zadaje HIGH ili LOW. U ovom povezivanju HIGH omogućava struju kroz LED i ona svijetli; LOW je gasi. Ove funkcije i njihovu namjenu definiše Espressifova GPIO dokumentacija.
U petlji se redom izvršavaju uključenje, čekanje 500 milisekundi, isključenje i novo čekanje 500 milisekundi. Tek tada počinje naredni ciklus. Zbir čekanja iznosi 1000 milisekundi, odnosno približno jednu sekundu za cijeli ciklus. BLINK_INTERVAL_MS se koristi u oba čekanja. Za različita trajanja u svojoj kopiji zamijeni prvi argument čekanja sa 200, a drugi sa 800.
delay() ovdje uvodimo kao jednostavan način da razdvojimo događaje u vremenu. Tokom tog čekanja naredni redovi našeg programa ne napreduju. Za uređaj koji istovremeno prati taster ili više senzora kasnije ćemo raspoređivati aktivnosti pomoću millis().
Pokretanje i očekivani rezultat
Pokreni Verify, pa Upload. Posmatraj spoljašnju LED najmanje deset sekundi. Treba da se ravnomjerno uključuje i isključuje. Nije dovoljno da svijetli napojna lampica na ESP32: gledaj komponentu koju si upravo povezao.
Ako otvaraš Serial Monitor, postavi 115200 baud. Primarni rezultat ove vježbe je stvarno treptanje LED. Uspješno kompajliranje potvrđuje prevod programa, dok pravilno povezivanje potvrđuješ radom kola.
Posmatranje i bilješke
| Postavka | Predviđanje prije učitavanja | Očekivani rezultat |
|---|---|---|
| 500 ms uključeno, 500 ms isključeno | Jednako trajanje oba stanja | Oko jedan ciklus u sekundi |
| 1000 ms uključeno, 1000 ms isključeno | Sporije treptanje | Oko jedan ciklus u dvije sekunde |
| 200 ms uključeno, 800 ms isključeno | Kratko svjetlo, duža pauza | I dalje oko jedan ciklus u sekundi |
Rješavanje problema
| Problem | Šta provjeriti |
|---|---|
| LED ne svijetli | Isključi USB i provjeri A/K, otpornik, GND i oznaku GPIO25. |
| Oba izvoda LED su u istoj grupi | Premjesti jedan izvod u nepovezanu grupu; LED ne smije biti premošćena kontaktima ploče. |
| LED stalno svijetli | Provjeri da je učitan novi program i da žica dolazi sa GPIO25, a ne sa 3V3. |
| Promjena programa ne utiče na treptanje | Sačuvaj izmjenu i ponovo klikni Upload; Verify sam ne mijenja program na ploči. |
| Upload ne uspijeva | Ponovi provjere kabla, ploče i porta iz kursa 01. |
| Komponenta se zagrijava | Odmah isključi USB i provjeri vrijednost otpornika i kratke spojeve. |
Samostalni izazov
Napravi signal sa dva kratka bljeska, pa dužom pauzom. Jedan ciklus treba da sadrži: 100 ms uključeno, 100 ms isključeno, 100 ms uključeno i 700 ms isključeno. Skiciraj redoslijed na papiru, izmijeni svoju kopiju programa i uporedi rezultat sa predviđanjem.
Provjeri razumijevanje
- Zašto LED mora imati serijski otpornik?
- Zašto ne smiješ brojati fizičke pinove da bi pronašao GPIO25?
- Koliko traje ciklus od 200 ms uključenja i 800 ms isključenja?
Smjernice i rješenja
U izazovu ponovi par naredbi za uključivanje i isključivanje dva puta, sa čekanjima 100, 100, 100 i 700 ms. Sve vrijednosti zajedno daju 1000 ms. Prepoznatljiv par bljeskova zato se ponavlja približno jednom u sekundi.
Odgovori: otpornik ograničava struju; raspored priključaka zavisi od razvojne ploče; dati ciklus traje jednu sekundu. Za naredni kurs vrati originalno treptanje i sačuvaj povezivanje GPIO25–otpornik–LED–GND. Prije dodavanja tastera ponovo isključi USB.
