สารบัญ:

Infinity Clock - Arduino - WS2813 และ DS3231: 5 ขั้นตอน (พร้อมรูปภาพ)
Infinity Clock - Arduino - WS2813 และ DS3231: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Infinity Clock - Arduino - WS2813 และ DS3231: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Infinity Clock - Arduino - WS2813 และ DS3231: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Часы – матрица на Arduino и адресных светодиодах WS2812B. 2024, พฤศจิกายน
Anonim
Image
Image
นาฬิกาอินฟินิตี้ - Arduino - WS2813 และ DS3231
นาฬิกาอินฟินิตี้ - Arduino - WS2813 และ DS3231

นาฬิกาอินฟินิตี้ - Arduino - WS2813 และ DS3231

ฉันต้องการสร้างนาฬิกาและชอบความคิดที่จะลองทำนาฬิกาแบบอินฟินิตี้ด้วย Arduino ฉันอยากให้มันสร้างจากสิ่งของทั่วไป และเขียนโปรแกรมด้วยตัวเอง

นาฬิกาอินฟินิตี้คืออะไร?

เอฟเฟกต์กระจกเงาลวงตา 3 มิติจะเกิดขึ้นเมื่อใดก็ตามที่มีพื้นผิวสะท้อนแสงสองแบบขนานกัน ซึ่งสามารถสะท้อนลำแสงไปมาได้ไม่จำกัดจำนวนครั้ง (ไม่จำกัดตามทฤษฎี) แสงสะท้อนดูเหมือนจะถอยออกไปในระยะไกลเพราะจริงๆ แล้วแสงจะเคลื่อนที่ผ่านระยะทาง โดยการเพิ่ม LED สีลงในกระจก Infinity เราพยายามจำลองนาฬิกาอะนาล็อกโดยใช้แสงสีที่ถอยห่างออกไปเป็นเข็มนาฬิกา

ในคำแนะนำนี้ ฉันจะแนะนำคุณผ่านขั้นตอนต่างๆ ในการสร้างนาฬิกาอินฟินิตี้ จากนั้นตรวจสอบพารามิเตอร์ที่ปรับได้ในโปรแกรม

ขั้นตอนที่ 1: ชิ้นส่วนที่จำเป็นสำหรับโครงการนี้

ชิ้นส่วนที่จำเป็นสำหรับโครงการนี้
ชิ้นส่วนที่จำเป็นสำหรับโครงการนี้

ส่วนรายการ:

  1. Arduino Uno $ 6 สำหรับ taydaelectronics
  2. Protoshield สำหรับ Arduino Uno คุณสามารถรับได้ในราคา 2.50 ใน Amazon ที่นี่
  3. DS3231 บวกแบตเตอรี่ คุณสามารถรับได้ประมาณ 3.00 น. ใน Amazon ที่นี่
  4. WS2813 LED 144 ยาว 1 เมตร $ 20 ใน Amazon ที่นี่
  5. 470 OHM 1 W ตัวต้านทานฟิล์มคาร์บอนประมาณ 1 เซ็นต์สำหรับ Taydaelectronics
  6. 1000uf 16V ตัวเก็บประจุด้วยไฟฟ้า 9 เซ็นต์บน Taydaelectronics
  7. แหล่งจ่ายไฟ 5v- ฉันใช้ที่ชาร์จ blackberry รุ่นเก่า
  8. กระจกกลม 6 นิ้ว. ประมาณ $ 5 ใน Amazon
  9. แผ่นอะคริลิคขนาด 6 นิ้วประมาณ 10 ชิ้นใน Amazon
  10. ห่วงปักไม้ขนาด 2 - 6 นิ้ว (ใช่แล้ว) อันละ $2 ใน amazon
  11. ฟิล์มกระจกทางเดียวสีเงิน อีเบย์ดูเหมือนจะถูกที่สุด
  12. สายไฟต่างๆ
  13. เดือยไม้สี่เหลี่ยม 3/8" HomeDepot ราคา 1.27 เหรียญ
  14. ฐานนาฬิกาไม้เก่าหรือแท่นโชว์อื่นๆ
  15. 2 ซิปเล็ก

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

คุณอาจต้องใช้หัวแร้ง

ฉันคาดว่าโครงการจะมีราคาประมาณ $40.00

ขั้นตอนที่ 2: ตั้งค่าพีซีของคุณ

ตั้งค่าพีซีของคุณ
ตั้งค่าพีซีของคุณ
ตั้งค่าพีซีของคุณ
ตั้งค่าพีซีของคุณ
ตั้งค่าพีซีของคุณ
ตั้งค่าพีซีของคุณ

หากนี่เป็นโครงการ Arduino แรกของคุณ:

  1. ดาวน์โหลดซอฟต์แวร์ Arduino จาก arduino.cc
  2. เชื่อมต่อ Arduino กับพีซีด้วยสาย USB
  3. เมื่อคุณเริ่มซอฟต์แวร์ คุณจะต้องติดตั้งไลบรารีสามตัว:

    • คลิกที่เมนู "ร่าง" จากนั้นคลิก "รวมไลบรารี" จากนั้น "จัดการไลบรารี…"
    • ติดตั้งสองไลบรารี: FastLED และ RTClib ดูภาพสำหรับรายละเอียดเพิ่มเติม
  4. รับ Arduino scketch จาก github. ของฉัน

    • ฉันจะตรวจสอบโค้ดในตอนท้ายเพื่อให้คุณแก้ไขได้ตามต้องการ
    • ณ จุดนี้ให้โหลดโปรแกรม Infinity_Clock_DS3231_WS2813.ino
  5. ไปที่ Sketch and Upload เพื่อโหลด Arduino
  6. ส่วนสุดท้ายของ Instructable นั้นครอบคลุมพารามิเตอร์ที่กำหนดค่าได้บางส่วน

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

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

โครงการเดินสายไฟ
โครงการเดินสายไฟ
โครงการเดินสายไฟ
โครงการเดินสายไฟ

หากคุณกำลังใช้ ProtoType Shield ให้วางไว้บน Arduino

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

DS3231 - โมดูลนาฬิกาเรียลไทม์

ใส่โมดูล DS3231 ลงในเขียงหั่นขนมและเชื่อมต่อตามภาพ

  • Arduino กราวด์เป็น GND
  • Arduino 5V เป็น VCC
  • Arduino A4 เป็น SDA
  • Arduino A5 ถึง SCL

ในภาพฉันต่อสาย 5v และกราวด์เพื่อวิ่งบนเขียงหั่นขนมเพราะในภายหลังเราจะต้องการต่อไฟภายนอก

ติดแถบ LED WS2813

  • arduino 5V เป็นพลังงาน 5V ของคุณ
  • ตัวเชื่อมต่อสองตัวตรงกลางเป็นพินข้อมูลสำรอง พวกเขาไปปักหมุด7

    ตรวจสอบให้แน่ใจว่าได้ใส่ตัวต้านทาน 470 OHM ระหว่าง pin7 และสายข้อมูลสองตัว

  • Arduino Ground กับขั้วต่อสุดท้าย

ต่อแหล่งจ่ายไฟภายนอก 5V (ไม่แนะนำให้ใช้แถบ LED จากพลังงาน Arduino เป็นเวลานาน)

  • ใส่ตัวเก็บประจุแบบอิเล็กโทรไลต์ 1000uf ระหว่างลีด
  • เชื่อมต่อพลังงานและกราวด์กับ Arduino Power (5V) และกราวด์ (GND)

ฉันไม่แนะนำให้เชื่อมต่อพลังงานภายนอกและ USB เข้ากับ Arduino ในเวลาเดียวกัน

ขั้นตอนที่ 4: สร้างกระจกอินฟินิตี้

สร้างกระจกอินฟินิตี้
สร้างกระจกอินฟินิตี้

ขั้นตอนในการสร้างกระจกอินฟินิตี้:

  1. ติดฟิล์มกับแผ่นอะคริลิก สิ่งนี้จะทำให้สะท้อนทางเดียวของคุณ
  2. ใส่แผ่นอะคริลิกในห่วงปักผ้า ขันสกรูให้แน่นเพื่อไม่ให้ลื่นไถล
  3. ติดกระจกเข้ากับห่วง Embroiery อีกอัน ขันสกรูให้แน่น
  4. ตัดเดือยสี่เหลี่ยมเป็นส่วนเล็ก ๆ ประมาณ 1/2"
  5. วนแถบไฟ LED โดยให้ไฟ LED ชี้อยู่ภายในวงกลม

    1. ใช้สายรัดซิปเพื่อยึดตัวนำเข้าที่
    2. คุณอาจต้องตัดรอยบากในการผูกซิป
  6. ใส่ห่วงบนกระจก

    1. ใช้บล็อคไม้เป็นตัวเว้นวรรค
    2. กาวบล็อกเข้าที่ พวกเขาควรจะปลอดภัยพอที่จะยึดตัวนำเข้าที่
  7. ใส่กระจกอะคริลิกที่ด้านบนของกระจก/ไฟ LED และกาวเข้าที่

ขั้นตอนที่ 5: รหัส

รหัส
รหัส
รหัส
รหัส

โปรแกรมใช้ไลบรารี Real Time Clock และไลบรารี Fastled

ต่อไปนี้คือข้อมูลโค้ดบางส่วนเพื่อปรับแต่งลักษณะการทำงาน

  • OFFSET - เป็นการทับซ้อนกัน โปรแกรมคาดว่าการทับซ้อนจะมาจาก LED0 ฉันมีออฟเซ็ต 3 LED
  • CLOCKSTART - เป็นที่ที่เวลาเที่ยงอยู่บนนาฬิกา LED 30 ทำให้อยู่ตรงข้ามกับจุดต่อไฟฟ้า

ฉันเขียนโปรแกรมเพื่อใช้สี HTML คุณสามารถรับได้จาก https://htmlcolorcodes.com/ เพียงสลับ # เป็น 0x ในโปรแกรม

คุณสามารถเปลี่ยนพื้นหลังสำหรับ am/pm

  • พื้นหลังAM =0x070707;
  • พื้นหลังPM =0x646D7E;

เข็มนาฬิกา LED:

  • ชั่วโมงมือ =0x000FFF;
  • นาทีมือ =0x00CC00;
  • วินาทีมือ = 0xcc0000;

เพื่อให้ดูโดดเด่น ฉันได้เพิ่มตัวเลือกให้มีไฟ LED 3 ดวงสำหรับเข็มชั่วโมง แต่อนุญาตให้คุณเปลี่ยนสีทั้งสองด้านของหน้าปัดตรงกลางเพื่อให้ดูโดดเด่นได้

  • theeledhour=จริง; //คุณจะทำให้เป็นจริงหรือเท็จ
  • extraHourHand = 0x00001F;

คุณสมบัติที่ดีอีกประการหนึ่งคือ RTClib จะตรวจพบว่า DS3231 ของคุณถอดแบตเตอรี่ออกแล้ว และจะตั้งเวลาให้เป็นเวลาคอมไพล์พีซี เป็นคุณลักษณะที่ดีสำหรับ DS3231 ใหม่

หากคุณไม่ได้รับภาพสเก็ตช์ในตอนต้นของเอกสาร สามารถพบได้ใน GitHub

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

แนะนำ: