Dunia nyata tidak selalu ON/OFF — suhu, cahaya, kelembapan berubah bertingkat. Pin analog adalah jembatan antara dunia bertingkat itu dengan program digital kita.
Pin digital hanya kenal dua nilai: HIGH atau LOW. Tapi suhu ruangan tidak "loncat" dari dingin ke panas — dia bertingkat. Pin analog membaca nilai bertingkat ini, biasanya dalam rentang 0–1023 (10-bit).
void loop() {
int nilaiCahaya = analogRead(A0); // 0 (gelap) - 1023 (terang)
Serial.println(nilaiCahaya);
int kecerahanLED = map(nilaiCahaya, 0, 1023, 0, 255);
analogWrite(9, kecerahanLED); // atur kecerahan LED (0-255)
}
analogRead(pin) — membaca nilai bertingkat dari pin analog (A0-A5).analogWrite(pin, value) — mengirim nilai bertingkat (0-255) lewat teknik PWM, cocok untuk mengatur kecerahan LED atau kecepatan motor.map() — fungsi bantu mengubah rentang angka satu ke rentang lain.Arduino Uno punya ADC 10-bit, jadi analogRead() menghasilkan nilai 0–1023. ESP32 (yang dipakai untuk proyek IoT kalian) punya ADC 12-bit, jadi rentangnya lebih halus: 0–4095. Ini penting saat memakai map() — batas atas harus disesuaikan dengan board yang dipakai, kalau tidak, hasil konversi jadi salah total.
int nilaiSensor = analogRead(34); // 0 - 4095 pada ESP32 float tegangan = (nilaiSensor / 4095.0) * 3.3; // konversi ke volt int pwmOutput = map(nilaiSensor, 0, 4095, 0, 255);
analogWrite() sebenarnya tidak mengeluarkan tegangan bertingkat sungguhan — dia menyalakan-mematikan pin sangat cepat (Pulse Width Modulation). Semakin lama pin "menyala" dalam satu siklus (duty cycle), semakin terang LED terlihat oleh mata kita, walau sebenarnya berkedip sangat cepat.
Campuran pilihan ganda biasa, kompleks, dan dua tingkat — mengikuti kerangka kognitif C1–C3 ala PISA. Mode layar penuh aktif, jangan berpindah tab selama mengerjakan.
Isi identitas dan jawaban, lalu unduh sebagai PDF untuk dikumpulkan.