Membuat Timer Hitung Mundur Arduino yang Andalan dengan Layar 7-Segmen SparkFun
Komponen dan Perlengkapan
 | | × | 1 | |
 | | × | 1 | |
 | | Layar 7-Segmen Serial SparkFun - Merah |
| × | 1 | |
 | | × | 1 | |
 | | × | 1 | |
Aplikasi dan Layanan Online
Tentang Proyek Ini
Proyek ini dirancang khusus karena saya tidak memiliki timer yang siap pakai. Untuk menggunakan proyek ini, Anda cukup unggah kode ke Arduino Anda (tipe apa pun akan berfungsi), Anda hanya perlu mengunggah kode ke Arduino dan hitung mundur akan otomatis dimulai. Jika Anda ingin mengubah waktu total, Anda perlu mengubah bagian kode ini. INGAT!!! 1000 = 1 detik. jadi 60000 = 60 detik atau persamaan (SECx1000) akan memberi Anda total angka untuk dimasukkan ke tempat 60000. Akhirnya saat Anda menekan tombol reset, counter otomatis memulai ulang.
long n = 60000; //waktu awal -> DAPAT DIUBAH MENJADI APA PUN YANG ANDA INGINKAN
Kode
Kode
Gunakan kode ini untuk menjalankan timer hitung mundur Anda
//7 segement pin number - 7 segement light - arduino pin number //pin 11 - A = 12 //pin 7 - B = 10 //pin 4 - C = 8 //pin 2 - D = 7 //pin 1 - E = 6 //pin 10 - F = 11 //pin 5 - G = 9 //pin 3 is decimal /* 12 11 10 9 8 7 | | | | | | A --- F | | B | G | --- E | | C | | --- . dec D | | | | | | 1 2 3 4 5 6 */ //pin 12 - first digit = 1 //pin 9 - second digit = 2 //pin 8 - third digit = 3 //pin 6 fourth digit = 4 const int a = 12; const int b = 10; const int c = 8; const int d = 7; const int e = 6; const int f = 11; const int g = 9; int p = 0; int startStopReset = 13; const int d1 =1; const int d2 =2; const int d3 =3; const int d4 =4; long n = 60000; //waktu awal -> DAPAT DIUBAH MENJADI APA PUN YANG ANDA INGINKAN int x = 100; int del = 55; //nilai penundaan void setup() { pinMode(d1, OUTPUT); pinMode(d2, OUTPUT); pinMode(d3, OUTPUT); pinMode(d4, OUTPUT); pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); pinMode(p, OUTPUT); pinMode(startStopReset, INPUT); digitalWrite(startStopReset, HIGH); } void loop() { digitalWrite (p, HIGH); clearLEDs(); pickDigit(1); pickNumber((n/x/1000)%10); delayMicroseconds(del); clearLEDs(); pickDigit(2); pickNumber((n/x/100)%10); delayMicroseconds(del); clearLEDs(); pickDigit(3); dispDec(3); pickNumber((n/x/10)%10); delayMicroseconds(del); clearLEDs(); pickDigit(4); pickNumber(n/x%10); delayMicroseconds(del); n--; //'n++' for stopwatch if (digitalRead(13) == LOW) { n = 60000; //restart time -> CHANGE TO WHATEVER TIME YOU ORIGONALLY SET (start time) } } void pickDigit(int x) //changes digit { digitalWrite(d1, HIGH); digitalWrite(d2, HIGH); digitalWrite(d3, HIGH); digitalWrite(d4, HIGH); switch(x) { case 1: digitalWrite(d1, LOW); break; case 2: digitalWrite(d2, LOW); break; case 3: digitalWrite(d3, LOW); digitalWrite(p, HIGH); //new break; default: digitalWrite(d4, LOW); break; } } void pickNumber(int x) //changes value of number { switch(x) { default: zero(); break; case 1: one(); break; case 2: two(); break; case 3: three(); break; case 4: four(); break; case 5: five(); break; case 6: six(); break; case 7: seven(); break; case 8: eight(); break; case 9: nine(); break; } } void dispDec(int x) { digitalWrite(p, LOW); } void clearLEDs() { digitalWrite(a, LOW); digitalWrite(b, LOW); digitalWrite(c, LOW); digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, LOW); digitalWrite(g, LOW); digitalWrite(p, LOW); } void zero() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, HIGH); digitalWrite(g, LOW); } void one() { digitalWrite(a, LOW); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, LOW); digitalWrite(g, LOW); } void two() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, LOW); digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, LOW); digitalWrite(g, HIGH); } void three() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, LOW); digitalWrite(f, LOW); digitalWrite(g, HIGH); } void four() { digitalWrite(a, LOW); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, HIGH); digitalWrite(g, HIGH); } void five() { digitalWrite(a, HIGH); digitalWrite(b, LOW); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, LOW); digitalWrite(f, HIGH); digitalWrite(g, HIGH); } void six() { digitalWrite(a, HIGH); digitalWrite(b, LOW); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, HIGH); digitalWrite(g, HIGH); } void seven() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, LOW); digitalWrite(e, LOW); digitalWrite(f, LOW); digitalWrite(g, LOW); } void eight() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, HIGH); digitalWrite(f, HIGH); digitalWrite(g, HIGH); } void nine() { digitalWrite(a, HIGH); digitalWrite(b, HIGH); digitalWrite(c, HIGH); digitalWrite(d, HIGH); digitalWrite(e, LOW); digitalWrite(f, HIGH); digitalWrite(g, HIGH); }
Skema Rangkaian
Gunakan diagram penyambungan ini untuk menghubungkan layar 7-segmen 4 digit ke Arduino Anda