Dahili Pull-Up
Coddy'nin Arduino Journey'sinin Girişler bölümünün bir parçası. Ders 3 / 22.
Read a Button'dan beri INPUT_PULLUP kullandın. Kartın içindeki 20k ile 50k ohm arasındaki bir direnci pinden 5V'a bağlar: son dersteki pull-down'ın ters yöndeki hâli, ek bir parça olmadan. Düğme yalnızca pini GND'ye bağlar.
İşin püf noktası, mantığın tersine dönmüş olmasıdır: yukarıdayken HIGH okunur, basıldığında LOW okunur ve bir taslağın her yerine == LOW yazmak, bunu ters anlamayı kolaylaştırır. digitalRead(2) == LOW gibi bir karşılaştırma kendi başına true veya false değerini verir ve bir bool, true veya false değerini tutan bir değişkendir. Ne anlama geldiğini belirten bir adla sakla:
bool pressed = digitalRead(2) == LOW;
if (pressed) {
// düğmeye basılı
}Bundan sonra kod doğru şekilde okunur. Bir bool yazdırıldığında true için 1, false için 0 gösterilir.
Görev
KolayDüğme 2 numaralı pini GND'ye bağlar ve LED 13 numaralı pindedir:
- 2 numaralı pini
INPUT_PULLUPolarak ayarla digitalRead(buttonPin) == LOWdeğerinipressedadlı birbooldeğişkeninde saklapresseddeğerini yazdır,trueiken LED'i yak, ardından 100 ms bekle
Check, düğme basılı tutulurken 1, bırakılmış durumdayken 0 bekler. Run'a bas, düğmeyi basılı tut, ardından Check'e bas.
Kendin dene
const int buttonPin = 2;
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
// buttonPin için pull-up direncini etkinleştir
}
void loop() {
// bool pressed = ...
// Değerini yazdır, true olduğu sürece LED'i yak, 100 ms bekle
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Girişler bölümündeki tüm dersler
Kendi başına pratik yap: Arduino playground