Arduino Nano โปรเจกต์นาฬิกา ที่ไม่ต้องคอยตั้งใหม่บ่อย ๆ

Arduino Nano กับนาฬิกา LED ที่จริงจัง - ตรงเวลา

Arduino Nano กับนาฬิกา LED ที่จริงจังกับคำว่า "ตรงเวลา"

นาฬิกา LED ที่ใช้ Arduino Nano ESP32 และจอ LED Matrix ที่แม่นยำ นี่คือโปรเจกต์สำหรับผู้ที่อยากมีนาฬิกาดิจิทัลที่แสดงเวลาถูกต้องแม่นยำได้ทั้งวัน ทำความเข้าใจการซิงค์เวลาผ่าน NTP และการปรับเวลามาตรฐานข่าย

Arduino Nano LED Matrix Clock

นาฬิกา LED ที่แม่นยำจากต้นจนจบ

🛠️ อุปกรณ์ที่ใช้ในโปรเจกต์

ไมโครคอนโทรลเลอร์:

  • Arduino Nano ESP32 - บอร์ดหลักของโปรเจกต์

ส่วนประกอบการแสดงผล:

  • MAX7219 LED Matrix Driver - 1 ตัว
  • 8x8 LED Matrix - 4 ตัว (รวมกัน 32x8 สำหรับแสดงเวลา)

ส่วนประกอบการเชื่อมต่อและจ่ายไฟ:

  • USB Cable - สำหรับโปรแกรมและจ่ายไฟ
  • WiFi Connection - สำหรับดึงข้อมูลเวลา
  • Breadboard และสายไฟ - สำหรับการเชื่อมต่อ

📖 เรื่องราว - เกิดจากไหน

โปรเจกต์นี้เกิดจากความต้องการมีนาฬิกาแบบดิจิทัลที่สวยงาม แม่นยำ และแสดงเวลาได้อย่างชัดเจน นาฬิกา LED Matrix สามารถแสดงตัวเลขขนาดใหญ่และสั่นกระพือได้หากต้องการ ส่วนโครงการนี้จึงเลือกใช้ Arduino Nano ESP32 เพราะมีขนาดเล็ก ราคาถูก แต่มีความสามารถสูง และมี WiFi ในตัว เหมาะสำหรับดึงข้อมูลเวลาจากเซิร์ฟเวอร์ NTP บนอินเทอร์เน็ต

Software Interface

ส่วนของอินเตอร์เฟสซอฟต์แวร์

💻 Arduino Nano ESP32 และ Web Editor

Arduino Nano ESP32 คือบอร์ดไมโครคอนโทรลเลอร์ที่มีขนาดเล็กมากแต่มีพลังและฟีเจอร์มากมาย ส่วนสำคัญคือ:

  • ประสาทกลาง ESP32 - ช่วยให้เชื่อมต่อ WiFi ได้โดยตรง
  • ขาเสียบ I/O หลายขา - ใช้สำหรับเชื่อมต่อ MAX7219 และ LED Matrix
  • ความเร็วประมาณ 240 MHz - เหมาะสำหรับการคำนวณเวลาและควบคุม LED

Arduino Web Editor เป็นเครื่องมือออนไลน์ที่ให้เขียนโค้ด Arduino ผ่านเบราว์เซอร์ได้ เมื่อเขียนเสร็จสามารถอัปโหลดลงบอร์ดได้ทันที โดยไม่ต้องติดตั้งโปรแกรมเพิ่มเติม

Circuit Schematic

วงจรเชื่อมต่อทั้งหมด

⚙️ ส่วนประกอบและการตั้งค่า

MAX7219 LED Driver

MAX7219 เป็นชิปอิเล็กทรอนิกส์ที่ออกแบบมาสำหรับควบคุม LED Matrix จำนวนมาก มีลักษณะเฉพาะ:

  • ควบคุมได้ถึง 64 หลอด LED (LED Matrix 8x8 หนึ่งตัว)
  • ติดต่อสื่อสารผ่าน SPI (Serial Peripheral Interface)
  • ประหยัดไฟเพราะควบคุมความสว่างของ LED ได้

LED Matrix ขนาด 8x8

LED Matrix แต่ละตัวมี LED 64 หลอดเรียงกันเป็นตาราง 8 แถว 8 คอลัมน์ เราใช้ 4 ชิป MAX7219 ร่วมกัน เพื่อแสดงตัวเลขเวลาขนาดใหญ่ (เช่น 12:34) อย่างชัดเจนบนหน้าจอ

การเชื่อมต่อ SPI

เชื่อมต่อ MAX7219 กับ Arduino Nano ESP32 ผ่านสายเชื่อมต่อสาม:

  • CLK (Clock) - บอกเวลาของการส่งข้อมูล
  • DIN (Data In) - ข้อมูลที่ส่งไปยัง MAX7219
  • CS (Chip Select) - เลือกว่าจะส่งข้อมูลให้กับ MAX7219 ตัวไหน
Hardware Assembly

การประกอบชิ้นส่วนทั้งหมด

🌐 การซิงค์เวลาผ่าน NTP และ DST

NTP (Network Time Protocol)

NTP เป็นเพรอโตคอลที่ใช้ดึงข้อมูลเวลาที่แม่นยำจากเซิร์ฟเวอร์บนอินเทอร์เน็ต Arduino Nano ESP32 จะเชื่อมต่อ WiFi และขอข้อมูลเวลาจากเซิร์ฟเวอร์ NTP (เช่น time.nist.gov) เพื่อให้นาฬิกาแสดงเวลาที่ถูกต้องเสมอ

DST (Daylight Saving Time)

DST คือการปรับเวลาตามฤดูกาล ในบางประเทศจะปรับนาฬิกาข้างหน้า 1 ชั่วโมงในฤดูร้อน และถอยหลัง 1 ชั่วโมงในฤดูหนาว โค้ด Arduino จะตรวจสอบวันที่และเวลาปัจจุบัน และปรับเวลาอัตโนมัติตามกฎ DST ของประเทศของคุณ

ตัวอย่างการเขียนโค้ด

configTime(7 * 3600, 0, "pool.ntp.org", "time.nist.gov"); - บรรทัดนี้บอกให้ ESP32 ตั้งเขตเวลาเป็น UTC+7 (เวลาประเทศไทย) และซิงค์เวลาจากเซิร์ฟเวอร์

🎨 LedControl Library

LedControl เป็นไลบรารี Arduino ที่ออกแบบมาเพื่อควบคุม MAX7219 และ LED Matrix อย่างง่ายดาย โดยไม่ต้องเขียนโค้ดที่ซับซ้อน ฟังก์ชั่นหลักของ LedControl:

  • setIntensity() - ปรับความสว่างของ LED Matrix
  • displayDigit() - แสดงตัวเลขบน LED Matrix
  • setLed() - เปิด/ปิด LED เดี่ยวๆ
  • clearDisplay() - เคลียร์ LED Matrix
PCB Design Overview

ออกแบบ PCB พิมพ์วงจร

🔋 การจ่ายไฟ

นาฬิกา LED ต้องการไฟฟ้าอย่างต่อเนื่อง เพราะ LED Matrix ต้องการกระแสไฟเป็นจำนวนมาก (โดยเฉพาะเมื่อแสดงผลหลากสี) วิธีการจ่ายไฟ:

  • USB Power: ใช้สายไฟ USB ต่อเข้า Arduino Nano ESP32 โดยตรง (ง่ายแต่ต้องมีคอมพิวเตอร์ใกล้เคียง)
  • Power Bank: ใช้ Power Bank 5V ต่อผ่าน USB ได้ทั้งวัน
  • External Power Supply: ใช้ Adapter 5V ขนาด 2-3A เพื่อให้ LED Matrix สว่าง

⚠️ คำแนะนำ: LED Matrix ต้องการกระแสมากถึง 1-2A เมื่อแสดงผลสมบูรณ์ ต้องใช้ Power Supply ที่มีกระแส 2A ขึ้นไป เพื่อไม่ให้ Arduino เกินไฟ

Development Process

กระบวนการพัฒนาโปรเจกต์

💡 คำแนะนำการเขียนโค้ด

1. การประกาศ LedControl

LedControl lc = LedControl(DIN, CLK, CS, 4);
พารามิเตอร์: DIN=ขาส่งข้อมูล, CLK=ขา Clock, CS=ขา Chip Select, 4=จำนวน MAX7219 ที่ใช้

2. แสดงตัวเลขบน LED Matrix

lc.setDigit(0, 0, hours / 10, false);
พารามิเตอร์: 0=MAX7219 ตัวแรก, 0=หลักที่ 0, hours/10=ตัวเลขที่แสดง, false=ไม่มีจุดทศนิยม

3. ประมวลผลเวลา

time_t now = time(nullptr);
struct tm* timeinfo = localtime(&now);

รับข้อมูลเวลาปัจจุบันและแยกเป็นชั่วโมง นาที วินาที

4. Loop หลักของโปรแกรม

โปรแกรมหลักควรทำสิ่งเหล่านี้ในลูปไม่สิ้นสุด: อ่านเวลาปัจจุบัน แยกชั่วโมง นาที วินาที แสดงบน LED Matrix รอ 1 วินาที แล้วทำซ้ำ

Details and Assembly

รายละเอียดการประกอบชิ้นส่วน

🏗️ PCB พิมพ์วงจรและกล่อง 3D

ออกแบบ PCB

แทนที่จะใช้ Breadboard เราสามารถออกแบบ PCB (Printed Circuit Board) เพื่อให้นาฬิกามีลักษณะมืออาชีพและทนทาน โปรเจกต์นี้ใช้เฟิร์มแวร์ KiCAD เพื่อออกแบบ PCB คุณสามารถส่งไปสั่งทำได้ที่เว็บไซต์อย่าง PCBWay.com

กล่อง 3D Printed

ออกแบบกล่องให้พอดีกับ LED Matrix และ Arduino Nano ESP32 โดยใช้แอปพลิเคชัน FreeCAD หรือ Tinkercad จากนั้นพิมพ์ 3D ได้ที่ Online Service หรือศูนย์พิมพ์ 3D ท้องถิ่น กล่อง 3D จะให้นาฬิกาดูสวยงามและป้องกันชิ้นส่วนไม่ให้ตกหล่น

ประเมินต้นทุน

  • Arduino Nano ESP32: ~$15
  • MAX7219 + LED Matrix ชุด 4 ตัว: ~$20
  • สายไฟและอื่นๆ: ~$5
  • PCB พิมพ์: ~$10-20
  • พิมพ์ 3D: ~$10-30 (ขึ้นอยู่กับขนาด)
  • รวมทั้งหมด: ~$60-80
Assembly Step 1

ขั้นตอนการประกอบ 1

Assembly Step 2

ขั้นตอนการประกอบ 2

Final Result 1

ผลลัพธ์ขั้นสุดท้าย 1

Final Result 2

ผลลัพธ์ขั้นสุดท้าย 2

ต้องการชิ้นส่วน Arduino Nano ESP32 MAX7219 และ LED Matrix?


Blog posts

© 2026 บริษัท โกลบอลโทรนิค อินเตอร์เทรด จํากัด, ขับเคลื่อนโดย Shopify

    • PayPal

    เข้าสู่ระบบ

    ลืมรหัสผ่านใช่ไหม?

    ยังไม่มีบัญชีใช่ไหม?
    สร้างบัญชี