Používá se třeba pro:
- potenciometr
- senzory (světlo, teplota, tlak…)
⚡ Jak funguje na ESP32
ESP32 měří napětí v rozsahu:
- 0 V → hodnota 0
- 3.3 V → hodnota 4095
To znamená:
- rozlišení je 12-bit (0–4095)

⚠️ Důležité vlastnosti (přepsaná tabulka)
- ESP32 má 2 ADC jednotky:
- ADC1 → GPIO 32–39
- ADC2 → GPIO 0, 2, 4, 12–15, 25–27
- celkem:
- až 18 kanálů (cca 15 dostupných na běžné desce)
- ADC2 nejde používat s WiFi
⚠️ Nevýhody (důležité!)
- není lineární (nepřesný)
- malé napětí (0–0.1V) = stejné jako 0
- vysoké napětí (3.2–3.3V) = stejné max hodnoty
⚠️ Důležité vlastnosti (přepsaná tabulka)
- ESP32 má 2 ADC jednotky:
- ADC1 → GPIO 32–39
- ADC2 → GPIO 0, 2, 4, 12–15, 25–27
- celkem:
- až 18 kanálů (cca 15 dostupných na běžné desce)
- ADC2 nejde používat s WiFi
🔧 Funkce pro ADC
Hlavní:
analogRead(pin)→ vrací 0–4095
Další možnosti:
- změna rozlišení (9–12 bitů)
- nastavení citlivosti (attenuation)
- vícenásobné vzorkování
🔌 Zapojení (přepsaná tabulka)
Příklad s potenciometrem:
- prostřední pin → GPIO 34
- krajní piny → 3.3V a GND

🧾 ✅ KOMPLETNÍ KÓD: čtení potenciometru
pot.cpp
1const int potPin = 34; // ADC pin
2int potValue = 0;
3
4void setup() {
5 Serial.begin(115200);
6 delay(1000);
7}
8
9void loop() {
10 potValue = analogRead(potPin);
11
12 Serial.print("Analog value: ");
13 Serial.println(potValue);
14
15 delay(500);
16}🧪 Jak to funguje
- otočíš potenciometrem
- změní se napětí (0–3.3V)
- ESP32 převede na číslo 0–4095
- vypíše se do Serial Monitoru
📊 Přepočet na napětí (užitečné)
Pokud chceš reálné napětí:
voltage.cpp
1float voltage = analogRead(potPin) * (3.3 / 4095.0);🧾 Shrnutí
- ADC převádí napětí na číslo
- rozsah: 0–4095
- jednoduché použití přes
analogRead() - pozor na nepřesnost a WiFi konflikt u ADC2
