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 papan, sebesar 20k hingga 50k ohm, dari pin ke 5V: pull-down pada pelajaran sebelumnya dengan arah terbalik, tanpa komponen tambahan. Tombol hanya menghubungkan pin ke GND.
Masalahnya, logikanya terbalik: saat tidak ditekan terbaca HIGH, saat ditekan terbaca LOW, dan penulisan == LOW di seluruh sketch mudah tertukar. Perbandingan seperti digitalRead(2) == LOW menghasilkan true atau false, dan bool adalah variabel yang menyimpan true atau false. Simpan hasilnya dengan nama yang menjelaskan artinya:
bool pressed = digitalRead(2) == LOW;
if (pressed) {
// Tombol sedang ditekan
}Setelah itu, kodemu terbaca dengan arah yang 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 selama nilainyatrue, lalu tunggu 100 ms
Periksa mengharapkan 1 saat tombol ditekan dan 0 saat dilepas. Tekan Jalankan, tahan tombol, lalu tekan Periksa.
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 = ...
// tampilkan 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