Daftar Isi:

Jam Presisi: 3 Langkah
Jam Presisi: 3 Langkah

Video: Jam Presisi: 3 Langkah

Video: Jam Presisi: 3 Langkah
Video: CARA MENGATASI JARUM JAM CHRONOGRAPH TIDAK BERATURAN DENGAN CARA KALIBRASI - GALERY JAM TANGAN 2024, November
Anonim
Jam presisi
Jam presisi

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

Pengkabelan
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)

Skema (Ini Sebenarnya Bukan Langkah)
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: