GPIO, digitalRead/Write, analogRead, sensor sederhana, dan Serial Monitor.
ESP32 memiliki banyak pin GPIO (General Purpose Input/Output) yang bisa digunakan untuk membaca sensor dan mengontrol aktuator.
ESP32 DevKit V1 — Pinout sederhana (pin yang sering dipakai)
Digital = hanya 2 nilai: HIGH (3.3V / nyala) dan LOW (0V / mati).
Rangkaian: ESP32 GPIO 23 → Resistor 220Ω → LED → GND
C++ (Arduino)#define LED_PIN 23 // GPIO 23
#define BTN_PIN 15 // GPIO 15
void setup() {
pinMode(LED_PIN, OUTPUT); // LED sebagai output
pinMode(BTN_PIN, INPUT_PULLUP); // Button dengan pull-up internal
Serial.begin(115200);
}
void loop() {
int btnState = digitalRead(BTN_PIN);
if (btnState == LOW) { // Tombol ditekan (active low)
digitalWrite(LED_PIN, HIGH); // LED nyala
Serial.println("Button: PRESSED → LED ON");
} else {
digitalWrite(LED_PIN, LOW); // LED mati
Serial.println("Button: RELEASED → LED OFF");
}
delay(100);
}
Rangkaian: Button (GPIO 15) + LED (GPIO 23) → GND
ADC (Analog to Digital Converter) membaca nilai analog 0–4095 (12-bit) dari sensor seperti potensiometer atau LDR.
C++ (Arduino)#define LDR_PIN 34 // GPIO 34 (input only, ADC)
void setup() {
Serial.begin(115200);
}
void loop() {
int nilaiADC = analogRead(LDR_PIN); // 0 - 4095
float tegangan = nilaiADC * 3.3 / 4095.0;
Serial.print("ADC: ");
Serial.print(nilaiADC);
Serial.print(" | Tegangan: ");
Serial.print(tegangan);
Serial.println(" V");
delay(500);
}
ESP32 ADC: 12-bit resolution (0–4095) mapping ke 0–3.3V
Serial Monitor adalah alat paling penting untuk debugging. Gunakan untuk melihat output dari ESP32.
Serial.begin(115200) ada di setup()Serial.print() atau Serial.println() untuk outputContoh output Serial Monitor
Serial.println() di setiap bagian penting kode. Ini membantu memahami alur program dan mendeteksi error.