millis() ile Sekmeyi Giderin
Kısa bir kararlılık aralığıyla gürültüyü yok sayın.
millis() ile Sekmeyi Giderin, CoddyKit'te ücretsiz bir Arduino & IoT Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Arduino & IoT Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Arduino & IoT Academy kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Why Not Just delay()?
You could pause with delay() after a press, but that freezes your whole board. The smarter tool for clean buttons is millis().
millis() Is a Stopwatch
millis() returns how many milliseconds your board has been running. You compare two readings to measure elapsed time without stopping.
unsigned long now = millis();The Debounce Plan
The idea is simple: when the pin changes, start a timer. Only trust the new state if it holds steady past a short window.
Pick a Debounce Window
A delay of about 50 milliseconds is the classic choice. It's long enough to outlast bounce, yet far too fast for you to notice.
const unsigned long DEBOUNCE = 50;Remember the Last Change
You need a variable to store when the pin last flipped. Compare it to the current time on every loop pass.
unsigned long lastChange = 0;Track Two States
Keep the raw reading and the confirmed stable state separately. The raw one is noisy; the stable one is what your logic trusts.
int lastRaw = HIGH;
int stable = HIGH;Detect a Flip
Each loop, read the pin. If it differs from the last raw value, the signal just moved, so reset your timer.
int raw = digitalRead(BTN);
if (raw != lastRaw)
lastChange = millis();Wait for Stillness
If enough time has passed since the last flip, the reading has settled. Now it is safe to accept it as the real state.
if (millis() - lastChange > DEBOUNCE) {
stable = raw;
}Act on the Edge
To fire once per press, watch for the stable state changing to LOW. That single edge is your clean, debounced press.
if (stable == LOW && lastStable == HIGH)
Serial.println("clean press");Update for Next Time
At the loop's end, save the current readings into your last variables. This keeps the comparison fresh on every pass.
lastRaw = raw;
lastStable = stable;Non-Blocking Wins
Because millis() never pauses the board, your sensors and outputs keep running. You debounce while everything else stays alive. 🚀
Quick Check
Let's check how millis() debouncing decides a press is real.
Recap: Clean Presses
You used millis() to ignore bounce without freezing the board, accepting a press only once it settles. Solid, professional input! ✅
Sıkça Sorulan Sorular
“millis() ile Sekmeyi Giderin” dersi ücretsiz mi?
Evet — “millis() ile Sekmeyi Giderin” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Arduino & IoT Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Arduino & IoT Academy kursu toplamda 4 dersten oluşur.
“millis() ile Sekmeyi Giderin” dersinde ne öğreneceğim?
Kısa bir kararlılık aralığıyla gürültüyü yok sayın. Arduino & IoT Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Arduino & IoT Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Arduino & IoT Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“millis() ile Sekmeyi Giderin” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Arduino & IoT Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Arduino & IoT Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Düğmeler Neden 'Sekme' Yapar
- millis() ile Sekmeyi Giderin
- Bir Değeri EEPROM'a Kaydedin
- Sıfırlamadan Sonra Bir Sayacı Hatırlayın