กลับไปหน้ารวมไฟล์
first-ever-arduino-digital-watch-without-rtc-module-4d8e9b.md

ชื่อโปรเจกต์: นาฬิกาดิจิทัล Arduino เรือนแรกที่ไม่มีโมดูล RTC

เพื่อนๆ เรามักจะใช้โมดูล RTC ในการดึงค่าเวลาเสมอ แต่ผมได้ลองทำนาฬิกาโดยไม่มีโมดูล RTC ผมล้มเหลวไปสองครั้งด้วยเหตุผลสำคัญสองประการ คือความเร็วในการประมวลผลของ Arduino ทำให้ค่านาทีผิดพลาดเมื่อผมเขียนโค้ดว่า if seconds >59 minutes=minutes+1 และเมื่อผมใช้ฟังก์ชัน millis() วินาทีก็เพิ่มขึ้นเท่านั้น ไม่ลดลงเป็น 0 เมื่อถึง 60 หรือ 24

ตอนนั้นผมเหนื่อยมาก เลยทำการดีบักในวันถัดมา ผมได้เพิ่มฟังก์ชันบางอย่างที่สมบูรณ์แบบมาก จนผมดีใจและตื่นเต้นสุดๆ! เพราะหลังจากทดสอบทั้งหมดแล้ว มันทำงานได้อย่างราบรื่นและไม่มีข้อผิดพลาดเลย!

ดูวิดีโอและกดไลก์ แชร์ และสมัครสมาชิกด้วยนะ ถ้าคุณชอบ

มันยากมากสำหรับผมในการเขียนโค้ด แต่ผมก็จะแชร์โค้ดให้คุณถ้าคุณพบว่ามันมีประโยชน์ และถ้าคุณทำสำเร็จ โปรดแชร์ในช่องคอมเมนต์และกดปุ่ม Respect ด้วย เพื่อให้โปรเจกต์ของผมเป็นที่นิยมและผู้คนจำนวนมากสามารถนำแนวคิดจากโปรเจกต์ของผมไปใช้ได้

เพื่อนๆ ผมลืมบอกไปว่าคุณต้องบัดกรีหน้าจอ LCD ให้ดีขึ้นเพื่อผลลัพธ์ที่ดี หรือมิฉะนั้นมันอาจจะไม่ทำงาน หากคุณดูโค้ด นาฬิกาจะเริ่มจากเวลาเที่ยงคืนในเขตเวลา IST ดังนั้นผมจึงได้ให้คำแนะนำในโค้ดเพื่อเปลี่ยนค่า minutes, hours, seconds ตามเวลาของคุณ

รายละเอียดทางเทคนิคเพิ่มเติม

การจับเวลาด้วยซอฟต์แวร์ล้วนๆ

โปรเจกต์ที่มุ่งมั่นนี้สร้างนาฬิกาข้อมือดิจิทัลที่ทำงานได้อย่างสมบูรณ์ ซึ่งรักษาเวลาโดยใช้เพียง 16MHz ceramic resonator ภายในของ Arduino เท่านั้น

  • การรักษาเวลาด้วย Interrupt : ใช้ Timer interrupt ความถี่สูง (ทุก 1ms) เพื่อเพิ่มตัวนับ "Milliseconds" จากนั้นเฟิร์มแวร์จะแปลงค่านี้เป็น Seconds, Minutes และ Hours โดยใช้อัลกอริทึมคณิตศาสตร์ที่ได้รับการปรับแต่งอย่างเข้มงวดเพื่อป้องกันการคลาดเคลื่อนสะสม
  • โปรไฟล์การใช้พลังงานที่ประหยัดเป็นพิเศษ : Arduino จะอยู่ใน "Power-Down Sleep Mode" ตลอดเวลา 99% เมื่อกดปุ่ม นาฬิกาจะ "Wakes Up" (ตื่นขึ้น), แสดงเวลาบน OLED หรือ 7-Segment screen และเข้าสู่โหมด Sleep อีกครั้งทันที

การสร้างต้นแบบ

  • ผังวงจรที่ผ่านการยืนยันด้วย Fritzing : วงจรถูกย่อขนาดให้เล็กที่สุดเท่าที่จะเป็นไปได้โดยใช้ Fritzing เพื่อให้แน่ใจว่าแบตเตอรี่, Arduino และหน้าจอแสดงผลจะพอดีกับสายรัดข้อมือมาตรฐานได้อย่างสบาย

ข้อมูล Frontmatter ดั้งเดิม

title: "First ever arduino digital watch without rtc module"
description: "Each time we make a watch using arduino to fetch time but I added some logic to arduino to accurately fetch time."
author: "akk47"
category: ""
tags:
  - "arduinono1"
  - "watchwithoutrtc"
  - "letsbegin"
views: 8202
likes: 4
price: 2450
difficulty: "Intermediate"
components:
  - "1x Soldering iron kit."
  - "1x Jumper wires (generic)"
  - "1x Solderless Breadboard Full Size"
  - "1x Arduino UNO"
  - "1x Alphanumeric LCD, 16 x 2"
  - "1x Rotary potentiometer (generic)"
tools: []
apps:
  - "1x fritzing"
  - "1x Arduino IDE"
downloadableFiles:
  - "https://projects.arduinocontent.cc/9c366fbb-7e08-42fa-8100-0e732b89b610.ino"
documentationLinks: []
passwordHash: "10383466b28d65e41974a35409aa071943ed19574ededdb8cec8be202c147127"
encryptedPayload: "U2FsdGVkX18gVT1Q7mKtT7Peh/LXWibuW+k0n5fWcFbYMd6p0nDu9nX7xlqTS3DZtFb34ZaRQ4WiBxTYgfmK9P/1IGqXdxFjjB04gJmeeE2t5fPuv53Tn8wJLgIrpQwb"
seoDescription: "Learn how to build an Arduino digital watch without an RTC module using custom logic for accurate timekeeping in this DIY guide."
videoLinks:
  - "https://www.youtube.com/embed/0Dqw8z4V8NI"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/first-ever-arduino-digital-watch-without-rtc-module-4d8e9b_cover.jpg"
lang: "th"