Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Mga kable
- Hakbang 2: Ang Code
- Hakbang 3: Schematic (Hindi Ito Talagang Isang Hakbang)
Video: Precision Clock: 3 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Kailangan nating lahat ng mga orasan kaya't bakit hindi gumawa ng iyong sarili sa itinuturo na ito na ipapakita ko sa iyo kung paano gumawa ng isang Precision na orasan kapag naitakda mo ay awtomatikong masusubaybayan ang kasalukuyang oras sa background ng lahat. Habang nangangailangan lamang ng napakakaunting mga supply at zero solderings.
Mga gamit
Una, kakailanganin mo ang isang Arduino ngunit ang anumang Arduino ay gagana
Susunod, kakailanganin mo ang isang assortment ng mga generic na jumper wires.
2 12mm Sparkfun Pushbutton Switch
Isang tradisyonal na Breadboard
at isang LCD 1602 16 pin display
Hakbang 1: Mga kable
Upang gumana ang orasan na ito kailangan mong i-wire ito sa isang napaka-tukoy na paraan o kung hindi makakakuha ka ng isang pangkat ng mga random na numero sa screen kaysa sa oras.
Hakbang 2: Ang Code
Dahil hindi kami gumagamit ng isang RTC kami ang code ay medyo mahaba ngunit salamat na nagawa ko ang lahat ng pagsusumikap para sa iyo at ibinigay ito rito.
Kopyahin lamang at I-paste ito sa alinman sa Arduino IDE o sa web Editor.
# isama ang "LiquidCrystal.h"
// Tinutukoy nito ang mga kable ng LCD sa DIGITALpins const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
// Digital LCD Constrast setting int cs = 9; // pin 9 para sa kaibahan PWM const int contrad = 100; // default na kaibahan
// paunang pagpapakita ng Oras ay 12:59:45 PM int h = 12; int m = 59; int s = 45; int flag = 1; // PM
// Time Set Buttons int button1; int button2;
// kahulugan ng Pin para sa Mga Button ng Oras ng Oras int hs = 0; // pin 0 para sa Mga Oras na Pagtatakda sa int ms = 1; // pin 1 para sa Mga Pagtatakda ng Mga Minuto
// Backlight Time Out const int Time_light = 150; int bl_TO = Time_light; // Backlight Time-Out int bl = 10; // Backlight pin const int backlight = 120; // wala nang 7mA !!!
// Para sa tumpak na pagbabasa ng Oras, gamitin ang Arduino Real Time Clock at hindi lamang antalahin () static uint32_t last_time, now = 0; // RTC
void setup () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // iwasan ang panlabas na resistors ng Pullup para sa Button 1 pinMode (ms, INPUT_PULLUP); // at Button 2 analogWrite (cs, kaibahan); // Ayusin ang Contrast VO analogWrite (bl, backlight); // Turn sa Backlight ngayon = millis (); // basahin ang paunang halaga ng RTC}
void loop () {lcd.begin (16, 2); // bawat segundo // Update LCD Display // Print TIME in Hour, Min, Sec + AM / PM lcd.setCursor (0, 0); lcd.print ("Oras"); kung (h <10) lcd.print ("0"); // laging 2 digit lcd.print (h); lcd.print (":"); kung (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); kung (s <10) lcd.print ("0"); lcd.print (s);
kung (flag == 0) lcd.print ("AM"); kung (flag == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // para sa Line 2 lcd.print ("Precision orasan");
// pinabuting kapalit ng pagkaantala (1000) // Mas mahusay na kawastuhan, hindi na umaasa sa oras ng pagpapatupad ng loop
para sa (int i = 0; i <5; i ++) // gumawa ng 5 oras 200ms loop, para sa mas mabilis na tugon ng Button {
habang ((now-last_time) <200) // delay200ms {now = millis (); } // inner 200ms loop last_time = now; // maghanda para sa susunod na loop
// read Setting Buttons button1 = digitalRead (hs); // Read Buttons button2 = digitalRead (ms);
// Backlight time out bl_TO--; kung (bl_TO == 0) {analogWrite (bl, 0); // Backlight OFF bl_TO ++; } // Pindutin ang anuman upang buhayin ang Backlight kung (((button1 == 0) | (button2 == 0)) & (bl_TO == 1)) {bl_TO = Time_light; analogWrite (bl, backlight); // maghintay hanggang mailabas ang Button habang ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // Basahin ang Butones Button = digitalRead (ms); }} pa // Pag-proseso ng Button 1 o Button 2 kapag na-hit habang Backlight sa {kung (button1 == 0) {h = h + 1; bl_TO = Oras_light; analogWrite (bl, backlight); }
kung (button2 == 0) {s = 0; m = m + 1; bl_TO = Oras_light; analogWrite (bl, backlight); }
/ * ---- pamahalaan ang segundo, minuto, oras ng umaga / overflow ng ---- * / kung (s == 60) {s = 0; m = m + 1; } kung (m == 60) {m = 0; h = h + 1; } kung (h == 13) {h = 1; flag = flag + 1; kung (flag == 2) flag = 0; }
kung ((button1 == 0) | (button2 == 0)) // I-update ang display kung ang pindutan ng set ng oras ay pinindot {// Update LCD Display // Print TIME in Hour, Min, Sec + AM / PM lcd.setCursor (0, 0); lcd.print ("Oras"); kung (h <10) lcd.print ("0"); // laging 2 digit lcd.print (h); lcd.print (":"); kung (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); kung (s <10) lcd.print ("0"); lcd.print (s);
kung (flag == 0) lcd.print ("AM"); kung (flag == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // para sa Line 2 lcd.print ("Precision orasan"); }
} // pagtatapos kung iba pa} // pagtatapos para sa
// panlabas na 1000ms loop
s = s + 1; // increment sec. pagbibilang // ---- pamahalaan ang mga segundo, minuto, oras ng umaga / pm overflow ---- kung (s == 60) {s = 0; m = m + 1; } kung (m == 60) {m = 0; h = h + 1; } kung (h == 13) {h = 1; flag = flag + 1; kung (flag == 2) flag = 0; }
// Loop end}
Hakbang 3: Schematic (Hindi Ito Talagang Isang Hakbang)
Kung ang sinumang nagbabasa nito ay isang tech nerd dito ay isang eskematiko rin na maaari mong tingnan itong mabaliw.
Masiyahan at magsaya at higit sa lahat manatiling sariwa.
Inirerekumendang:
Paano Gumawa ng Analog Clock & Digital Clock Sa Led Strip Gamit ang Arduino: 3 Hakbang
Paano Gumawa ng Analog Clock & Digital Clock Sa Led Strip Gamit ang Arduino: Ngayon ay gagawa kami ng isang Analog Clock & Digital na orasan na may Led Strip at MAX7219 Dot module na may Arduino. Itatama ang oras sa lokal na time zone. Ang Analog na orasan ay maaaring gumamit ng isang mas mahabang LED strip, kaya maaari itong i-hang sa pader upang maging isang artwor
Memory Puzzle Clock Clock: 3 Hakbang (na may Mga Larawan)
Memory Puzzle Alarm Clock: Ito ay isang Alarm Puzzle Clock na nangangahulugang mayroong isang maliit na laro ng memorya na kailangan mong malutas upang ihinto ang pag-ring ng alarma! Bilang isang buod, ang orasan na ito ay para sa kung sino ang nakakainis sa umaga. Mayroon itong 3 LEDs na kapag pinindot mo ang alinman sa mga pindutan, ang alarma ay magiging
Retire Clock / Count Up / Dn Clock: 4 Hakbang (na may Mga Larawan)
Retire Clock / Count Up / Dn Clock: Mayroon akong ilan sa mga 8x8 LED dot-matrix na ito na nagpapakita sa drawer at iniisip kung ano ang gagawin sa kanila. May inspirasyon ng iba pang mga itinuturo, nakuha ko ang ideya na bumuo ng isang count down / up na display upang mabilang sa isang hinaharap na petsa / oras at kung ang target na oras p
Smart Alarm Clock: isang Smart Alarm Clock na Ginawa Ng Raspberry Pi: 10 Hakbang (na may Mga Larawan)
Smart Alarm Clock: isang Smart Alarm Clock na Ginawa Ng Raspberry Pi: Nais mo na ba ang isang matalinong orasan? Kung gayon, ito ang solusyon para sa iyo! Gumawa ako ng Smart Alarm Clock, ito ay isang orasan na maaari mong baguhin ang oras ng alarma ayon sa website. Kapag pumapatay ang alarma, magkakaroon ng tunog (buzzer) at 2 ilaw ang
ESP8266 Network Clock Nang Walang Anumang RTC - Nodemcu NTP Clock Walang RTC - PROYEKTO SA INTERNET CLOCK: 4 na Hakbang
ESP8266 Network Clock Nang Walang Anumang RTC | Nodemcu NTP Clock Walang RTC | INTERNET CLOCK PROJECT: Sa proyekto ay gagawa ng isang proyekto sa orasan nang walang RTC, magtatagal ito mula sa internet gamit ang wifi at ipapakita ito sa display na st7735