จอแสดงผลเมทริกซ์เชิงเวลา: นาฬิกาแขวนผนังดิจิทัล
การนับวินาทีโดยใช้ delay(1000) ภายในลูปของ Arduino รับประกันความคลาดเคลื่อนของเวลาอย่างสมบูรณ์ ภายในสองวัน นาฬิกาของคุณจะคลาดเคลื่อนอย่างมากเนื่องจากการแกว่งของอุณหภูมิที่ส่งผลต่อซิลิคอนออสซิลเลเตอร์ภายใน Digital Wall Clock ที่เชื่อถือได้อย่างสมบูรณ์จะต้องใช้สถาปัตยกรรมทางกายภาพที่เป็นอิสระ! Arduino จะสอบถามข้อมูลจากชิป RTC DS3231 ซึ่งเป็นฮาร์ดแวร์ที่มีความแม่นยำสูงและชดเชยอุณหภูมิได้ ผ่านบัส I2C และส่งค่า epoch ที่แม่นยำเหล่านั้นไปยังไดรเวอร์ MAX7219 ขนาดใหญ่ทันที เพื่อขับเคลื่อนจอแสดงผล 7-segment LED แบบ multiplexed ที่สว่างมากและใหญ่พอที่จะมองเห็นได้จากทั่วทั้งยิมเนเซียมขนาดใหญ่!

มาตรฐานที่สมบูรณ์แบบ: DS3231 ฮาร์ดแวร์ RTC
DS1307 รุ่นเก่าจะคลาดเคลื่อนอย่างมากหากอุณหภูมิห้องสูงขึ้น DS3231 เป็น Silicon-Oscillator ระดับสูงที่มีเทอร์โมมิเตอร์ภายในเพื่อชดเชยการเปลี่ยนแปลงความถี่ของคริสตัลโดยเฉพาะ!
- ไลบรารี
<RTClib.h>ที่แม่นยำอย่างเหลือเชื่อจะควบคุมชิปจริงโดยตรงผ่านบัสA4และA5(SDA/SCL) - RTC จะยังคงทำงานต่อไปโดยใช้แบตเตอรี่สำรองแบบกระดุม CR2032 แม้ว่าไฟเมน 5V หลักจะดับไปโดยสมบูรณ์!
DateTime now = rtc.now(); // Pull the absolute hardware Time array!
int h_time = now.hour();
int m_time = now.minute();
int s_time = now.second();
// Format it into a 4-digit number (e.g., 14:05 becomes 1405)!
int displayValue = (h_time * 100) + m_time;
display.showNumberDecEx(displayValue, (0x80 >> 1), true); // Blast to the 7-Seg LED!
MAX7219 และ TM1637 Shift Registers สำหรับจอแสดงผล
การต่อสายจอแสดงผล 7-segment 8 หลักเข้ากับ Arduino โดยตรงด้วยตนเองนั้นต้องใช้สายไฟแยกกันถึง 64 เส้น และลูป software-polling ที่ซับซ้อนอย่างไม่มีที่สิ้นสุด
- คุณต้องใช้โมดูลจอแสดงผล Shift Register MAX7219 หรือ TM1637!
- ชิป integrated ที่ทนทานอย่างเหลือเชื่อเหล่านี้จะรับหน้าที่อันหนักหน่วงในการ multiplexing LED โดยอิสระ
- Arduino ใช้อินเทอร์เฟซ
SPIความเร็วสูงที่ซับซ้อน โดยใช้สายไฟเพียงสี่เส้นเชื่อมต่อกับจอแสดงผล: "แสดงเลข 9 ที่ตำแหน่ง #2!" และชิปจะคงสถานะ LED นั้นไว้เพื่อให้ Arduino สามารถเข้าสู่โหมด sleep ได้!
สถาปัตยกรรมประกอบวงจรเวลา
- Arduino Nano (Nano ขนาดกะทัดรัดพิเศษสามารถติดตั้งด้านหลังแผง LED array ขนาดใหญ่ได้อย่างง่ายดาย)
- DS3231 I2C Real Time Clock Module (แบตเตอรี่ลิเธียม CR2032 มีความสำคัญอย่างยิ่งต่อการอยู่รอดเมื่อไฟดับ!)
- แผงจอแสดงผล 7-Segment LED MAX7219 / TM1637 ขนาดใหญ่ (มักจะเชื่อมต่อแบบ chain-linked เพื่อแสดงชั่วโมง นาที และวินาทีที่ชัดเจนได้อย่างราบรื่น)
- ปุ่มกด "Set Time" แบบ Tactile (ต่อเข้ากับ Digital Pins พร้อม
INPUT_PULLUPเพื่อให้สามารถปรับเวลา Daylight Savings ได้ด้วยตนเองโดยไม่ต้องเชื่อมต่อแล็ปท็อป) - แหล่งจ่ายไฟ 5V ขนาดใหญ่ (หากคุณต้องการอัปเดตโมดูล 7-Segment Matrix ขนาดใหญ่ 4 นิ้ว พอร์ต USB ของ Arduino จะร้อนจัดอย่างรุนแรง ควรจ่ายไฟ 5V ขนาด 2A+ โดยตรง!)