Pull-Up Internal
Termasuk bagian Input dalam perjalanan Arduino di Coddy. Pelajaran 3 dari 22.
Kamu sudah menggunakan INPUT_PULLUP sejak pelajaran Membaca Tombol. Fitur ini mengaktifkan resistor di dalam board, sebesar 20k hingga 50k ohm, dari pin ke 5V: pull-down dari pelajaran sebelumnya yang arahnya dibalik, tanpa komponen tambahan. Tombol hanya menghubungkan pin ke GND.
Masalahnya, logikanya terbalik: saat tidak ditekan, nilainya terbaca HIGH, saat ditekan nilainya terbaca LOW, dan menulis == LOW di seluruh sketch mudah membuatmu keliru. Perbandingan seperti digitalRead(2) == LOW menghasilkan true atau false, dan bool adalah variabel yang menyimpan true atau false. Simpan nilainya dengan nama yang menjelaskan maksudnya:
bool pressed = digitalRead(2) == LOW;
if (pressed) {
// tombol sedang ditekan
}Setelah itu, kode lebih mudah dibaca dengan benar. Mencetak bool menampilkan 1 untuk true dan 0 untuk false.
Tantangan
MudahTombol menghubungkan pin 2 ke GND, dan LED berada di pin 13:
- atur pin 2 ke
INPUT_PULLUP - simpan
digitalRead(buttonPin) == LOWdalamboolbernamapressed - cetak
pressed, nyalakan LED saat nilainyatrue, lalu tunggu 100 ms
Periksa mengharapkan 1 saat tombol ditekan dan 0 saat tombol dilepas. Tekan Run, tahan tombol, lalu tekan Check.
Coba sendiri
const int buttonPin = 2;
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
// aktifkan pull-up pada pin tombol
}
void loop() {
// bool pressed = ...
// cetak nilainya, nyalakan LED selama nilainya true, tunggu 100 ms
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Input
Latihan sendiri: Playground Arduino