การสร้างนาฬิกาด้วย Arduino, จอแสดงผล OLED และโมดูลนาฬิกา DS1307 แบบเรียลไทม์ (RTC) เป็นโครงการที่สนุกและใช้งานได้จริง โมดูล DS1307 RTC ช่วยให้เวลาแม่นยำแม้ในขณะที่ Arduino ถูกขับออกไปในขณะที่ OLED ให้อินเทอร์เฟซที่ทันสมัยสำหรับการแสดงเวลาปัจจุบัน บทช่วยสอนนี้จะแนะนำคุณตลอดกระบวนการทีละขั้นตอน
สิ่งที่คุณต้องการ
- บอร์ด Arduino (เช่น uno, mega, nano)
- จอแสดงผล OLED 0.91 " (อินเทอร์เฟซ I2C)
- โมดูล DS1307 RTC
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
- ห้องสมุด: Adafruit SSD1306, Adafruit GFX และ RTCLIB
ขั้นตอนที่ 1: การเดินสายส่วนประกอบ
การเดินสายจอแสดงผล OLED (I2C)
หมุดโอเลด | พิน Arduino |
---|---|
VCC | 5V |
gnd | gnd |
SDA | A4 |
SCL | A5 |
การเดินสายโมดูล DS1307 RTC (I2C)
RTC PIN | พิน Arduino |
---|---|
VCC | 5V |
gnd | gnd |
SDA | A4 |
SCL | A5 |
บันทึก: หากใช้บอร์ด Arduino ที่มีพิน SDA และ SCL เฉพาะ (เช่น Mega) ให้เชื่อมต่อ OLED และ RTC SDA/SCL กับพินแทน
ขั้นตอนที่ 2: การติดตั้งไลบรารีที่ต้องการ
ในการทำงานกับ OLED Display และ DS1307 RTC คุณต้องมีไลบรารีต่อไปนี้:
- Adafruit SSD1306 (สำหรับ OLED)
- Adafruit GFX (ห้องสมุดกราฟิกสำหรับ OLED)
- rtclib (สำหรับฟังก์ชั่น RTC)
การติดตั้งไลบรารี
- เปิด Arduino IDE
- ไป ร่าง> รวมไลบรารี> จัดการไลบรารี.
- ค้นหาและติดตั้ง:
- "Adafruit SSD1306"
- "Adafruit GFX Library"
- "rtclib"
ขั้นตอนที่ 3: อัปโหลดรหัส
นี่คือรหัสที่จะแสดงเวลาปัจจุบันของ OLED โดยใช้โมดูล DS1307 RTC:
รหัสตัวอย่าง
ขั้นตอนที่ 4: ปรับเวลา
หาก RTC ไม่ทำงานหรือต้องอัปเดตเวลาบรรทัดต่อไปนี้ในไฟล์ setup()
ฟังก์ชั่นตั้งค่า RTC เป็นเวลาปัจจุบัน:
-
F(__DATE__)
และF(__TIME__)
เป็นมาโครที่ตั้งค่าวันที่และเวลาจากคอมพิวเตอร์ของคุณโดยอัตโนมัติเมื่ออัปโหลดรหัส
หากต้องการตั้งค่าเวลาที่กำหนดด้วยตนเองให้ใช้:
ขั้นตอนที่ 5: ปรับแต่งจอแสดงผล
คุณสามารถปรับแต่งการแสดงนาฬิกาโดย:
-
การเปลี่ยนขนาดข้อความ: ใช้
display.setTextSize()
เพื่อปรับขนาดตัวอักษร - การเพิ่มกราฟิก: ใช้ไลบรารี Adafruit GFX เพื่อวาดรูปร่างเช่นเส้นหรือสี่เหลี่ยม
- เวลาในการจัดรูปแบบ: เพิ่มรูปแบบ AM/PM หรือ 24 ชั่วโมงตามต้องการ
ตัวอย่าง: การเพิ่ม AM/PM
การแก้ไขปัญหา
-
OLED ไม่แสดง:
- ตรวจสอบให้แน่ใจว่าการจับคู่ที่อยู่ I2C (โดยทั่วไป
0x3C
หรือ0x3D
). - ตรวจสอบการเชื่อมต่อสายไฟ
- ตรวจสอบให้แน่ใจว่าการจับคู่ที่อยู่ I2C (โดยทั่วไป
-
RTC ไม่พบ:
- ตรวจสอบการเชื่อมต่อ SDA และ SCL
- ตรวจสอบให้แน่ใจว่ามีการใส่แบตเตอรี่ RTC อย่างถูกต้อง
-
เวลาไม่ถูกต้อง:
- ใช้
rtc.adjust()
เพื่อตั้งค่าเวลาที่ถูกต้อง
- ใช้
แอปพลิเคชัน
- นาฬิกาโต๊ะ DIY
- ตัวจับเวลาและสัญญาณเตือนภัย
- นาฬิกาที่เปิดใช้งาน IoT พร้อมเซ็นเซอร์เพิ่มเติม
- โครงการการศึกษา
บทสรุป
ด้วยการรวม Arduino, 0.91 "OLED และ DS1307 RTC คุณสามารถสร้างนาฬิกาที่ถูกต้องและดึงดูดสายตาด้วยการปรับแต่งสองสามครั้งคุณสามารถปรับแต่งนาฬิกาให้เหมาะกับความต้องการของคุณหรือรวมเข้ากับโครงการขนาดใหญ่ เช่นการเตือนภัยหรือการซิงโครไนซ์อินเทอร์เน็ตเพื่อนำโครงการของคุณไปสู่อีกระดับ!