Daftar Isi:
Video: Jam Presisi: 3 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Kita semua membutuhkan jam jadi mengapa tidak membuatnya sendiri dalam instruksi ini. Saya akan menunjukkan kepada Anda cara membuat jam Presisi setelah Anda menyetel akan secara otomatis melacak waktu saat ini di latar belakang segalanya. Sementara juga hanya membutuhkan persediaan yang sangat sedikit dan nol solder.
Perlengkapan
Pertama, Anda memerlukan Arduino tetapi Arduino apa pun akan berfungsi
Selanjutnya, Anda akan membutuhkan bermacam-macam kabel jumper generik.
2 Saklar Tombol Tekan Sparkfun 12mm
Papan tempat memotong roti tradisional
dan layar LCD 1602 16 pin
Langkah 1: Pengkabelan
Agar jam ini berfungsi, Anda perlu menghubungkan ini dengan cara yang sangat spesifik atau Anda akan mendapatkan banyak angka acak di layar daripada waktu.
Langkah 2: Kode
Karena kami tidak menggunakan RTC, kami kodenya akan sedikit panjang tapi untungnya saya telah melakukan semua kerja keras untuk Anda dan menyediakannya di sini.
Cukup Salin dan Tempel ini ke Arduino IDE atau Editor web.
#sertakan "LiquidCrystal.h"
// Ini mendefinisikan kabel LCD ke pin DIGITAL const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Pengaturan Kontras LCD Digital int cs=9;// pin 9 untuk kontras PWM const int contrast = 100;// kontras default
// tampilan Waktu awal adalah 12:59:45 int h=12; int m=59; int s=45; int bendera=1; //PM
// Tombol Pengaturan Waktu int button1; int tombol2;
// Definisi pin untuk Tombol Pengaturan Waktu int hs=0;// pin 0 untuk Pengaturan Jam int ms=1;// pin 1 untuk Pengaturan Menit
// Waktu Lampu Latar Waktu Habis const int Time_light=150; int bl_TO=Waktu_cahaya;// Waktu Habis Lampu Latar int bl=10; // Lampu latar pin const int lampu latar=120; // tidak lebih dari 7mA !!!
// Untuk pembacaan Waktu yang akurat, gunakan Arduino Real Time Clock dan bukan hanya delay() static uint32_t last_time, now = 0; // RTC
void setup() { lcd.begin(16, 2); pinMode(hs, INPUT_PULLUP);// hindari resistor Pullup eksternal untuk Tombol 1 pinMode(ms, INPUT_PULLUP);// dan Tombol 2 analogWrite(cs, contrast);// Sesuaikan Kontras VO analogWrite(bl, lampu latar);// Putar pada Lampu Latar sekarang=milis(); // membaca nilai awal RTC }
void loop() { lcd.begin(16, 2);// setiap detik // Perbarui Layar LCD // Cetak WAKTU dalam Jam, Min, Detik + AM/PM lcd.setCursor(0, 0); lcd.print("Waktu"); if(h<10)lcd.print("0");// selalu 2 digit lcd.print(h); lcd.print(":"); if(m<10)lcd.print("0"); lcd.print(m); lcd.print(":"); if(s<10)lcd.print("0"); lcd.print(s);
if(bendera==0) lcd.print("AM"); if(bendera==1) lcd.print("PM"); lcd.setCursor(0, 1);// untuk Baris 2 lcd.print("Jam presisi");
// peningkatan penggantian penundaan(1000) // Akurasi yang jauh lebih baik, tidak lagi bergantung pada waktu eksekusi loop
for (int i=0;i<5;i++)// buat 5 kali pengulangan 200ms, untuk respons Tombol yang lebih cepat {
while ((sekarang-waktu_terakhir)<200) //delay200ms { sekarang=milis(); } // loop dalam 200ms last_time=sekarang; // bersiap untuk putaran berikutnya
// baca Tombol Pengaturan button1=digitalRead(hs);// Tombol Baca button2=digitalRead(ms);
//Waktu lampu latar habis bl_TO--; if(bl_TO==0) { analogWrite(bl, 0);// Lampu latar MATI bl_TO++; } // Tekan sembarang untuk mengaktifkan Backlight if(((button1==0)|(button2==0)) & (bl_TO==1)) { bl_TO=Time_light; analogWrite(bl, lampu latar); // tunggu sampai Tombol dilepaskan while ((button1==0)|(button2==0)) { button1=digitalRead(hs);// Tombol Baca button2=digitalRead(ms); } } else // Proses Tombol 1 atau Tombol 2 saat ditekan saat Lampu Latar menyala { if(button1==0){ h=h+1; bl_TO=Waktu_cahaya; analogWrite(bl, lampu latar); }
if(tombol2==0){ s=0; m=m+1; bl_TO=Waktu_cahaya; analogWrite(bl, lampu latar); }
/* ---- mengatur detik, menit, jam am/pm overflow ----*/ if(s==60){ s=0; m=m+1; } jika(m==60) { m=0; h=h+1; } jika(h==13) { j=1; bendera=bendera+1; jika(bendera==2)bendera=0; }
if((button1==0)|(button2==0))// Perbarui tampilan jika tombol yang disetel waktu ditekan { // Perbarui Layar LCD // Cetak WAKTU dalam Jam, Menit, Detik + AM/PM lcd.setCursor(0, 0); lcd.print("Waktu"); if(h<10)lcd.print("0");// selalu 2 digit lcd.print(h); lcd.print(":"); if(m<10)lcd.print("0"); lcd.print(m); lcd.print(":"); if(s<10)lcd.print("0"); lcd.print(s);
if(bendera==0) lcd.print("AM"); if(bendera==1) lcd.print("PM"); lcd.setCursor(0, 1);// untuk Baris 2 lcd.print("Jam presisi"); }
} // akhiri jika lain }// akhiri untuk
// loop luar 1000ms
s=s+1; //menambah detik. menghitung // ---- mengatur detik, menit, jam am/pm overflow ---- if(s==60){ s=0; m=m+1; } jika(m==60) { m=0; h=h+1; } jika(h==13) { j=1; bendera=bendera+1; jika(bendera==2)bendera=0; }
// Ujung lingkaran }
Langkah 3: Skema (Ini Sebenarnya Bukan Langkah)
Jika ada yang membaca ini adalah kutu buku teknologi, di sini juga ada skema, Anda bisa melihatnya menjadi gila.
Nikmati dan bersenang-senang dan yang terpenting tetap segar.
Direkomendasikan:
Arduino Nano - Tutorial Sensor Altimeter Presisi MPL3115A2: 4 Langkah
Arduino Nano - Tutorial Sensor Altimeter Presisi MPL3115A2: MPL3115A2 menggunakan sensor tekanan MEMS dengan antarmuka I2C untuk memberikan data Tekanan/Ketinggian dan Suhu yang akurat. Output sensor didigitalkan oleh ADC 24-bit resolusi tinggi. Pemrosesan internal menghilangkan tugas kompensasi dari
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
Particle Photon - Tutorial Sensor Altimeter Presisi MPL3115A2: 4 Langkah
Foton Partikel - Tutorial Sensor Altimeter Presisi MPL3115A2: MPL3115A2 menggunakan sensor tekanan MEMS dengan antarmuka I2C untuk memberikan data Tekanan/Ketinggian dan Suhu yang akurat. Output sensor didigitalkan oleh ADC 24-bit resolusi tinggi. Pemrosesan internal menghilangkan tugas kompensasi dari
Eksperimen Perbaikan Presisi: 11 Langkah
Eksperimen Rektifikasi Presisi: Saya baru-baru ini melakukan eksperimen pada rangkaian rektifikasi presisi dan mendapatkan beberapa kesimpulan kasar. Mengingat rangkaian penyearah presisi merupakan rangkaian umum, maka hasil percobaan ini dapat memberikan beberapa informasi referensi
Pulse Oximeter Dengan Presisi Jauh Lebih Baik: 6 Langkah (dengan Gambar)
Pulse Oximeter Dengan Ketepatan yang Jauh Lebih Baik: Jika Anda baru saja mengunjungi dokter, kemungkinan besar tanda-tanda vital dasar Anda diperiksa oleh seorang perawat. Berat badan, tinggi badan, tekanan darah, serta denyut jantung (HR) dan saturasi oksigen dalam darah tepi (SpO2). Mungkin, dua yang terakhir diperoleh dari