Atelier.

atelier · lecții

Lecția 07 20 min începător 3 întrebări quiz

ESP32 — ce face fiecare pin

ESP32 are 30+ pini, dar nu toți fac orice. Înveți care-s pini de alimentare, care-s digitali, care-s doar input, și care-s capcanele care-ți strică placa la boot.

Ce înveți

  • Ce e un microcontroller și prin ce diferă de un computer
  • Care sunt pinii de alimentare (3.3V, 5V, GND)
  • Ce-i un pin strapping și de ce contează
  • Care pini sunt doar pentru citire (ADC input-only)
  • Ce înseamnă ADC, PWM, I2C, SPI, UART

Ce-i un microcontroller

ESP32 nu e un computer întreg. Un PC are sistem de operare, hard disk, RAM gigabit, ecran. ESP32 are doar atât cât îi trebuie ca să execute un program și să controleze pini:

  • CPU: 240MHz dual-core (un PC are 3-5GHz)
  • RAM: 320KB (un PC are 16-32GB — adică de 100.000 ori mai mult)
  • Flash: 4MB (unde stă codul tău compilat)
  • WiFi + Bluetooth integrate (asta-i magia ESP32-ului)

Nu pornește Windows pe el. Dar exact d-aia-i fain: e mic, ieftin (vreo 30 de lei), consumă puțin, și-i făcut să controleze lucruri.

Pinout ESP32 DevKit

Pinii de alimentare

Pe placă găsești:

  • 3.3V — output regulat din placă. De aici alimentezi senzori (OLED, microfon, buton). Maximum ~600mA.
  • 5V (sau VIN) — vine direct din USB. Folosit pentru module care cer 5V (rar).
  • GND — masa, minus. Sunt mai multe pini GND, toți conectați intern. Folosește oricare.

Regulă: orice modul trebuie să aibă GND-ul lui legat la GND-ul ESP32-ului, altfel nu se înțeleg la semnale.

Pinii digitali generali (GPIO)

GPIO = General Purpose Input/Output. Astea-s pini care pot fi orice vrei tu: input (citește buton) sau output (aprinde LED).

Pini buni pentru orice:

GPIO 4, 5, 13, 14, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33

Cu ei nu ai surprize — pot fi INPUT sau OUTPUT, fac PWM, fac ce vrei.

Pinii “strapping” — capcana

Patru pini sunt speciali: GPIO 0, 2, 12, 15. Placa se uită la ei când pornește ca să decidă în ce mod să intre (rulează program normal sau intră în mod download).

Dacă ai un modul care trage GPIO 0 la LOW la pornire → placa intră în download mode și codul tău nu mai rulează. Asta confundă mulți începători.

PinCe face la boot
GPIO 0LOW = download mode, HIGH = rulează program
GPIO 2trebuie să fie LOW sau float la boot
GPIO 12influențează voltajul flash (atenție)
GPIO 15controlează ce mesaje apar pe Serial la boot

Regula: evită strapping pins pentru senzori care trag pinul la HIGH/LOW imediat la pornire. Pentru LED-uri sau butoane normale merg ok.

Pinii doar-input (ADC2 input-only)

Patru pini nu pot fi output — pot doar citi semnale analoge:

GPIO 34, 35, 36, 39

Nu au rezistor pull-up/pull-down intern. Buni pentru: microfoane, senzori analogi, joystick-uri. Nu poți aprinde un LED pe ei.

Funcții speciale

I2C — pentru OLED, senzori cu adresă

  • SDA = GPIO 21 (date)
  • SCL = GPIO 22 (ceas)

Standard pe ESP32. Așa conectezi OLED-ul SSD1306.

SPI — comunicație rapidă

Folosit pentru carduri SD, ecrane mari. 4 pini: MOSI, MISO, SCK, CS.

UART — comunicație serială

  • TX = GPIO 1, RX = GPIO 3NU le folosi pentru altceva! Sunt folosite de Serial Monitor și pentru upload cod. Dacă pui un senzor pe ele, vezi gunoi în Serial Monitor.

ADC — citire analogă

ESP32 are 12 pini cu ADC. Citește tensiune 0-3.3V și-ți dă un număr 0-4095 (12-bit). Util pentru: potențiometre, senzori de lumină, baterii.

Atenție: nu pune niciodată mai mult de 3.3V pe un pin — îl arzi.

PWM — output pulsat

Orice GPIO digital poate face PWM. PWM = aprinzi și stingi foarte repede ca să simulezi o tensiune între 0 și 3.3V. Folosit pentru:

  • Reglare luminozitate LED (de la slab la tare)
  • Control viteză motor
  • Generare sunete pe buzzer

RTC — supraviețuiesc deep sleep

Dacă pui ESP32-ul să doarmă (consum 10µA), majoritatea pinilor se sting. Doar pinii RTC pot trezi placa: GPIO 0, 2, 4, 12-15, 25-27, 32-39.

Provocare — proiectul VIA

În VIA folosim:

  • GPIO 4 — buton
  • GPIO 5 — LED-uri WS2812
  • GPIO 21 + 22 — OLED prin I2C
  • GPIO 14 + 15 + 32 — microfon INMP441 prin I2S

Întrebare: care din pinii ăștia e strapping?

Răspuns: GPIO 15. Microfonul INMP441 are pe-acolo semnalul WS (word select). Dacă microfonul îl trage LOW exact la pornire, placa nu mai afișează mesaje pe Serial Monitor (dar pornește). Dacă-l trage la 12V din greșeală — arzi placa. Atenție la ce conectezi pe strapping pins.

Ce ai învățat

  • ESP32 e microcontroller, nu computer — mic, rapid, ieftin, cu WiFi.
  • Alimentare: 3.3V pentru module, 5V din USB, GND comun.
  • GPIO 4-33 (cei mai mulți) merg pentru orice.
  • GPIO 34-39 sunt doar input.
  • GPIO 0, 2, 12, 15 sunt strapping — atenție la ce conectezi pe ei.
  • I2C pe 21/22, UART pe 1/3 (ocupați de Serial), PWM oriunde, ADC pe 12 pini.

Pas următor

Acum că știi pinii, cablezi primul senzor: butonul. Lecția următoare: buton cu pull-up →

După lecția asta, poți

  • Citești pinout-ul oricărui ESP32 fără să confunzi GPIO cu pinul fizic
  • Eviți pinii speciali (strapping, boot, JTAG) care strică flash-ul sau boot-ul
  • Știi care pini pot fi INPUT, care PWM, care I2C/SPI built-in — alegi corect din prima
  • Pui o piesă pe pinul corect din prima, nu prin trial-and-error