Daftar Isi:
- Langkah 1: Instruksi Hookup
- Langkah 2:
- Langkah 3:
- Langkah 4:
- Langkah 5:
- Langkah 6:
- Langkah 7:
- Langkah 8:
- Langkah 9: Instruksi Pemrograman
- Langkah 10:
- Langkah 11:
- Langkah 12:
- Langkah 13:
- Langkah 14:
Video: Proyek Jam Alarm Arduino: 14 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Dalam proyek ini, kita akan menggunakan Arduino Uno untuk mengontrol layar LCD untuk menunjukkan waktu dan waktu saat ini untuk mengatur alarm. Kami akan menggunakan tombol untuk mengatur setiap waktu.
Bahan:
- Arduino Uno -
- Papan tempat memotong roti -
- Kabel Jumper (x13+) -
- 10 resistor kohm (x4) -
- Layar LCD -
- 7 Tombol -
- Pembicara Piezo -
Langkah 1: Instruksi Hookup
1. Hubungkan kabel jumper dari pin 5V pada Arduino ke salah satu + rel pada breadboard.
Langkah 2:
2. Hubungkan kabel jumper dari pin GND pada Arduino ke rel - di sebelah rel + yang Anda pilih di papan tempat memotong roti.
Langkah 3:
3. Hubungkan layar LCD ke power, ground, dan pin TX (pin 1).
Langkah 4:
4. Tempatkan 7 kancing pada breadboard dengan kaki melewati celah pada breadboard.
Langkah 5:
5. Tempatkan 10 resistor kohm dari - rel dengan pin GND terhubung ke pin kiri bawah tombol.
Langkah 6:
6. Tempatkan kabel jumper di antara pin kanan bawah tombol dan rel 5V pada papan tempat memotong roti Anda.
Langkah 7:
7. Tempatkan kabel jumper di antara pin 6, lalu 8-13, dan pin pada tombol yang dihubungkan dengan resistor.
Langkah 8:
8. Selanjutnya, letakkan speaker Piezo Anda di papan tempat memotong roti dan sambungkan pin 7 ke pin daya, lalu resistor 100 ohm ke ground.
Langkah 9: Instruksi Pemrograman
1. Tinjauan: Proyek ini akan meminta pengguna untuk menyetel waktu saat ini pada daya awal pada tampilan waktu saat ini dan waktu alarm disetel. Tombol-tombol yang terhubung di atas akan digunakan untuk mengatur setiap waktu. Dari kiri ke kanan, mereka mengatur jam saat ini, mengatur menit saat ini, mengatur AM atau PM saat ini, mengatur jam alarm, mengatur menit alarm, mengatur alarm AM atau PM. Tombol terakhir digunakan untuk membungkam alarm saat berbunyi.
Langkah 10:
2. Hal pertama yang perlu kita lakukan adalah menginisialisasi variabel yang akan kita gunakan.
// Inisialisasi variabel yang akan digunakanint jam = 0; // Jam untuk waktu saat ini int menit = 0; //
Menit untuk waktu saat ini int detik = 0; // Detik untuk waktu sekarang
int jam_a = 0; int // Jam untuk waktu alarm
menit_a = 0; // Menit untuk waktu alarm
bool am_pm = salah; // tanda sakelar AM/PM. Salah adalah AM, Benar adalah PM
bool am_pm_a = salah; // AM/PM beralih bendera untuk alarm. Salah adalah AM, Benar adalah PM
int set_jam = 13; // Gunakan pin 13 untuk mengatur jam
int set_min = 12; // Gunakan pin 12 untuk mengatur menit ke
set_am_pm = 11; // Gunakan pin 11 untuk menyetel am/pm
int set_hr_a = 10; // Gunakan pin 10 untuk menyetel jam alarm int set_min_a = 9; // Gunakan pin 9 untuk menyetel menit untuk alarm int set_am_pm_a = 8; // Gunakan pin 8 untuk menyetel am/pm untuk alarm
int pembicara = 7; // Pin yang akan digunakan untuk speakerint quiet = 6; // Sematkan untuk menghentikan speaker
alarm bool = salah; // Tandai untuk beralih agar tetap mengkhawatirkan
bool ditenangkan = salah; // Bendera yang menunjukkan ketenangan belum ditekan
int saat_waktu = 0; // Variabel untuk waktu sekarang
int waktu = 0; // Variabel untuk waktu yang telah berlalu
Langkah 11:
3. Selanjutnya, kita perlu mengatur layar LCD dan memberitahu pengguna untuk mengatur waktu saat ini. Karena ini hanya perlu dilakukan sekali, kami akan melakukannya dalam rutinitas penyiapan.
batalkan pengaturan() {
// Siapkan layar LCD
Serial.begin(9600); // Inisialisasi Serial pada 9600 baud
Serial.tulis(17); // Nyalakan lampu belakang
Serial.write(24); // Nyalakan layar, dengan kursor dan tanpa berkedip
Serial.tulis(12); // Bersihkan layar
Serial.tulis(128); // Pindahkan kursor ke pojok kiri atas// Setel pinModes pinMode(set_hr, MEMASUKKAN); pinMode(set_min, INPUT);
pinMode(set_am_pm, INPUT);
pinMode(set_hr_a, INPUT);
pinMode(set_min_a, INPUT);
pinMode(set_am_pm_a, INPUT);
pinMode(speaker, OUTPUT);
pinMode(tenang, INPUT);
// Pada daya awal, minta pengguna mengatur waktu saat ini. Serial.print("Atur waktu sekarang"); penundaan(2000);
Serial.tulis(12);
printTime();
cur_time = milis(); // Menyimpan waktu saat ini}
Langkah 12:
4. Kemudian, dalam rutinitas loop, kami melacak waktu dan membaca status tombol untuk melihat apakah pengguna menyetel salah satu waktunya.
lingkaran kosong() {
// Jaga Waktu
keepTime();
// Periksa untuk melihat apakah sudah waktunya untuk alarm!
if((jam == jam_a && menit == menit_a && !diam) || alarm){nada(speaker, 2000, 500); // Keluarkan suara 2000 Hz ke speaker selama 500 ms
penundaan (500); // Tunda 500 ms if(!alarm){ // Jika alarm mati, hidupkan
}
}
// Jika pengguna membungkam alarm dengan menekan tombol senyap, hentikan alarm if(alarm && !quieted && digitalRead(quiet)){
alarm = salah;
diam = benar; }
// Setel ulang alarm if(!alarm && silent && minute != minute_a){ quieted = false;
}
// Periksa untuk melihat apakah pin yang disetel menjadi tinggi, dan jika demikian, tingkatkan nilai yang sesuaiif(digitalRead(set_hr) && jam < 12){
jam++;
printTime();
memantul();
}
else if (digitalRead(set_hr) && jam == 12){ jam = 1;
printTime();
memantul();
}
lain{}
if(digitalRead(set_min) && menit < 59){
menit++;printTimes();
memantul();
}
else if (digitalRead(set_min) && menit == 59){ menit = 0;
printTime();
memantul();
}
else{}if(digitalRead(set_am_pm) && am_pm){
am_pm = salah;
printTime();
memantul();
}
else if (digitalRead(set_am_pm) && !am_pm){ am_pm = true;printTimes();
memantul();
}
else{}if(digitalRead(set_hr_a) && jam_a < 12){
jam_a++;
printTime();
memantul();
}
else if (digitalRead(set_hr_a) && hour_a == 12){hour_a = 1;
printTime();
memantul();
}
else{}if(digitalRead(set_min_a) && menit_a < 59){
menit_a++;
printTime();
memantul();
}
else if (digitalRead(set_min) && menit_a == 59){minute_a = 0;
printTime();
memantul();
}
else{}if(digitalRead(set_am_pm_a) && am_pm_a){
am_pm_a = salah;
printTime();
memantul();
}
else if (digitalRead(set_am_pm_a) && !am_pm_a){am_pm_a = true;
printTime();
memantul();
}
lain{}
}
Langkah 13:
5. Di sini, Anda akan melihat beberapa subrutin yang saya buat - debounce() dan printTimes(). Debounce() digunakan untuk memastikan kita hanya membaca tombol sekali. Karena Arduino memindai ribuan kali per detik, mungkin mengira tombol itu ditekan beberapa kali padahal Anda hanya bermaksud membacanya sekali. Debounce() akan membekukan program sampai tombol dilepaskan. printTimes() memperbarui layar LCD, tetapi karena itu adalah beberapa perintah, saya mengetiknya sekali dan kemudian dapat memanggil subrutin setiap kali nilai waktu berubah.
// Saat salah satu tombol ditekan, tetap dalam fungsi ini lalu tunda 250 ms.
batalkan pantulan (){
while(digitalRead(set_hr) || digitalRead(set_min) ||
digitalRead(set_am_pm) || digitalRead(set_hr_a) ||
digitalRead(set_min_a) || digitalRead(set_am_pm_a)){} delay(250);
}
// Mencetak waktu yang diperbarui jika ada perubahan
batal printTimes(){
Serial.tulis(12);
Serial.print("Waktu Sekarang:");
Serial.tulis(148);
jika(jam < 10){
Serial.print("0");
}
Serial.print(jam);
Serial.print(":");
jika(menit < 10){
Serial.print("0");
}
Serial.print(menit);Serial.print(":");
jika(kedua < 10){
Serial.print("0");
}
Serial.print(kedua);
jika (am_pm){
Serial.print("PM");
}
lain{
Serial.print("AM");
}
Serial.tulis(168);
Serial.print("Alarm Disetel untuk:");
Serial.tulis(188);
if(jam_a < 10){
Serial.print("0");
}
Serial.print(jam_a);
Serial.print(":");
jika(menit_a < 10){
Serial.print("0");
}
Serial.print(menit_a);
jika (am_pm_a){
Serial.print("PM");
}
lain{
Serial.print("AM");
}
}
// Menambah parameter waktu batal
keepTime(){
etime = milis() - cur_time;
if(etime >= 1000 && detik < 59){
kedua++;
cur_time = milis();
printTime();
}
else if(etime >= 1000 && detik == 59 && menit < 59){ detik = 0;
menit++;
cur_time = milis();
printTime();
}
else if(etime >= 1000 && detik == 59 && menit == 59 && jam < 12){
detik = 0; menit =
0; jam++; saat_waktu =
mili(); printTime();
}
else if(etime >= 1000 && detik == 59 && menit == 59 && jam == 12){
detik = 0; menit =
0; jam = 1; am_pm =
!am_pm;
cur_time = milis();
printTime();
}
lain{}
}
Langkah 14:
6. Itu dia!
Kompilasi dan unggah dan Anda sudah selesai!
Direkomendasikan:
Cara Membuat RADAR Menggunakan Arduino untuk Proyek Sains - Proyek Arduino Terbaik: 5 Langkah
Cara Membuat RADAR Menggunakan Arduino untuk Proyek Sains | Proyek Arduino Terbaik: Hai teman-teman, dalam instruksi ini saya akan menunjukkan kepada Anda bagaimana membuat sistem radar luar biasa yang dibangun menggunakan arduino nano, proyek ini sangat ideal untuk proyek sains dan Anda dapat dengan mudah membuatnya dengan investasi dan peluang yang sangat sedikit jika memenangkan hadiah besar untuk
Jam Alarm Cerdas: Jam Alarm Cerdas Dibuat Dengan Raspberry Pi: 10 Langkah (dengan Gambar)
Jam Alarm Cerdas: Jam Alarm Cerdas yang Dibuat Dengan Raspberry Pi: Pernahkah Anda menginginkan jam pintar? Jika iya, ini solusinya untuk Anda! Saya membuat Smart Alarm Clock, ini adalah jam yang bisa Anda ubah waktu alarmnya sesuai dengan website. Saat alarm berbunyi, akan ada suara (buzzer) dan 2 lampu akan
Jam Jaringan ESP8266 Tanpa RTC - Nodemcu NTP Jam Tidak Ada RTC - PROYEK JAM INTERNET: 4 Langkah
Jam Jaringan ESP8266 Tanpa RTC | Nodemcu NTP Jam Tidak Ada RTC | INTERNET CLOCK PROJECT : Pada project ini akan dibuat project clock tanpa RTC, akan memakan waktu dari internet menggunakan wifi dan akan ditampilkan pada layar st7735
10 Proyek Dasar Arduino untuk Pemula! Buat Setidaknya 15 Proyek Dengan Satu Papan!: 6 Langkah
10 Proyek Arduino Dasar untuk Pemula! Buat Setidaknya 15 Proyek Dengan Satu Papan!: Proyek Arduino & Papan Tutorial; Termasuk 10 proyek Arduino dasar. Semua kode sumber, file Gerber, dan lainnya. Tidak ada SMD! Solder mudah untuk semua orang. Komponen yang mudah dilepas dan diganti. Anda dapat membuat setidaknya 15 proyek dengan satu
Pembakar Bertenaga USB! Proyek Ini Dapat Membakar Melalui Plastik / Kayu / Kertas (Proyek yang menyenangkan Juga Harus Kayu yang Sangat Halus): 3 Langkah
Pembakar Bertenaga USB! Proyek Ini Dapat Membakar Plastik/ Kayu / Kertas (Proyek Menyenangkan Juga Harus Kayu Sangat Halus): JANGAN MEMBUAT INI MENGGUNAKAN USB!!!! saya menemukan bahwa itu dapat merusak komputer Anda dari semua komentar. komputer saya baik-baik saja tho. Gunakan pengisi daya telepon 600ma 5v. saya menggunakan ini dan berfungsi dengan baik dan tidak ada yang rusak jika Anda menggunakan steker pengaman untuk menghentikan daya