Eğitimler
StateChangeDetection
Bir düğme çalıştıktan sonra, genellikle düğmeye kaç kez basıldığına bağlı olarak bazı eylemler yapmak istersiniz. Bunu yapmak için, düğmenin durumu ne zaman kapalıdan açıka değiştirdiğini bilmeniz ve bu durum değişikliğinin kaç kez gerçekleştiğini saymanız gerekir. Buna durum değişikliği algılama veya kenar algılama denir . Bu öğreticide durum değişikliğini nasıl kontrol edeceğimizi öğreniyoruz, Seri Monitöre ilgili bilgileri içeren bir mesaj gönderiyoruz ve bir LED'i açmak ve kapatmak için dört durum değişikliğini sayıyoruz.
Gerekli Donanım
- Arduino veya Genuino Kurulu
- anlık düğme veya anahtar
- 10k ohm direnç
- bağlantı telleri
- breadboard
Devre
Karta üç kablo bağlayın. Birincisi, düğmenin bir bacağından aşağı çekme direnci (burada 10k ohm) ile toprağa gider. İkincisi, düğmenin karşılık gelen ayağından 5 voltluk beslemeye gider. Üçüncüsü, düğmenin durumunu okuyan bir dijital I / O pinine (burada pin 2) bağlanır.
Buton açıkken (basılı değil), butonun iki ayağı arasında bağlantı yoktur, bu nedenle pim toprağa bağlanır (aşağı çekme direnci ile) ve DÜŞÜK okuruz. Düğme kapatıldığında (basıldığında), iki ayağı arasında bir bağlantı kurar, pimi voltaja bağlar, böylece YÜKSEK okuruz. (Pim hala toprağa bağlı, ancak direnç akım akışına direniyor, bu nedenle en az direnç yolu + 5V'ye.)
Dijital I / O pimini her şeyden çıkarırsanız, LED düzensiz yanıp sönebilir. Bunun nedeni, girişin "yüzer" olmasıdır - yani, gerilime veya toprağa bağlı değildir. Az ya da çok rastgele YÜKSEK veya DÜŞÜK döner. Bu yüzden devrede bir aşağı çekme direncine ihtiyacınız var.
Şematik
büyütmek için resme tıklayın
Kod
Aşağıdaki çizim sürekli olarak düğmenin durumunu okur. Daha sonra ana döngü aracılığıyla düğmenin durumunu son kez durumuyla karşılaştırır. Geçerli düğme durumu son düğme durumundan farklıysa ve geçerli düğme durumu yüksekse, düğme kapalı durumdan açık konuma değişir. Çizim daha sonra bir düğme basma sayacını artırır.
Çizim ayrıca düğme itme sayacının değerini kontrol eder ve dördün katlarıysa, pim 13'teki LED'i AÇIK konuma getirir. Aksi takdirde, kapatır.
See Also
- pinMode()
- digitalWrite()
- digitalRead()
- millis()
- if
- BlinkWithoutDelay- delay () işlevini kullanmadan bir LED'i yanıp sönün.
- Button- Bir LED'i kontrol etmek için bir düğme kullanın.
- Debounce- Gürültüyü filtreleyen bir düğme okuyun.
- DigitalInputPullup- pinMode () ile INPUT_PULLUP kullanımını gösterir.
- toneKeyboard- Kuvvet sensörleri ve piezo hoparlör kullanan üç tuşlu müzikal klavye.
- toneMelody- Piezo hoparlörle bir melodi çalın.
- toneMultiple- tone () komutunu kullanarak birden fazla hoparlörde tonları sırayla çalın.
- tonePitchFollower- Analog girişe bağlı olarak bir piezo hoparlörde bir perde çalın.