Zamanlayıcı, zaman aralıklarının ölçülmesi için kullanılan bir saat türüdür. Geçen zamanın ölçümü için sıfırdan yukarıya doğru sayan, Kronometre adı verilen iki tür zamanlayıcı vardır. Ve ikincisi, genellikle Geri Sayım Sayacı olarak adlandırılan, kullanıcı tarafından sağlanan belirli bir zaman süresinden geriye doğru sayılır .
Burada, bu eğitimde size Arduino'yu kullanarak bir Geri Sayım Sayacının nasıl yapılacağını göstereceğiz. Burada zamanı almak için herhangi bir Gerçek Zamanlı Saat (RTC) modülü kullanmıyoruz. Zaman süresi kullanıcı tarafından Keypad ve 16x2 LCD yardımı ile sağlanmaktadır. Zamanlayıcı Sıfıra geldiğinde ise Buzzer yardımı ile uyarı sesi üretilecektir.
Gerekli Malzeme
- Arduino UNO
- LCD 16 * 2
- 4 * 4 matris tuş takımı
- Buzzer
- Butona basınız
- Potansiyometre (10k)
- Direnç (10k, 100 ohm)
- Bağlantı telleri
Arduino Geri Sayım Sayacı Devre Şeması
Arduino Uno burada ana kontrolör olarak kullanılmaktadır. Süreyi beslemek için bir tuş takımı kullanılır ve geri sayımı görüntülemek için 16 * 2 LCD kullanılır. Basmalı düğme, zamanı başlatmak için kullanılır. 4x4 Tuş Takımı ile Arduino ve 16x2 LCD Arduino ile nasıl arayüz oluşturacağınızı buradan kontrol edin.
Arduino Geri Sayım Sayacı Kodu ve Açıklaması
Tam Arduino Timer kodu bu projenin sonunda verilmiştir.
Aşağıdaki bu kodda, tuş takımı ve LCD için kitaplıkları ve kodda kullanılan değişkenleri başlatıyoruz.
#Dahil etmek
Şimdi, aşağıdaki kodda no. tuş takımı için matrisi tanımlamak için satır ve sütun.
const bayt ROWS = 4; // Dört satırlık sabit bayt COLS = 4; // Üç sütun karakter anahtarı = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
4 * 4 matris tuş takımını Arduino ile bağlamak için satırlar ve sütunlar için pinleri tanımlamamız gerekir. Bu yüzden aşağıdaki kodda Keypad ve 16x2 LCD için pinler tanımladık.
byte rowPins = {6, 7, 8, 9}; // ROW0, ROW1, ROW2 ve ROW3 tuş takımını şu Arduino pinlerine bağlayın colPins = {10, 11, 12, 13}; // COL0, COL1 ve COL2 tuş takımını bağlayın t LiquidCrystal lCD (A0, A1, 5, 4, 3, 2); // Bir LC nesnesi oluşturur. Parametreler: (rs, etkinleştir, d4, d5, d6, d7)
Tuş takımını yapmak için aşağıdaki kod kullanılır, Keypad kpd = Keypad (makeKeymap (anahtarlar), rowPins, colPins, ROWS, COLS);
In boşluk setFeedingTime () işlevi kodu, basma düğmesine sonra zamanlayıcı için zaman girebiliyorlar, ardından Zamanlayıcı süresini girdikten sonra, biz geri sayımı başlatmak için basın D gerekiyor.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Besleme Süresini Ayarla"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); while (1) {anahtar = kpd.getKey (); char j; eğer (anahtar! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (anahtar); r = anahtar-48; i ++; j ++; eğer (j == 2 - j == 5) {lcd.print (":"); j ++; } gecikme (500); } if (anahtar == 'D') {anahtar = 0; kırmak; }} lcd.clear (); }
In boşluk kurulum () işlevi , biz LCD ve seri iletişim başlatıldı gelmiş ve kodunun altına giriş ve çıkış olarak işaretçilerine tanımladı.
geçersiz kurulum () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, GİRİŞ); pinMode (A4, ÇIKIŞ); }
Bu Arduino Geri Sayım Sayacının çalışması basittir ancak kod biraz karmaşıktır. Kod, koddaki yorumlarla açıklanmıştır.
Başlangıçta, siz butona basana kadar LCD ekranda "Arduino Timer" yazacaktır. Düğmeye bastığınız anda, " setFeedingTime " fonksiyonunu çağırarak geri sayım süresini girmenizi isteyecektir. Daha sonra Keypad yardımı ile süreyi girebilirsiniz. Daha sonra zamanı kaydetmek ve geri sayım zamanlayıcısını başlatmak için 'D'ye basmanız gerekir. Burada void loop () fonksiyonunda, zamanı saniye saniye azaltmak ve kalan zamana göre Saat, Dakika ve Saniyelerin (SS: DD: SS) uygun değerlerini göstermek için bazı hesaplamalar yaptık. Tüm kod, yorumlarla iyi bir şekilde açıklanmıştır. Aşağıdaki tam kodu ve Gösteri videosunu kontrol edebilirsiniz.
Zamanlayıcı sıfıra ulaştığında, zil biplemeye başlar ve yalnızca 100 kez bipler (koda göre). Zili durdurmak için basmalı düğmeyi basılı tutun. Sayım arasında zamanlayıcıyı durdurmak için istediğiniz zaman Puşbutonu kullanabilirsiniz.