สารบัญ:

Arduino Matrix Clock: 6 ขั้นตอน
Arduino Matrix Clock: 6 ขั้นตอน

วีดีโอ: Arduino Matrix Clock: 6 ขั้นตอน

วีดีโอ: Arduino Matrix Clock: 6 ขั้นตอน
วีดีโอ: ESP Matrix | DIY LED Matrix Clock ESP8266 MAX7219 Youtube Subscriber Counter 2024, กรกฎาคม
Anonim
Arduino Matrix Clock
Arduino Matrix Clock

คำอธิบาย:

สร้างนาฬิกาของคุณโดยใช้ Arduino, จอแสดงผลเมทริกซ์ และโมดูลนาฬิกาแบบเรียลไทม์ (RTC) นี่เป็นโครงการที่สนุกและเรียบง่ายซึ่งฉันรู้สึกดีมากสำหรับผู้เริ่มต้น นาฬิกาใช้โมดูล RTC เพื่อติดตามเวลา วัน เดือน และปีได้อย่างแม่นยำ นอกจากนี้ โมดูลยังมีเซ็นเซอร์อุณหภูมิในตัว คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับโมดูล DS3231 ได้ที่นี่ รวมถึงบัสการสื่อสาร I2C ที่ใช้ที่นี่ สุดท้ายนี้เราจะใช้ Dot Matrix Display เพื่อแสดงเวลา วันในสัปดาห์ เดือน เป็นต้น คุณสามารถข้อมูลเพิ่มเติมเกี่ยวกับการแสดงผลได้ที่นี่และไดรเวอร์ MAX7219 IC ในเอกสารข้อมูลด้านล่าง

คุณสามารถดาวน์โหลดเวอร์ชัน pdf สำหรับโครงการนี้ได้ที่นี่ มันเกือบจะเหมือนกับคำสั่งนี้

[อัปเดต: 2/22/19] อย่าใช้คู่มือ pdf ฉันได้อัปเดตคำแนะนำนี้แล้ว แต่การเปลี่ยนแปลงเหล่านั้นยังไม่ปรากฏใน pdf

ขั้นตอนที่ 1: รวบรวมส่วนประกอบ

ส่วนประกอบที่คุณต้องการสำหรับโครงการนี้:

  • Max7219 Dot Matrix Display [ซื้อที่นี่] [เอกสารข้อมูล]
  • RTC DS3231 [ซื้อที่นี่] [เอกสารข้อมูล]
  • แบตเตอรี่ 3V CR3032 (สำหรับ DS3231)

นอกจากนี้ คุณจะต้องมี Arduino ทุกชนิด (ควรเป็น Nano เพื่อลดขนาดของโครงการ) เขียงหั่นขนม สายจัมเปอร์ และ Arduino IDE ที่ติดตั้งบนพีซีของคุณ

ขั้นตอนที่ 2: ห้องสมุด

ห้องสมุด
ห้องสมุด

ดาวน์โหลดไลบรารีต่อไปนี้และติดตั้งไฟล์.zip ลงใน Arduino IDE โดยไปที่ Sketch > รวมไลบรารี > เพิ่มไลบรารี. Zip

หมายเหตุ: รุ่นมีความสำคัญ !!

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

MD_Parola 3.0.1:

MD_MAX72XX 3.0.2:

DS3231 1.0.2:

อีกทางหนึ่ง

ใน Arduino IDE ให้ไปที่ Sketch > Include Library > Manage Libraries และในแถบค้นหาประเภท: “MAX72XX” และคุณควรเห็นสิ่งต่อไปนี้ (ดูภาพ):

ติดตั้งเฉพาะ MD_MAX72XX และ MD_Parola MD_MAXPanel ไม่จำเป็น

ขั้นตอนที่ 3: ทดสอบส่วนประกอบของคุณ

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

ในการทดสอบโมดูล DS3231 RTC ให้เชื่อมต่อ DS3231 กับ Arduino (ดูสายไฟด้านล่าง) จากนั้นใน Arduino IDE ให้ไปที่ไฟล์ > ตัวอย่าง > DS3231 > DS3231_Test แล้วอัปโหลดแบบร่าง เปิด Serial Monitor และตรวจสอบว่าคุณได้รับวันที่ เวลา วัน.ฯลฯ ที่ถูกต้อง

หากต้องการทดสอบการแสดงผลเมทริกซ์ ก่อนอื่นให้เชื่อมต่อกับ Arduino (ดูการเดินสายไฟด้านล่าง) ถัดไป ใน Arduino IDE ให้ไปที่ไฟล์ > ตัวอย่าง > MD_Parola > Parola_HelloWorld และอัปโหลดภาพร่าง คุณควรเห็น HELLO พิมพ์อยู่บนจอแสดงผลและอาจพิมพ์กลับด้านหรือไม่ก็ได้ หากข้อความอยู่ข้างหลัง คุณต้องเปลี่ยนบรรทัดต่อไปนี้:

#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW

ถึง

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW

อัปโหลดภาพร่างอีกครั้งและปัญหาควรได้รับการแก้ไข

ตอนนี้เราได้ทดสอบส่วนประกอบแล้ว เราก็พร้อมที่จะเชื่อมต่อทุกอย่างเข้าด้วยกัน!

ขั้นตอนที่ 4: การเดินสายไฟ

การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ
การเดินสายไฟ

อ้างถึงไดอะแกรมหรือแผนผังหรือตาราง

ขั้นตอนที่ 5: CODE

รับรหัสที่นี่

หมายเหตุ: ฉันใช้รหัสเดิมโดยโครงการอิเล็กทรอนิกส์ แต่แก้ไขให้รองรับห้องสมุดปัจจุบัน (ณ เวลาที่เสร็จสิ้น)

คุณสมบัตินาฬิกา:

นาฬิกาถูกตั้งค่าให้บอกเวลาโดยอัตโนมัติในรูปแบบ 24 ชม. แต่สามารถเปลี่ยนเป็น 12 ชม. ได้อย่างง่ายดาย นาฬิกายังแสดงอุณหภูมิ (ทั้งในเซลเซียสและฟาเรนไฮต์) ฉันได้รวมคุณสมบัติที่เรียกว่า 'โหมดสลีป' ซึ่งตั้งค่าเป็น "ปิด" (ดูรายละเอียดโหมดสลีปด้านล่าง)

รูปแบบ 12 ชั่วโมง: หากต้องการตั้งนาฬิกาให้บอกเวลาในรูปแบบ 12 ชั่วโมง คุณจะต้องแสดงความคิดเห็นบรรทัดที่ 88

ชั่วโมง =Clock.gethour(h12, PM); // รูปแบบ 24 ชม.

และยกเลิกการใส่เครื่องหมายบรรทัดที่ 93 ถึง 100

ถ้า (Clock.getHour(h12, PM)>=13 || Clock.getHour(h12, PM)==0)

{ ชั่วโมง = Clock.getHour (12, PM) - 12; } อื่น ๆ { h = Clock.getHour (h12, PM); }

โหมดสลีป:

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

if(h == 12 || h<8) // ช่วงเวลา (ในกรณีนี้ ตั้งแต่ 02.00 น. ถึง 08.00 น.) { P.setIntensity(0); //ตั้งค่าความสว่างหน้าจอเป็นค่าต่ำสุด } อื่น { P.setIntensity(6) //ตั้งค่าความสว่างหน้าจอเป็น 6 (15 คือสว่างที่สุด) }

หมายเหตุ: ฉันพบปัญหาเมื่อใช้โหมดสลีปขณะตั้งนาฬิกาเป็นโหมด 12 ชม. คุณจะสังเกตเห็นว่าระบบจะทำงานวันละสองครั้งตั้งแต่ 8.00 น. และ 20.00 น. จะถูกแปลเป็นทั้ง 8 ดังนั้นหากคุณตั้งค่าโหมดสลีปให้เปิดใช้งานตั้งแต่ 21.00 น. ถึง 07.00 น. โหมดจะทำงานตั้งแต่ 9.00 น. ถึง 19.00 น. อย่างไรก็ตาม ปัญหานี้จะไม่เกิดขึ้นหากตั้งนาฬิกาเป็นโหมด 24 ชม.

ขั้นตอนที่ 6: บทสรุป

ยินดีด้วย!!! คุณมีนาฬิกาทำงาน นี่คือวิธีที่ฉันกลายเป็น [Clock Gallery] ฉันหวังว่าคุณจะไม่เพียงแค่เรียนรู้เพิ่มเติมเล็กน้อยเกี่ยวกับส่วนประกอบและการเข้ารหัสเท่านั้น แต่คุณยังสนุกกับการเดินทางไปที่นั่นอีกด้วย โปรดแบ่งปันความคิดของคุณเกี่ยวกับคู่มือนี้ที่ [email protected] นี่เป็นคู่มือโครงการฉบับแรกของฉันและหวังว่าจะให้บริการคุณได้ดี ฉันหวังว่าจะสร้างคำแนะนำเพิ่มเติมมากมาย นอกจากนี้ หากคุณมีคำถาม ข้อเสนอแนะ และ/หรือการปรับปรุงโครงการ โปรดส่งข้อความถึงฉัน

แนะนำ: