Prva LED dioda: od šeme do svjetla

Poveži LED i serijski otpornik na GPIO25, programiraj treptanje i nauči da povežeš naredbe sa radom elektronskog kola.

Prvi koraci sa ESP32 i ArduinomPočetni nivo60 min

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() i digitalWrite() 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

KomponentaKoličinaSpecifikacija i napomene
ESP32 razvojna ploča sa klasičnim ESP32-WROOM-32 modulom1GPIO nazivi moraju odgovarati referentnom profilu; fizički položaj izvoda provjeriti na ploči.
USB kabl za podatke i napajanje1Priključak prilagoditi ploči; komplet na slici navodi Micro-USB.
Eksperimentalna ploča1Komplet navodi 830 kontaktnih tačaka. Provjeriti eventualni prekid naponskih vodova.
Crvena LED dioda1Anoda A i katoda K; provjeriti polaritet stvarne komponente.
Otpornik 220 Ω1Po jedan otpornik za svaku LED granu; 220 Ω iz kompleta.
Spojni kablovi3M-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.

Šema povezivanja — električne veze navedene u tabeli ispod
Šema povezivanjaUvećajSVGPNG
Veze · Šema povezivanja
OdDoOpis veze
ESP32.GPIO25R1.1Upravljanje granom LED.
R1.2D1.AOtpornik 220 Ω prema anodi LED diode.
D1.KESP32.GNDKatoda prema zajedničkoj masi.
  1. Isključi USB prije povezivanja i pronađi oznake GPIO25/IO25/25 i GND na ploči.
  2. Postavi LED tako da njena dva izvoda budu u različitim, međusobno nepovezanim grupama otvora.
  3. Spoji jedan kraj otpornika od 220 Ω na istu grupu kao anodu LED diode. Drugi kraj neka bude u slobodnoj grupi.
  4. Spojnom žicom poveži GPIO25 sa slobodnim krajem otpornika.
  5. Poveži katodu LED diode sa GND na ESP32.
  6. 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.

first_led.ino Arduino / C++
Preuzmi .ino

#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

PostavkaPredviđanje prije učitavanjaOčekivani rezultat
500 ms uključeno, 500 ms isključenoJednako trajanje oba stanjaOko jedan ciklus u sekundi
1000 ms uključeno, 1000 ms isključenoSporije treptanjeOko jedan ciklus u dvije sekunde
200 ms uključeno, 800 ms isključenoKratko svjetlo, duža pauzaI dalje oko jedan ciklus u sekundi

Rješavanje problema

ProblemŠta provjeriti
LED ne svijetliIsključi USB i provjeri A/K, otpornik, GND i oznaku GPIO25.
Oba izvoda LED su u istoj grupiPremjesti jedan izvod u nepovezanu grupu; LED ne smije biti premošćena kontaktima ploče.
LED stalno svijetliProvjeri da je učitan novi program i da žica dolazi sa GPIO25, a ne sa 3V3.
Promjena programa ne utiče na treptanjeSačuvaj izmjenu i ponovo klikni Upload; Verify sam ne mijenja program na ploči.
Upload ne uspijevaPonovi provjere kabla, ploče i porta iz kursa 01.
Komponenta se zagrijavaOdmah 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

  1. Zašto LED mora imati serijski otpornik?
  2. Zašto ne smiješ brojati fizičke pinove da bi pronašao GPIO25?
  3. 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.

Preuzimanje

Primarni izvori