สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: เชื่อมต่อส่วนประกอบ
- ขั้นตอนที่ 2: ชิ้นส่วนที่พิมพ์ 3 มิติ
- ขั้นตอนที่ 3: รหัส
- ขั้นตอนที่ 4: การใช้งานและการตั้งค่า
วีดีโอ: นาฬิกาเกษียณอายุ / นับขึ้น / นาฬิกา Dn: 4 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ฉันมีจอแสดงผล LED dot-matrix ขนาด 8x8 สองสามตัวในลิ้นชักและกำลังคิดว่าจะทำอย่างไรกับมัน ฉันได้รับแรงบันดาลใจจากผู้สอนคนอื่น ฉันมีแนวคิดที่จะสร้างการนับถอยหลัง/ขึ้นแสดงเพื่อนับถอยหลังสู่วันที่/เวลาในอนาคต และหากเวลาเป้าหมายผ่านไป ให้นับขึ้นจากมัน ตอนนี้ฉันทำนาฬิกาเกษียณอายุไว้บนหิ้งแล้ว
ความคิดที่จะใส่มันลงในขวดนั้นเป็นอุบัติเหตุมากกว่าในขณะที่คิดเกี่ยวกับปลอกหุ้ม คนอื่นเอาเรือใส่ขวด ทำไมไม่ใส่นาฬิกาล่ะ?
ฉันยังต้องการให้นาฬิกาเป็นไปตามเวลาออมแสง และแน่นอนว่าต้องจำการตั้งค่าและเวลาเมื่อถอดปลั๊ก ฉันกำลังเปิดเครื่องนาฬิกาผ่าน USB ซึ่งทำให้สามารถตั้งโปรแกรมใหม่ได้หากคุณต้องการทำอะไรที่แตกต่างออกไปหรือเพียงแค่เพิ่มคุณสมบัติให้กับโค้ด โค้ดนี้ค่อนข้างเรียบง่ายและสามารถใช้การเพิ่มประสิทธิภาพได้เป็นจำนวนมาก ฉันไม่ได้ดูแลเรื่องการใช้ RAM ให้ดีฉันต้องยอมรับ ถ้าฉันมีเวลาและแรงจูงใจ ฉันจะกลับมา
เสบียง
1. Arduino นาโน
2. RTC (ฉันใช้ DS3231 ทั่วไปซึ่งมี EEPROM ด้วย)
3. โมดูลดอทเมทริกซ์ 12x 8x8 (ฉันมีโมดูลสี่ตัวซึ่งง่ายต่อการจัดเรียง)
4. LDR เพื่อปรับความสว่างของจอแสดงผล
5. ตัวต้านทาน 10 kOhm
6. ตัวเก็บประจุ 5x 100 uF ระงับการแหลมจากจอแสดงผล
7. เพื่อเพิ่มความคมชัดของโมดูล 8x8 ฉันใช้ "ฟิล์มหน้าต่าง" สีเข้ม จอแสดงผลจะแสดง LED เป็นจุดสีขาวหากไม่ติดสว่าง ฟิล์มกระจกเปลี่ยนให้เป็นสีดำเงา
ขั้นตอนที่ 1: เชื่อมต่อส่วนประกอบ
ฉันใช้จอแสดงผลแบบสี่เหลี่ยมสามจอเพื่อประกอบจอแสดงผล หากต้องการแสดงวันที่ด้วยเครื่องหมายทับและเวลาด้วยเครื่องหมายทวิภาค เราต้องการพื้นที่ว่างสำหรับอักขระ 8 ตัว การใช้แบบอักษร 5x7 ทั่วไป เราต้องการบล็อกขนาด 8x8 หกบล็อกต่อแถว ฉันตัดหนึ่งในสี่บล็อกครึ่งและจัดเรียงเป็นสองแถวโดยหกบล็อกดังที่แสดงในแผนผังเขียงหั่นขนม
ขั้นตอนที่ 2: ชิ้นส่วนที่พิมพ์ 3 มิติ
ในการถือจอแสดงผลสองแถวและวางตำแหน่งเหล่านี้ในขวด ฉันได้พิมพ์วงแหวนระยะห่างแบบกลมสำหรับกรอบแสดงผล ฉันเพิ่มไฟล์ที่ฉันใช้ด้านล่าง เพื่อให้สามารถพิมพ์สิ่งเหล่านี้ได้โดยไม่ต้องมีการสนับสนุน พวกเขาจะถูกแยกเป็นส่วนๆ ภาพหน้าจอแสดงวงแหวนสองวงที่ติดอยู่กับกรอบแสดงผล ฝาครอบคอขวดมีปุ่มสามปุ่มเพื่อสลับระหว่างโหมดการแสดงผลและการตั้งเวลาปัจจุบันและเวลาเป้าหมาย ฝาครอบคอขวดที่ฉันพิมพ์ด้วย TPU ช่วยให้เลื่อนสาย USB เข้าไปในฝาปิดได้โดยไม่ต้องตัดตัวเชื่อมต่อและมัดด้วยลวดสองสามเส้น ฉันลืมบอกไปว่าฉันใช้ขวดไวน์ขนาด 1.5 ลิตรซึ่งฉันผ่าที่ก้นขวด ทุกชิ้นส่วนที่จะพิมพ์จะต้องติดตั้งบนเตียงเครื่องพิมพ์ขนาด 20x20 ซม. (8x8 นิ้ว)
ขั้นตอนที่ 3: รหัส
รหัส Arduino ใช้ไลบรารี่ที่ใช้กันทั่วไปไม่กี่แห่ง
MD_MAX72xx
SPI
ลวด
RTClib
เขตเวลา
TimeLib
มีสองสามบรรทัดในไฟล์ INO ที่อาจต้องเปลี่ยน:
บรรทัดที่ 38: #define HARDWARE_TYPE MD_MAX72XX::FC16_HW <-- ขึ้นอยู่กับโมดูล 8x8 และการวางแนว
แทนที่จะเป็น FC16_HW อาจเป็นหนึ่งใน:
- MD_MAX72XX::PAROLA_HW
- MD_MAX72XX::GENERIC_HW
- MD_MAX72XX::ICSTATION_HW
- MD_MAX72XX::FC16_HW
รหัสกำลังใช้การตั้งค่าสำหรับเวลาส่วนกลางของสหรัฐฯ และจำเป็นต้องปรับเปลี่ยนสำหรับเขตเวลาอื่น:
สาย 53/54:
TimeChangeRule myDST = {"CDT" วินาที อาทิตย์ มี.ค. 2, -300}; // เวลากลางวัน UTC-5TimeChangeRule mySTD = {"CST", ครั้งแรก, อาทิตย์, พ.ย., 2, -360}; // เวลามาตรฐาน UTC -6
นี้ง่ายต่อการปรับ ชื่อ CST/CDT เป็นเพียงการอ้างอิงเท่านั้น ฉันไม่แสดงอักษรย่อสามตัว ดังนั้นจึงไม่สำคัญ พารามิเตอร์ถัดไปหมายถึงวันใดในเดือนที่สวิตช์เกิดขึ้น การปรับค่านี้เป็นนาที ดังนั้นสถานที่ที่ใช้การปรับค่า +/- 30 นาทีก็ใช้ได้เช่นกัน
RTC กำลังทำงานภายใน UTC-Time ทำให้ไลบรารีเขตเวลาทำงานได้ตามที่ตั้งใจไว้ คุณอาจสงสัยว่าเหตุใดรหัสจึงอ้างถึงชิป DS1307 รุ่นเก่าซึ่งตรงกันข้ามกับชิปนาฬิกาที่ฉันใช้ แต่สิ่งนี้ไม่สำคัญ ห้องสมุดทำงานได้ดีกับชิปตัวใดตัวหนึ่ง DS1307 มีแนวโน้มที่จะลอยมากกว่า DS3132 DS3132 เป็นนาฬิกาที่ต้องการ สำหรับผู้ที่ต้องการเพิ่มเวลาอินเทอร์เน็ต ESP8266 จะทำงานได้ง่ายทีเดียว อาจทำให้ RTC ล้าสมัยได้ หากคุณกำลังทำการเปลี่ยนแปลงเหล่านี้ ให้ใช้ Arduino EEPROM เพื่อจัดเก็บเวลาเป้าหมาย ฉันใช้ RTC EEPROM เพื่อทำเช่นนั้น
ขั้นตอนที่ 4: การใช้งานและการตั้งค่า
มีสามปุ่ม
1. เมนู / การตั้งค่า
2. ขึ้น
3. ลง
ปุ่มเมนูช่วยให้หมุนผ่านจอแสดงผลสามประเภท: เวลาปัจจุบัน เวลาเป้าหมาย เวลาเดลต้า เวลาเดลต้าแสดงจำนวนวัน HH/MM/SS ระหว่างเวลาปัจจุบันและเวลาเป้าหมาย มันจะแสดง t- และนับถอยหลังหากเป้าหมายอยู่ในอนาคตหรือ t+ และนับขึ้นหากเป้าหมายอยู่ในอดีต
หากต้องการปรับเวลาปัจจุบันหรือเวลาเป้าหมาย ให้เลือกการแสดงเวลาปัจจุบันหรือเวลาเป้าหมาย หากต้องการเปลี่ยนเวลา ให้กดปุ่มเมนูค้างไว้ 2 วินาทีแล้วปล่อยซึ่งจะนำคุณเข้าสู่โหมดการตั้งค่า "/" หรือ ":" ที่อยู่ใกล้เคียงจะเปลี่ยนเป็น "" เพื่อระบุว่าคุณกำลังปรับตัวเลขใด ใช้ปุ่มขึ้น/ลงเพื่อปรับแต่ละ hh/mm/ss และ mm/dd/yy ฉันไม่ได้เพิ่มการตั้งค่าเพื่อสลับระหว่าง mm/dd/yy และ dd/mm/yy สิ่งนี้จำเป็นต้องเปลี่ยนในโค้ดหรืออาจมีบางคนยินดีเพิ่มคุณสมบัตินี้
คุณจะสังเกตเห็นว่าหากคุณก้าวนาทีกว่า 59 หรือต่ำกว่า 00 การแสดงชั่วโมงจะปรับเช่นกัน เช่นเดียวกันกับวินาที ชั่วโมง และวันที่เปลี่ยนค่าที่สูงขึ้นถัดไปหากข้ามต่ำกว่า 0 หรือสูงกว่าค่าสูงสุดของตัวเลขนี้ ฉันทำสิ่งนี้เพื่อหลีกเลี่ยงการตั้งโปรแกรมขีดจำกัดต่างๆ ของแต่ละเดือน และหากเดือนกุมภาพันธ์ต้องการ 29 วันในปีอธิกสุรทิน การปรับเวลาทำได้จริงใน epoch-time วินาทีตั้งแต่ ม.ค.-1-1970
ฉันเพิ่มวิดีโอง่ายๆ เพื่อแสดงการนับ ฉันต้องการทำสิ่งเหล่านี้เหมือนการแสดงวงล้อ หากคุณต้องการปรับระยะเวลาของการเปลี่ยนแปลง บรรทัดที่ 69 ใน INO มีตัวเลือกสองสามอย่างเพื่อเพิ่มความเร็วหรือชะลอการเปลี่ยนแปลง 120ms จะทำให้ตัวเลขเลื่อนช้าพอเพราะจะเป็นวงล้อที่วิ่งต่อเนื่อง
ฉันหวังว่าคุณจะสนุกกับคำแนะนำนี้
Patrick Geschwindner
แนะนำ:
LEDura - นาฬิกา LED แบบอะนาล็อก: 12 ขั้นตอน (พร้อมรูปภาพ)
LEDura - นาฬิกา LED แบบแอนะล็อก: หลังจากทำโปรเจ็กต์ต่างๆ เป็นเวลานาน ฉันตัดสินใจสร้างคำสั่งด้วยตนเอง ในข้อแรก ฉันจะแนะนำคุณตลอดกระบวนการสร้างนาฬิกาอะนาล็อกของคุณเองด้วยวงแหวน LED ที่สามารถระบุตำแหน่งได้ วงแหวนด้านในแสดงชั่วโมง คุณ
นาฬิกา ROY G. BIV: 12 ขั้นตอน (พร้อมรูปภาพ)
นาฬิกา ROY G. BIV: รหัสสีสำหรับทำเครื่องหมายชิ้นส่วนอิเล็กทรอนิกส์คือ DEAD ดังนั้นที่นี่ฉันจะชุบชีวิตบางส่วน นี่คือรหัสสีนาฬิกา 12 ชั่วโมง ฉันใช้เวลามากในการค้นหารูปทรงจอแสดงผลที่ดีที่สุด ดังนั้นสีจึงดูเหมือนกระดาษแผ่นหนึ่งแทนที่จะเป็นจุดไฟ LED ที่เรืองแสง ฉัน
นาฬิกา LED ที่ใช้ Neopixels: 4 ขั้นตอน (พร้อมรูปภาพ)
นาฬิกา LED ที่ใช้ Neopixels: ยินดีต้อนรับสู่คำแนะนำของฉันเกี่ยวกับวิธีสร้างนาฬิกา LED โดยใช้ 60 Neopixels คุณจะพบไฟล์ PDF 3 ไฟล์ที่แนบมา ไฟล์หนึ่งสำหรับส่วนของนาฬิกา อีกอันสำหรับฐาน และอันสุดท้ายคือเทมเพลตเพื่อช่วยในการติดกาว ส่วนต่างๆ เข้าด้วยกัน เพื่อคอม
RGB HexMatrix - นาฬิกา IOT: 5 ขั้นตอน (พร้อมรูปภาพ)
RGB HexMatrix | นาฬิกา IOT: HexMatrix เป็นเมทริกซ์ LED ที่มีพิกเซลสามเหลี่ยมจำนวนมาก การรวมหกพิกเซลทำให้เป็นรูปหกเหลี่ยม มีแอนิเมชั่นมากมายที่สามารถแสดงบนไลบรารี FastLED ในรูปแบบเมทริกซ์ นอกจากนี้ ฉันได้ออกแบบตัวเลขตั้งแต่ 0 ถึง 9 โดยใช้ 10 เซ็กเมนต์สำหรับ
ในสายลม - นาฬิกา Steampunk: 5 ขั้นตอน (พร้อมรูปภาพ)
ในสายลม - นาฬิกา Steampunk: เครื่องมือที่ใช้: Fusion 360, ส่วนขยาย FM Gears, Cura, Wanhao Duplicator i3, PLA Filament, ฮาร์ดแวร์ต่างๆ, การเคลื่อนไหวของควอตซ์ Y888X นี่ไม่ใช่คำแนะนำแบบเต็ม แต่เป็นภาพรวมของเครื่องมือบางอย่างและ วัสดุที่ใช้