Pemasa adalah sejenis jam yang digunakan untuk pengukuran selang waktu. Terdapat dua jenis pemasa, satu yang menghitung ke atas dari sifar, untuk pengukuran masa yang berlalu, disebut sebagai Jam Randik. Dan, yang kedua dikira dari jangka masa yang ditentukan oleh pengguna, yang biasanya dipanggil sebagai Countdown Timer.
Di sini, dalam tutorial ini kami akan menunjukkan kepada anda cara membuat Countdown Timer menggunakan Arduino. Di sini kita tidak menggunakan modul Real Time Clock (RTC) untuk mendapatkan masa. Tempoh masa disediakan oleh pengguna dengan bantuan Keypad dan 16x2 LCD. Dan apabila pemasa mencapai Zero, bunyi amaran akan dihasilkan dengan bantuan Buzzer.
Bahan Diperlukan
- Arduino UNO
- LCD 16 * 2
- Pad kekunci matriks 4 * 4
- Buzzer
- Tekan butang
- Potensiometer (10k)
- Perintang (10k, 100 ohm)
- Menyambung wayar
Diagram Litar Pemasa Kiraan Balik Arduino
Arduino Uno digunakan di sini sebagai pengawal utama. Pad kekunci digunakan untuk memberi makan pada jangka masa dan LCD 16 * 2 digunakan untuk menampilkan undur. Tombol tekan digunakan untuk memulakan masa. Lihat di sini bagaimana untuk memadankan Pad Kekunci 4x4 dengan Arduino dan 16x2 LCD dengan Arduino.
Kod Pemasa Arduino dan Penjelasan
Kod Arduino Timer yang lengkap diberikan pada akhir Projek ini.
Dalam kod ini di bawah, kami menginisialisasi perpustakaan untuk papan kekunci dan LCD dan pemboleh ubah yang digunakan dalam kod.
#sertakan
Sekarang, dalam kod di bawah ini kita mengawali no. baris dan lajur untuk menentukan matriks untuk pad kekunci.
const byte ROWS = 4; // Empat baris const byte COLS = 4; // Kekunci char tiga lajur = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Untuk menyambungkan papan kekunci matriks 4 * 4 dengan Arduino kita harus menentukan pin untuk baris dan lajur. Jadi dalam kod di bawah ini, kami telah menetapkan pin untuk Keypad dan juga 16x2 LCD.
byte rowPins = {6, 7, 8, 9}; // Sambungkan pad kekunci ROW0, ROW1, ROW2 dan ROW3 ke pin Arduino byte colPins = {10, 11, 12, 13}; // Sambungkan papan kekunci COL0, COL1 dan COL2 ke t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // Membuat objek LC. Parameter: (rs, aktifkan, d4, d5, d6, d7)
Kod di bawah digunakan untuk membuat papan kekunci, Pad kekunci kpd = Pad Kekunci (makeKeymap (kunci), baris pin, colPins, ROWS, COLS);
Dalam kod fungsi setFeedingTime void () , setelah menekan butang tekan, kita dapat memasukkan waktu untuk pemasa, kemudian setelah memasukkan durasi waktu pemasa, kita harus Tekan D untuk memulai undur.
batal setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Tetapkan Waktu makan"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); sementara (1) {key = kpd.getKey (); char j; jika (kunci! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (kunci); r = kunci-48; saya ++; j ++; jika (j == 2 - j == 5) {lcd.print (":"); j ++; } kelewatan (500); } jika (kunci == 'D') {kunci = 0; rehat; }} lcd.clear (); }
Dalam fungsi setup void () , kami telah menginisialisasi komunikasi LCD dan bersiri, dan mendefinisikan pin sebagai INPUT dan OUTPUT dalam kod di bawah.
persediaan tidak sah () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
Kerja Arduino Countdown Timer ini mudah tetapi kodnya agak rumit. Kod tersebut dijelaskan oleh komen dalam kod tersebut.
Pada mulanya, ia akan mencetak "Arduino Timer" pada paparan LCD sehingga anda menekan butang. Segera setelah anda menekan butang tekan, ia akan meminta untuk memasukkan durasi waktu undur dengan memanggil fungsi " setFeedingTime ". Kemudian anda boleh memasukkan jangka masa dengan bantuan Pad Kekunci. Kemudian anda perlu menekan 'D' untuk menjimatkan masa dan memulakan pemasa undur. Di sini dalam fungsi loop void () , kami telah melakukan beberapa pengiraan untuk mengurangkan waktu kedua demi detik dan untuk menunjukkan nilai yang tepat dari Jam, Minit dan Detik (HH: MM: SS) mengikut masa yang tinggal. Semua kodnya dijelaskan dengan baik oleh komen. Anda boleh menyemak kod lengkap dan video Demonstrasi di bawah.
Apabila pemasa mencapai sifar, bel mulai berbunyi dan berbunyi bip hanya 100 kali (mengikut kod). Untuk menghentikan bel, tekan dan tahan butang tekan. Anda boleh menggunakan Tombol Tekan bila-bila masa untuk menghentikan pemasa di antara pengiraan.