สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
By davidjwattsdavidjwatts.comติดตามเพิ่มเติมโดยผู้เขียน:
อย่างแรกเลย ทำไมถึงเรียกมันว่า Crap Clock? มันลดความคาดหวังด้วยความหวังที่จะเกินพวกเขา:-) ฉันล้อเล่นแน่นอน นาฬิกาแสดงถึงความล้มเหลวและความสำเร็จหลายอย่างของฉันในระดับที่เท่ากัน การแสดงทางกายภาพของผู้แพ้ในอุปกรณ์อิเล็กทรอนิกส์
อย่างที่สอง นี่ไม่ใช่วิธีที่จะทำให้ 'สิ่งของ' สะท้อนถึงตัวเลือกการออกแบบและวัสดุทั้งหมดที่คุณต้องการเพื่อสร้างของคุณเอง
Crap Clock เป็นนาฬิกาที่วิ่งจาก ATMEGA328 ซึ่งขับ 82 LEDs ผ่าน 74HC595 ขับไปตามแถวและ TLC5940 ที่กำลังจมกระแสข้ามคอลัมน์ เนื่องจาก DS3231 รักษาเวลาและสามารถทำงานต่อได้ด้วยขั้วอินพุตแบตเตอรี่ นาฬิกามี 'โหมด' หลายแบบเพื่อดูเวลา วันที่ ปี อุณหภูมิ จากนั้นโหมดสำหรับการตั้งเวลาและวันที่ด้วยปุ่มสองปุ่ม ไฟ LED สามารถหรี่แสงได้ด้วย TLC5940 และจอแสดงผลวินาที (ไฟ LED สีชมพูด้านบน) สามารถใช้เพื่อแสดงตัวอักษรตามบริบทควบคู่ไปกับโหมดที่นาฬิกาอยู่
มีคุณสมบัติสองสามอย่างที่ฉันไม่ได้ใช้หรือนำออกจาก PCB เช่น การชาร์จแบตเตอรี่ Li-ion ฉันทำในเวอร์ชันนี้เพื่อลดต้นทุนของชิ้นส่วนและเนื่องจาก DS3231 กินกระแสไฟเพียงเล็กน้อยเท่านั้น ยังมีพินสำหรับพิน INT/SQW สัญญาณเตือน DS3231 ในตัวและพินออดจาก ATMEGA พิน 10 ถูกแยกออกสำหรับการใช้งานทั่วไป และยังมีพินอะนาล็อกสำหรับคุณสมบัติเช่น LDR เพื่อปรับความสว่างตามแสงโดยรอบ
ฉันรวบรวมเพลย์ลิสต์ของวิดีโอทั้งหมดที่ฉันจำได้ว่าพูดถึงหรือออกแบบ Crap Clock
ขั้นตอนที่ 1: ขั้นตอนที่ 1: PCB และ Schematic
เลย์เอาต์และแผนผัง PCB ได้รับการออกแบบใน Eagle มันใช้เวลานานมาก;-) แต่มันก็สนุกมากและสอนฉันมากมายเกี่ยวกับการออกแบบ ไม่ต้องกังวลว่าจะยังมีข้อผิดพลาดอีกมากหากทุกโครงการอื่นๆ ที่ฉันทำ รวมถึงโครงการทั้งหมดที่ฉันไม่รู้ในงานนี้
ฉันต้องการให้นาฬิกามีการแสดงเมทริกซ์และเพื่อให้ทั้งหมดมีอยู่ในบอร์ดเดียว ดังนั้นฉันจึงเริ่มสร้างกระดานกลมเพื่อจำลองนาฬิกาอะนาล็อก ใช่…. ที่ไม่เกาะติด มันเป็นรูปร่างที่แย่มากในการกำหนดเส้นทางไปรอบๆ และต้องการหลอด LED นับล้าน (อาจหลายร้อย) ต่อไปฉันตัดสินใจสร้างจอแสดงผลสไตล์เมทริกซ์โดยใช้ LED ซึ่งเดิมทั้งหมดขับเคลื่อนด้วย shift register (ผู้เป็นที่เคารพ 74HC595) แต่สุดท้ายฉันตัดสินใจว่าไดรเวอร์ TLC5940 LED ที่คุ้นเคยจะดีมากในการดูดกระแสจาก LED เหล่านั้นและให้ภาพที่ยอดเยี่ยม คุณสมบัติของ PWM ลดแสง
นี่คือรายการวัสดุ:
คริสตัล 1 x 16 MHz SM49
ไฟ LED 82 x 0603 (สีใดก็ได้ที่คุณชอบ)
1 x Mini USB Type B (ไม่จำเป็น ใช้สำหรับจ่ายไฟที่แยกออกไปที่หมุดอยู่แล้ว)
ตัวเก็บประจุ 7 x 100nf 0805
ตัวต้านทาน 9 x 10k 0805
ตัวเก็บประจุ 2 x 10uf 0805 (ไม่จำเป็นจริงๆ และ 0805 มีราคาแพง)
ตัวต้านทาน 5 x 1k 0805
ตัวต้านทาน 1 x 2k 0805
5 x 2n3906 SOT23
ตัวต้านทาน 2 x 22pf 1206
ตัวต้านทาน 16 x 470 โอห์ม 0805
1 x 74HC595D SO16
1 x ATMEGA328P-AU
1 x DS3231 SO16W
2 x สวิตช์สัมผัส SMD DTSM-3
1 x TLC5940PWP
ขั้นตอนที่ 2: ขั้นตอนที่ 2: รหัสอึ
รหัสเป็นฝันร้ายเล็กน้อย แต่กลับกลายเป็นว่าการเข้ารหัสนาฬิกาด้วยหน้าจอ homebrew matrix นั้นไม่ใช่เรื่องง่ายแม้ว่าคุณจะใช้ห้องสมุดสองสามแห่ง
แน่นอนว่าไม่ใช่โค้ดที่ยอดเยี่ยม แต่เป็นโค้ดอึ แต่มันใช้งานได้และปรับเปลี่ยนได้ง่าย ฉันไม่รู้วิธีสร้างห้องสมุดเลย ดังนั้นนี่จึงเป็นเพียงซากรถไฟ ฮ่าฮ่า แต่จริงๆ แล้วฉันกำลังพยายามทำให้โค้ดของฉันดีขึ้นและเรียนรู้วิธีสร้างไลบรารีของตัวเอง
มันถูกเขียนขึ้นใน Arduino IDE และใช้บางไลบรารี (Shifter.h, MD_DS3231.h และ Tlc5940.h) ที่สร้างขึ้นโดยคนที่ฉลาดกว่ามากว่า I. คุณจะต้องอัปโหลดสิ่งนี้กับโปรแกรมเมอร์ ฉันใช้ Arduino เป็น ISP และ เชื่อมต่อกับการรีเซ็ต 11, 12, 13 พินบนกระดาน
ปุ่ม:
มีสองปุ่ม มีหลายฟังก์ชันขึ้นอยู่กับโหมดของนาฬิกา คุณสามารถใช้ปุ่มเหล่านี้เพื่อเปลี่ยนโหมดการแสดงผลไปข้างหน้าและย้อนกลับ ผ่านเวลา วันที่ ปี อุณหภูมิ จากนั้นเข้าสู่การตั้งค่าเวลา
ขั้นตอนที่ 3: ขั้นตอนที่ 3: Crap Case
"loading="lazy" ฉันสามารถพูดได้ว่ามันค่อนข้างไร้สาระ แต่ฉันก็ชอบมัน การออกแบบ PCB เวอร์ชันใหม่ไม่มีสายไฟที่น่าดึงดูด;-) สิ่งที่ฉันเสร็จแล้วนั้นขึ้นอยู่กับ บอร์ดต้นแบบของฉัน
รู้สึกอิสระที่จะฉีกมันออกจากกัน รีมิกซ์และใช้ส่วนใด ๆ ที่คุณเห็นว่ามีประโยชน์ ฉันได้รับความช่วยเหลือจากผู้คนมากมายจากชุมชน YouTube ตลอดระยะเวลาของโปรเจ็กต์นี้ ดังนั้นทุกคนจึงอยู่ในตอนจบ