สารบัญ:
- ขั้นตอนที่ 1: รายการชิ้นส่วน
- ขั้นตอนที่ 2: วงจรอิเล็กทรอนิกส์
- ขั้นตอนที่ 3: ฮาร์ดแวร์: วิธีสร้างบอร์ด 2 ด้านด้วยวิธี Toner-Direct
- ขั้นตอนที่ 4: ซอฟต์แวร์และการกะพริบ
- ขั้นตอนที่ 5: คดี
- ขั้นตอนที่ 6: บทสรุป
วีดีโอ: นาฬิกาข้อมือ OLED พิมพ์ 3 มิติขนาดเล็ก: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
สวัสดี คุณชอบสร้างนาฬิกาข้อมือของคุณเองไหม?
การสร้างนาฬิกาข้อมือ DIY ขนาดเล็กเช่นนี้ถือเป็นความท้าทายอย่างยิ่ง ประโยชน์คือความยินดีที่ได้ทำให้ความคิดของคุณเองเป็นจริงและภาคภูมิใจที่ได้บรรลุทักษะระดับนี้…
เหตุผลที่ฉันทำนาฬิกาของตัวเองก็คือนาฬิกาสมาร์ทวอทช์ราคาถูกของฉัน – ซึ่งระบุว่ากันน้ำได้ – เลิกใช้ผีที่น่าสงสารของมันที่เคยจุ่มลงไปในสระว่ายน้ำ…:(ฉันเลยโกรธที่จะซื้อนาฬิกา -watch ยังยอมแพ้ - แบตเตอรี่ขนาดเล็กที่เป็นกรรมสิทธิ์ของมันไม่สามารถเปลี่ยนได้…)
ในอีกด้านหนึ่ง โครงการ DIY-Watch ที่มีอยู่สำหรับรสนิยมของฉันนั้นส่วนใหญ่หนักหรือเรียบง่ายเกินไป ดังนั้นฉันจึงตัดสินใจสร้างนาฬิกาของตัวเอง ดังนั้นจึงมีความเป็นไปได้ที่จะรวมคุณสมบัติที่ฉันชอบ!
หากคุณต้องการ คุณสามารถแก้ไขซอฟต์แวร์ เพื่อให้ได้แนวคิดของคุณเอง: ฉันได้แสดงความคิดเห็นทุกบรรทัด (ขึ้นอยู่กับโปรแกรมที่เลือกระหว่าง 700-800 บรรทัด…) – แต่คำเตือน: โครงการนี้ท้าทายจริงๆ และแน่นอนว่าไม่ใช่สำหรับผู้เริ่มต้น ! แบบฟอร์มขนาดเล็กและเบา (30 x 30 x 10 มม.) ต้องการการจัดการเคสที่พิมพ์ 3 มิติและการบัดกรีอย่างระมัดระวังของบอร์ด 2 ด้าน แม้ว่าจะมีตัวเลือกสำหรับการสั่งซื้อ PCB ของบอร์ด (ไฟล์ Eagle และ Gerber รวม) ที่นี่ฉันทำด้วยวิธีการ Toner-Direct เฉพาะของฉัน - คำแนะนำจึงรวมไว้ที่นี่ด้วย)
คุณสมบัติของนาฬิกา:
- จอแสดงผล OLED ขนาด 128x64px แสดงนาฬิกาดิจิตอลและอนาล็อก เปิดใช้งานด้วยปุ่มขวา แสดงวันที่ เวลา ระดับแบตเตอรี่ และอุณหภูมิข้อมือ อีกทางหนึ่ง (ถ้าคุณต้องการ) อาจมีนาฬิกาปลุกหรือตัวจับเวลา
- แสดงปฏิทินเดือนที่สมบูรณ์โดยกดปุ่มซ้ายมากกว่า 0.6 วินาที โดยเน้นที่วันในสัปดาห์จริง
- การกดปุ่มซ้ายสั้นๆ จะเป็นการเลือกเมนูง่ายๆ เพื่อเลือกวันที่ เวลา (และนาฬิกาปลุกหรือตัวจับเวลา หากเลือกให้รวมไว้ในโปรแกรม) ค่าที่จะตั้งค่าด้วยปุ่มขวา
- กดปุ่มขวาสองครั้งเพื่อเปิดใช้งาน LED-"Torch"-Light ขนาดเล็ก (เหมาะสำหรับคืนที่มืดมิด)
- ระหว่างเวลา 22:00 น. ถึง 7:00 น. OLED-Display จะถูกหรี่ลงโดยอัตโนมัติ (ดูที่นี่ พร้อมฟังก์ชันหรี่แสงพิเศษที่รวมอยู่ด้วย!) จึงไม่ทำให้ตาบอดในเวลากลางคืน
- แบตเตอรี่ลิเธียมไอออนมีอายุการใช้งานเกือบ 2 ปี สมมติว่าจอแสดงผล + อิเล็กทรอนิกส์กินไฟประมาณ 25mA นาน 5 วินาที โดยแสดงนาฬิกาประมาณ 10 ครั้งต่อวัน
ขั้นตอนที่ 1: รายการชิ้นส่วน
เครื่องมือที่จำเป็น:
หากคุณต้องการทดลองใช้ฮาร์ดแวร์และซอฟต์แวร์ คุณต้อง:
• เขียงหั่นขนม 8.2 x 5.5 ซม. AliExpress
• 3, แหล่งพลังงานที่ควบคุม 3V เช่นนี้ในแผนผังด้านบนหรือแหล่ง f.ex ที่คล้ายคลึงกัน จากขั้วต่อ USB 5V (500mA) ⇒ AMS1117-Adj ⇒ อีเบย์
• อะแดปเตอร์ SMD SOIC-8 ถึง DIP-8 pin สำหรับ RTC-Chip ebay
• Atmel ISP-โปรแกรมเมอร์เช่น "USBTiny" - AliExpress
• Arduino Pro Mini AliExpress
• เขียงหั่นขนม Jumper-Wires Banggood
(อิเล็กทรอนิกส์-)ชิ้นส่วนที่จำเป็น:
• ⇒ ดูไฟล์ Html-BOM สำหรับชิ้นส่วนอิเล็กทรอนิกส์ (ดาวน์โหลด)
• กระดาน 2 ด้านสำหรับนาฬิกา: ⇒ ดูขั้นตอน "วิธีทำกระดาน 2 ด้านด้วยวิธี Toner-Direct"
• 1x - แบตเตอรี่ ø24 x 3mm - แบตเตอรี่ลิเธียม 3, 2V (เซลล์ปุ่ม) - CR2430 - AliExpress
• #25mm Kapton/Polymid Tape สำหรับการแยกระหว่างบอร์ด/แบตเตอรี่และ OLED-board
• 1x สายรัดข้อมือ 20mm - ฉันขอแนะนำ "Milanaise Stainless Steel Wristwatch Strap" - ebay
• เคสที่พิมพ์ 3 มิติ: ⇒ ดูดาวน์โหลดไฟล์พร้อมคำแนะนำ (ขั้นตอน)
หนึ่งกระดานจากสอง?
ในกรณีที่คุณต้องการสร้างบอร์ดหนึ่งจากสอง (uC, RTC, ส่วนอื่นๆ และ OLED-steering-board ในที่เดียว) คุณสามารถใช้ circuit + board-layout สำหรับ SSD1306-I2C-Display (ดูดาวน์โหลด: OLED-Display_SSD1306-I2C-Circuit.zip) ใช้ทั้ง 2 ชั้นและแยกออกจากจอแสดงผลและแบตเตอรี่ด้วยเทป Kapton ดังนั้นนาฬิกาอาจแบนกว่าประมาณ 1.5 มม.
ขั้นตอนที่ 2: วงจรอิเล็กทรอนิกส์
ก่อนอื่นเราต้องรู้พื้นฐาน:
OLED-Clock นี้สร้างด้วยชิป DS3231 RTC (นาฬิกาเรียลไทม์ในรูปแบบ SMD SO-8 ที่เล็กกว่า) แม่มดถูกควบคุมโดย ATMega328P-(Arduino)-µController ที่เป็นที่รู้จักทั้งหมด และ - ตรงกันข้ามกับ soft ที่ใช้ตามปกติ -StandBy (ของ µController) - นาฬิกานี้มีการปิดระบบด้วยไฟฟ้าทั้งหมดหลังจาก 5 วินาที นอกเหนือจาก RTC ฉันทำการปิดเครื่องนี้ด้วยมอสเฟต-ทรานซิสเตอร์สองตัว ซึ่งทำหน้าที่เป็น "สวิตช์สลับ" ร่วมกับ uC และปุ่มขวา (D8)
ปุ่มกดขนาดเล็กสองปุ่มที่ด้านข้างของเคส (D6 และ D8) ทำหน้าที่เป็นอินพุต โดยแม่มดจะจัดการเมนูและการตั้งค่านาฬิกา
นาฬิกามีการแสดงวันที่+เวลา (นาฬิกาปลุก-แสดง - หากรวมอยู่ในโปรแกรม) ไฟฉายและปฏิทินของเดือน+วันจริง ในครั้งที่ 2 เวอร์ชันที่ฉันรวม Alarm ไว้ด้วย มันสามารถถูกแทนที่ด้วย Timer ด้วย
จอแสดงผลจะหรี่ลงระหว่างเวลา 23:00 น. ถึง 7:00 น. (23:00 น. และ 07:00 น.) ในเวลากลางคืน
ฟังก์ชั่นของ 2 ปุ่ม (ด้านซ้ายและด้านขวา):
• CHANGE-ปุ่ม D8 (ด้านขวา) การกด:
1x = เปิดใช้งาน uC/Display ดังนั้นจะแสดงเวลา+วันที่ ฯลฯ เป็นเวลาประมาณ 5 วินาทีก่อนปิดเครื่อง (=หน้าจอมืด)
2x = ทำให้ไฟฉาย/คบไฟสว่างขึ้น
3x = กลับสู่โหมดปกติ (=Mode-0)
• SELECT-ปุ่ม D6 (ด้านซ้าย):
การกด D6 หนึ่งครั้งจะเลือก MODE โดยเลื่อนโหมดจาก 1-10 เพื่อเปลี่ยนวันที่/เวลา ฯลฯ (ดาวโจนส์ วัน ปี เวลา วินาที เปิด/ปิดการเตือน…)
Button-D8 ทางด้านขวาจะเพิ่มค่า MODE ที่เลือก ตั้งค่าและบันทึกการเลือก MODE ถัดไป (ด้วยปุ่มซ้าย-D6)…
หากต้องการเปลี่ยนวินาที ให้ตั้งนาฬิกา +1 นาที จากนั้นกดปุ่มขวา (D8) ที่ 59 วินาทีเพื่อซิงโครไนซ์กับเวลาภายนอก
การซิงโครไนซ์เวลา/วันที่สามารถดาวน์โหลด PC-time ต่อ batch-file: Serial-Connection ไปยัง Arduino ภายนอก - จากที่นั่นไปยัง I2C-Pins สี่ตัวของ Clock-OLED (uC ของนาฬิกายังคงปิดใช้งานอยู่ในขณะนี้ เพื่อจุดประสงค์นี้ ฉันได้รวม 2 R ของ 4.7kΩ, R7 และ R8 ไว้ด้วย - หากไม่ได้ใช้!)…
• ปฏิทินเดือน / วันที่:
หากกดปุ่มซ้าย (D6) นานกว่า 0.6 วินาที ปฏิทินเดือนจริงจะปรากฏขึ้น ไม่มีการปิดใช้งานตัวเอง! หากกดปุ่มใดปุ่มหนึ่งจากสองปุ่มอีกครั้ง ปฏิทินจะเหลืออยู่
• ALARM: (หากรวมอยู่ในโปรแกรมซอฟต์แวร์ + ให้มาพร้อมกับฮาร์ดแวร์ทวีตเตอร์หรือไมโครเพียโซบีเปอร์)
สามารถตั้งค่าให้ส่งเสียงบี๊บตรงเวลาทุกวันพร้อมกันได้ (24h, 60m) เครื่องหมายดอกจันที่ด้านบนขวาของจอแสดงผลระบุว่านาฬิกาปลุกเป็น "เปิด" หรือไม่ ทางเลือกที่มีประโยชน์สำหรับโปรแกรม Alarm-Program อาจเป็นตัวจับเวลา… (ที่ต้องทำ)
• แบตเตอรี่:
แบตเตอรี่เป็นแบตเตอรี่ลิเธียม CR2430 (ø24x3mm) ที่มีกำลังไฟประมาณ 300mA สัญลักษณ์แบตเตอรี่ระบุระดับ (แอนะล็อก) ของแบตเตอรี่ (3, 25V=เต็ม, 2, 75V=ว่าง) นาฬิกาทำงานกับแรงดันไฟฟ้าตั้งแต่ +5, 0V ลงไปที่ +2, 0V (ค่าเริ่มต้น: 3, 0V) เฉพาะ Flash-LED เท่านั้นที่ทำงานได้ตั้งแต่สูงสุด +4, 0V เหลือ +2, 7V คำเตือน: อย่าเปิดใช้งานด้วย 5V! - มากเกินไปสำหรับ LED - มันจะหมดอายุในไม่กี่วินาที แม้ว่าจะมีความต้านทาน 33Ω Absolute Max.-Voltage สำหรับโปรเซสเซอร์และ RTC คือ 5, 25V (+5V USB เพื่อตั้งโปรแกรม uC โดยตรงต่อ ISP โดยไม่ต้องใช้ bootloader!)
• อุณหภูมิ:
RTC มีเซ็นเซอร์อุณหภูมิในตัว (เพื่อแก้ไขการเบี่ยงเบนอุณหภูมิของคริสตัลในตัว) ดังนั้นเราจึงสามารถใช้เซ็นเซอร์นี้เพื่อแสดงอุณหภูมิ (ข้อมือ-) ได้
• แฟลช LED:
หากกดปุ่ม CHANGE (D8) สองครั้ง แสงที่ค่อนข้างสว่างจะ "เรืองแสงในที่มืด" Att.: ไม่มีการปิดใช้งานตัวเอง! เพียงกดปุ่มขวานี้อีกครั้งเพื่อปิดไฟ LED นี้ โดยจะแสดงหน้าจอปกติเป็นเวลาประมาณ 5 วินาที
• ซอฟต์รีเซ็ตพิน: พินรีเซ็ต (D7) จะรีเซ็ตข้อมูลที่เก็บไว้ทั้งหมดหากต่อสายดิน (กรณีเปิด: ด้านล่างขวา) ใช้ในช่วงเวลาการเขียนโปรแกรม เรียกสั้นๆ ว่า "ซอฟต์รีเซ็ต" ของอินพุต-ค่าทั้งหมด…
วงจร:
ถ้าเราดูที่แผนผังทางด้านซ้ายจะมี "Arduino" µController (ATMega328-P) เปล่าซึ่งเปิดใช้งานด้วยปุ่มขวา (D8) บนอินพุต D12: Button-D8 ดึงประตูของ P-Mosfet ลงมาผ่านความต้านทาน R5 และไดโอด D1 ดังนั้น P-Mosfet จึง "เปิด" และเชื่อมต่อ VBAT กับ VCC: µController+Display จะเป็นปัจจุบัน!
หากต้องการดู "หลักการสลับของ Mosfets สองตัว ฉันได้อัปโหลด "Flip-Flop ที่มี Mosfets สองตัว" นี้ (ไฟล์ Eagle)
หลังจากผ่านไป 5 วินาที µC จะปิดตัวเองโดยอัตโนมัติผ่าน Output-D5 ซึ่งจะปิดใช้งาน Mosfet ทั้งสอง ดึง Gate ของ N-Mosfet ลง ดังนั้น R5 (และ Gate ของ P-Mosfet) จะ "สูง" และ P-Mosfet จะตัด กระแสของ µC และ OLED-Display VCC ลงไปถือ Gate ของ N-Mosfet ผ่าน R3 และ R6 (ต่ำกว่า Gate-threshold-voltage) ดังนั้นวงจรจึงยังคงปิดอยู่
ที่ด้านซ้ายบนเราเห็นแรงดันไฟฟ้า VBAT "ขยาย" ผ่าน LED สีขาวธรรมดาที่มีประมาณ 2.5V ลดขนาดลงด้วย 100k จาก VBAT (ประมาณ 3, 2V) เป็นประมาณ 1, 1V (สูงสุด) ซึ่งใช้เป็น ภายใน Analog-Input เพื่อวัดแรงดันแบตเตอรี่จริง
µController, RTC และ OLED-Display กำลังสื่อสารผ่าน I²C ซึ่งเป็นการสื่อสารแบบ 2-Wire ที่ง่ายและมีประสิทธิภาพ ซึ่งนำไปใช้ในแต่ละไลบรารี
ในการบัดกรีชิ้นส่วน SMD จะมีประโยชน์ในการใช้แหนบขนาดเล็กที่มีปลายแหลมคม ดังนั้นการจับชิ้นส่วน SMD ขนาดเล็กจะง่ายต่อการจัดการ (การวางตำแหน่ง) และบัดกรี จากนั้นจึงใช้ปลายหัวแร้งแบบละเอียด แล้วบัดกรีด้านหนึ่งของ SMD ก่อน - ประกอบชิ้นส่วน อุ่นจุดบัดกรีให้ร้อนก่อนที่อุณหภูมิประมาณ 330 องศาเซลเซียส ก่อนเติมลวดดีบุกที่หลอมละลายต่ำและละเอียด (ø 0.5 มม.) ลงในจุดบัดกรี
ดาวน์โหลดเค้าโครงวงจร + บอร์ด:
ขั้นตอนที่ 3: ฮาร์ดแวร์: วิธีสร้างบอร์ด 2 ด้านด้วยวิธี Toner-Direct
หากคุณต้องการซื้อบอร์ด 2 ด้าน มีให้ Eagle + (จำเป็น) Gerber-files (ดาวน์โหลด)
ถ้าคุณชอบทำบอร์ดด้วยตัวเอง ฉันจะแสดงวิธีการที่แม่นยำในการทำบอร์ด 2 ด้านสำหรับ "TonerDirect"
1. พิมพ์ไฟล์ "OLED-Clock-2-nl_TonerDirect.pdf" บน "Toner Transfer Paper"
2. ตัดกระดาษ 2 แถบออกหนึ่งแถบสำหรับแต่ละด้านของกระดาน
3. ด้วยเข็มขนาด ø 0.5 มม. ต่อยที่มุมทั้ง 4 ของกระดานอย่างแม่นยำ (ใช้แว่นขยายที่มีแสงจ้า - มันสำคัญมากที่จะต้องต่อยเข็มให้แม่นยำที่สุดเท่าที่จะทำได้ที่จุดศูนย์กลางทั้ง 4 มุม!)
4. พิมพ์ไฟล์ (บนกระดาษเปล่าธรรมดา) ไฟล์ "OLED-Clock-2-nl_Frame.pdf" และติดผลบนแผงวงจรทองแดง 2 ด้าน (หนา 0.5-0.8 มม.) เลื่อยบอร์ดออกด้วยพิกัดความเผื่อเพิ่มขึ้นประมาณ 2-3 มม. (ที่นี่ประมาณ 35 x 35 มม.) จากนั้นเจาะ 4 รูที่มุมอย่างแม่นยำด้วยสว่าน 0.6 มม. หลังจากขั้นตอนนี้ นำกระดาษที่มีอะซิโตนออกแล้วบดด้านทองแดง 2 ด้านของบอร์ดด้วยกระดาษบดละเอียด (ขั้นต่ำ 400) หลังจากขั้นตอนนี้ อย่าแตะกระดานด้วยนิ้วเปล่าอีกต่อไป! อนุญาตให้จับไปด้านข้าง (ด้วยนิ้วที่สะอาด)
5. ทำเครื่องหมายทิศทางที่สอดคล้องกันของ Toner-Tranfer-Paper บน 2 ด้านที่ไม่ได้พิมพ์!
6. ต่อยเข็มผ่านกระดาษ ต่อยบนกระดาน และสุดท้ายต่อยเข็มผ่านกระดาษตรงข้าม
7. หลังจากได้รับ "ชั้น" สามชั้นที่เท่ากันทุกประการ ให้เปลี่ยนเข็มด้วยลวดทองแดง 0.5 มม. 4 ชิ้น งอที่ปลายด้านหนึ่ง 90° เพื่อไม่ให้ไหลผ่าน หลังจากขั้นตอนนี้งอสายไฟอีกด้านหนึ่ง 90° แล้วตัดปลายให้สั้น
8. พร้อมมาก ชิ้นนี้สามารถไป 3 ครั้งผ่าน (แก้ไข) เคลือบบัตรผงหมึก อุ่นได้ถึง 200°!
9. ตัดลวดเส้นเล็ก 0.5 มม. แล้วถอดที่วางลวดที่เหลือออก จากนั้นนำกระดาษสองแผ่นและ voilá ออก: ผงหมึกติดแน่นบนทองแดง
10. ควบคุมเส้นสะอาด ถ้าเส้นขาด เราอาจซ่อมด้วยปากกากันน้ำถาวร ในกรณีส่วนใหญ่ เฉพาะพื้นผิวที่ใหญ่กว่าเท่านั้นที่ต้องปิดรูเล็กๆ ไม่กี่รู มิฉะนั้น (หากผลลัพธ์ไม่เป็นที่น่าพอใจ) ให้เอาผงหมึกออกด้วยกระดาษสำหรับทำครัวและอะซิโตน แล้วทำซ้ำขั้นตอนที่ 1-9
11. การแกะสลักที่สะอาด: ฉันแกะสลักแผ่นทองแดง DIY ของฉันด้วยสารละลายโซเดียมเปอร์ซัลเฟต (หนึ่งหรือสองช้อนชา) ที่มีระดับน้ำประมาณ 5 มม. ในจาน Pyrex-Dish แบบคลาสสิก (1-1, 5L) สารละลายนี้ให้ความร้อนสูงถึง ประมาณ 80°C (ฉันรู้ อุณหภูมิสูงสัมพัทธ์นี้ทำลายเปอร์ซัลเฟต แต่มันกัดได้เร็วกว่ามาก เช่นเดียวกับอุณหภูมิที่ต่ำกว่า และทำให้ขอบคมและสะอาดในไม่กี่นาที) ฉันปล่อยให้เพอร์ซัลเฟตที่เหลืออยู่หลังจากการทำให้แห้งสนิทและขูดผลึกออก รวบรวมไว้ในขวดโหลเก่าเพื่อนำไปรีไซเคิล!
11. ควบคุมเส้นทองแดงและพื้นผิวด้วยแว่นขยาย
12. ถอดขอบที่ยื่นออกมาด้วยเครื่องเจียรแถบแนวตั้ง (เช่นในคำสั่งแรกของฉัน) และควบคุมขนาดด้วยเวอร์เนียคาลิปเปอร์: ปุ่ม 2 ด้านต้องขนานกัน มีระยะห่าง 27.4 มม. แต่ระวังอย่าบด- ออก 2 ปุ่มสัมผัส!
ขั้นตอนที่ 4: ซอฟต์แวร์และการกะพริบ
การเขียนโปรแกรมบอร์ด:
โปรแกรมเขียนด้วยภาษา C++ ดังนั้นเราจึงสามารถแก้ไขมันด้วย ASCII-Editor อย่างง่าย และจำเป็นต้องอ่านคำอธิบายที่ส่วนท้ายของแต่ละบรรทัด…
สำคัญ: เราไม่สามารถใช้ Serial-Flashing ของ Arduino เพื่อตั้งโปรแกรม µC เนื่องจาก bootloader ต้องการเวลามากเกินไประหว่าง "Start" (กดปุ่ม D8) และ "Display-On" ดังนั้นเราจึงต้องแฟลชโดยไม่ใช้ Bootloader (ใช้งานได้ปกติกับบอร์ด Arduino ทั้งหมด) ดังนั้นเราจึงตั้งโปรแกรมบอร์ดของเราตาม (Atmel) ISP-Connector + Programmer ISP-Connector ที่สร้างขึ้นที่นี่ (ออนบอร์ด) สร้างด้วยตัวเชื่อมต่อซ็อกเก็ตขนาดเล็ก 6 ตัวที่แยกเป็นแถวและบัดกรีด้านในที่ด้านขวาของบอร์ด จากนั้นเชื่อมต่อกับแถบ 6 ขา (เล็ก!) (2.54 มม.- ตาราง) เช่นเดียวกับภาพสุดท้ายในขั้นตอนก่อนหน้า
คุณไม่เพียงแค่ต้องการ Arduino-GUI เท่านั้น แต่ยังมีไลบรารี่อีกสองสามตัว (เพื่อดาวน์โหลด) เพื่อคอมไพล์โปรแกรม:
- ห้องสมุด Wire (มีอยู่ใน Arduino-Program) - สำหรับการสื่อสารต่อ I²C เดิมพัน µC, RTC และ OLED-Display
- ไลบรารี EEPROM (มีอยู่ใน Arduino-Program) - เพื่อเก็บค่าต่างๆ บน µController
- "Adafruit_GFX" + "Adafruit_SSD1306" - ไลบรารีทั้งสองเพื่อควบคุมจอแสดงผล OLED
- EnableInterrupt - เพื่อทำงานกับพอร์ต / Pin-Interrupts ของ Arduino (⇒ Button-Inputs) ของ Arduino
-DS3231-RTC-chip: ไม่จำเป็นต้องใช้ไลบรารี่ ฉันได้เขียนฟังก์ชันของไลบรารี่ต่างๆ ที่พบในอินเทอร์เน็ตแล้ว และใช้งานได้ง่ายกว่านี้ รวมอยู่ในส่วนท้ายของโปรแกรมหลัก (" OLED-Clock-2-nl.ino ")
ข้อควรสนใจ: ห้องสมุด Adafruit มี (จนถึงตอนนี้) ไม่ค่อยมีประสิทธิภาพในการหรี่แสงชิป OLED ดังนั้นฉันจึงคัดลอกสตริงจากอินเทอร์เน็ตและวางไว้ที่ส่วนท้ายของห้องสมุด "Adafruit_SSD1306" โดยที่แม่มดสามารถหรี่แสงได้ มีประโยชน์มากกว่าเล็กน้อย… (⇒ ดูการดาวน์โหลด Add-on " วิธีตั้งค่าความสว่างบน OLED display.zip " ในตอนท้าย)
ทำงานกับ 3, 2V - ดังนั้นโดยใช้ 8Mhz ภายใน (ไม่มี 16Mhz-Crystal):
µC ที่นี่เร็วพอที่จะทำงานโดยไม่มีคริสตัล 16MHz ดังนั้น (ด้วย 3.2V จากแบตเตอรี่) เราจึงสามารถใช้ 8MHz ที่ตั้งโปรแกรมไว้ล่วงหน้าภายในได้ (ส่วนหนึ่งน้อยกว่าสำหรับการบัดกรี:-)
หลังจากโหลดและคอมไพล์โปรแกรม "OLED-Clock-2-nl.ino" ที่ให้ไว้ใน Arduino-GUI แล้ว (ดาวน์โหลด) ให้คัดลอก.hex-result ไปยังโฟลเดอร์ avrdude
(พบไฟล์.hex ที่คอมไพล์แล้วในโฟลเดอร์ชั่วคราวของพีซี ซึ่งมีอยู่ในโฟลเดอร์ย่อย เช่น:
"C:\Tmp\arduino_build_646711\ xyz.ino " - ในนั้นคุณสามารถค้นหาไฟล์ compiled-hex-file ที่ต้องการ ในกรณีนี้ "OLED-Clock-2-nl.ino.hex" ของเรา
ตอนนี้ไฟล์ hex สามารถแฟลชได้ (ที่นี่ "ด้วยตนเอง" ต่อ avrdude บนบรรทัดคำสั่ง) ผ่าน ISP-Connector แต่คุณต้องมีโปรแกรมเมอร์เช่น USBTiny หรือ AVRISP2 ที่มีตัวเชื่อมต่อ ISP 6pin (ISP-Connector ของฉันคือ DIY จากตัวเชื่อมต่อ 6-Pin-Row ขนาดเล็กดังที่แสดงในรูปภาพล่าสุดของฉัน ดังนั้นคุณสามารถตั้งโปรแกรมบอร์ดใหม่ได้ทุกเมื่อหากจำเป็น)
ตอนนี้เชื่อมต่อโปรแกรมเมอร์ 6 พินกับบอร์ด (ฉันคิดว่าประสบการณ์ที่รู้จักกับบอร์ด Arduino)…
เชื่อมต่อแล้วบน Command-Window (บน Windows เปลี่ยนเป็นโฟลเดอร์ avrdude จากนั้นพิมพ์ cmd) - วางบรรทัดต่อไปนี้:
avrdude.exe -C avrdude.conf -v -V -p m328p -c usbtiny -e -D -U แฟลช:w:OLED-Clock-2-nl.ino.ino.hex:i
หลังจากการกะพริบของ µController เสร็จสิ้น จะต้องตั้งค่า "ฟิวส์" (ของ µController) ที่เหมาะสม:
avrdude -p atmega328p -c usbtiny -U lfuse:w:0xFF:m -U hfuse:w:0xD7:m -U efuse:w:0xFF:m -U ล็อค:w:0x3F:m
หากคุณต้องการแก้ไขการตั้งค่าอย่างใดอย่างหนึ่ง คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับ Fuse-Calculator ออนไลน์นี้ได้
ขั้นตอนที่ 5: คดี
ไม่เพียงแต่การสร้างบอร์ดอิเล็กทรอนิกส์เท่านั้นที่ท้าทาย ไม่น้อยไปกว่านั้นคือเคสขนาดเล็กและน้ำหนักเบาสำหรับบอร์ดนี้!
ที่นี่เพื่อดาวน์โหลด Case ที่ตั้งใจไว้ของฉันด้วย pssible CR2032 Battery-Adapter เพื่อใส่แบตเตอรี่ที่ใช้บ่อย บอร์ดอิเล็กทรอนิกส์และแบตเตอรี่จะต้องแยกจากกันอย่างสมบูรณ์ด้วยเทป Kapton-Polimid หรือทางเลือกที่แข็งแกร่ง อย่าใช้เทปกาวธรรมดาๆ มันอ่อนเกินไปที่จะแยกออกอย่างแรง และอาจทำให้แบตเตอรี่ลัดวงจรได้!
ฉันได้ทดลองกับเลย์เอาต์มากมาย (สำหรับ PLA ที่พิมพ์ 3 มิติ) และสรุปด้วยความหนาของผนังประมาณ 1.3 มม. ในรูปแบบนี้ แรงที่มาจากสายรัดข้อมือจะถูกยึดอย่างมีประสิทธิภาพผ่านทั้งสองด้านของเคสร่วมกับฝาปิดสแน็ปอิน อีกด้านอาจจะผอมกว่าประมาณ 1.0 mm…
ดังนั้นการปรับเปลี่ยนความสูงของเคส (ในกรณีที่มีการปรับเปลี่ยนบอร์ด…?) จะไม่เป็นปัญหาใหญ่
นอกจากนี้ หากคุณมี Alarm หรือ Timer อยู่ภายใน คุณต้องมี Case อื่น ดังนั้นฉันจึงเสนอวิธีการแทรก Piezo-tweeter ขนาดเล็ก (หรือ f.ex. ไมโครลำโพงนี้: CUI-15062S)… (ดู กรณีที่-2).
หลังจากที่พิมพ์เคสออกมา (ด้วยความสูงของเลเยอร์ที่แนะนำคือ 0.1 มม. และเติมด้วย "การทับซ้อนของผนัง" ประมาณ 50%) คุณต้องครีบเส้นด้านข้างที่เอาชนะ ยื่นขอบให้กลมพอ แต่ไม่มากเกินไป… A ยากกว่านั้นอีกเล็กน้อยคือการตะไบสแนปอินขนาดเล็ก 4 อันของฝาปิดในมุมขวา ~100-120 ° เพื่อให้ยึดเข้ากับเคสได้อย่างแข็งแรง แต่ไม่ขยายหรือหัก - และไม่ส่งผลให้ฝาปิดมีขนาดเล็กเกินไป ที่จะคงอยู่…
ช่องสี่เหลี่ยมสำหรับ OLED จะต้องยื่นออกมาอย่างระมัดระวัง โดยให้เข้ากับโครงร่างของกระจก OLED อย่างแม่นยำ โดยไม่ทำให้มันแตกในขณะที่พยายามเสียบ Board+OLED-Display (ตอนนี้กำลังทำงานร่วมกัน) ดังนั้นควรระมัดระวังในการยื่นและพยายามซ้ำๆ เพื่อดูว่าทุกส่วนเข้ากันได้หรือไม่
ควรใช้มีดคัตเตอร์ที่คมเพื่อกำจัดปล่องควันที่เป็นผลลัพธ์
ตอนนี้คุณสามารถใส่สายรัดข้อมือด้วยลวดทองเหลือง (ø1 มม. ยาว: 28.5 มม.) สำหรับสิ่งนี้ 2 รูของโครงใส่เคสจะต้องถูกเจาะในลักษณะที่ลวดจะทะลุผ่าน แต่จากนั้นก็ติดเข้าไปในวงเล็บอย่างแน่นหนา
ก่อนที่คุณจะติดแขนเคสด้วยระบบอิเล็กทรอนิกส์และสายรัด คุณสามารถเคลือบด้วยสีได้ (ฉันขอแนะนำให้ใช้สเปรย์ทินเนอร์สำหรับรถยนต์ – แห้งเร็วกว่า ติดฝุ่นบนพื้นผิวน้อยลง!)ผมขอแนะนำให้ใช้สเปรย์ลงกราวด์ (ทินเนอร์) ก่อนด้วย ซึ่งสามารถขัดให้ละเอียดจนได้พื้นผิวที่เรียบเนียนโดยไม่มีเส้นพิมพ์หรือตำหนิ ตัวฉันเอง ฉันชอบสีทองหรือสีเงิน หรือผิวไม้ก็อาจจะดี – คุณเลือกได้…
ขั้นตอนที่ 6: บทสรุป
ข้อควรพิจารณาเกี่ยวกับแบตเตอรี่:
CR2432 Li-Ion-Battery มีความจุประมาณ 300mAh ดังนั้นจึงมีระยะเวลาประมาณ 2 ปี หากแสดงนาฬิกาประมาณ 10 ครั้ง (แต่ละ á 5 วินาที) ต่อวัน ดังนั้นคุณสามารถแลกเปลี่ยนกับแบตเตอรี่ Li-Ion CR2032 ที่มีจำหน่ายทั่วไป (แต่เล็กกว่า) ซึ่งเก็บได้ประมาณ 1, 4 ปีด้วย 210mA
ฉันยังค้นหาเซลล์ปุ่มลิเธียมแบบชาร์จได้เช่น CR2430 (ทั่วไป) และพบสิ่งนี้: "LIR-2430" แบตเตอรี่นี้มีความจุประมาณ 50mA เท่านั้น แต่สามารถชาร์จใหม่ได้ f.ex ผ่านการถ่ายโอนพลังงานแบบไร้สาย… เพื่อจุดประสงค์นั้น ฉันได้ทำโพรบและคุณสามารถดูผลลัพธ์ในแผนผัง + เลย์เอาต์ที่รวมอยู่ด้วย ตัวถ่ายโอนพลังงานเองทำงานได้ดีมาก ในการกัดขดลวดแบนที่มีประมาณ 30 รอบบนฝาอีพอกซีบอร์ดแบบแบน ยังคงเป็นสิ่งที่ต้องทำ… ในการชาร์จแบตเตอรี่ ฉันเสนอวงจรชาร์จอย่างง่ายด้วย LED สีขาวและ 2 Schottky-Diodes เพื่อจำกัด End-Charging-Voltage สำหรับการชาร์จนี้สูงสุดประมาณ 3.6V…
ในที่สุด – สำคัญมาก:
!!! ไม่เคยชาร์จแบตเตอรี่ลิเธียมไอออนแบบชาร์จไฟไม่ได้ !!! - มันอาจจะระเบิดและติดไฟได้!
ฉันทดลองกับเซลล์ Li-Ion-Button-Cell (แบบชาร์จไม่ได้) CR2430 -เป็นข้อควรระวัง- ในขวดโหลที่ปิดสนิท…หลังจากนั้นประมาณหนึ่งชั่วโมง การชาร์จด้วยค่าคงที่ 3.3V ฉันสังเกตเห็นการบิดเบี้ยวของเคสเล็กน้อย… และ แม้ว่าแรงดันไฟฟ้าของแบตเตอรี่นี้จะเพิ่มขึ้นจาก 2.8 เป็น 3.2V แต่ความจุในตอนท้ายก็ลดลงอย่างมาก! – ดังนั้นการชาร์จจึงไม่สมเหตุสมผล: เซลล์ปุ่มนี้ไม่สามารถชาร์จได้จริงๆ
สิ่งที่ต้องทำ:
• ฟังก์ชันจับเวลา (ตามซอฟต์แวร์) + (ฮาร์ดแวร์ + เคส) - ทวีตเตอร์หรือมอเตอร์สั่น
• วงจรชาร์จไร้สาย
• ผิวโลหะหรือไม้เคลือบเงา
แนะนำ:
3D พิมพ์ LED Mood Lamp: 15 ขั้นตอน (พร้อมรูปภาพ)
3D Printed LED Mood Lamp: ฉันมีความหลงใหลในหลอดไฟมาโดยตลอด ดังนั้นความสามารถในการรวมการพิมพ์ 3D และ Arduino กับ LED จึงเป็นสิ่งที่ฉันต้องดำเนินการ แนวคิดนี้เรียบง่ายมากและผลลัพธ์ที่ได้คือภาพที่น่าพอใจที่สุดชิ้นหนึ่ง ประสบการณ์ที่คุณสามารถใส่
แหล่งพลังงาน USB ฉุกเฉิน (พิมพ์ 3 มิติ): 4 ขั้นตอน (พร้อมรูปภาพ)
แหล่งพลังงาน USB ฉุกเฉิน (พิมพ์ 3 มิติ): โปรเจ็กต์นี้ใช้แบตเตอรี่ 12V เหมือนกับที่คุณใช้กับรถยนต์ เพื่อชาร์จอุปกรณ์ USB ในกรณีที่ไฟฟ้าดับหรือเดินทางไปแคมป์ปิ้ง ง่ายเหมือนการติดที่ชาร์จในรถยนต์แบบ USB เข้ากับแบตเตอรี่ หลังจากพายุเฮอริเคนแซนดี้ ฉันไม่มีพลังและ
นาฬิกาข้อมือ Nixietube: 6 ขั้นตอน (พร้อมรูปภาพ)
นาฬิกาข้อมือ Nixietube: ปีที่แล้วฉันได้รับแรงบันดาลใจจากนาฬิกา Nixitube ฉันคิดว่ารูปลักษณ์ของ Nixietubes นั้นดีมาก ฉันคิดที่จะนำสิ่งนี้ไปใช้กับนาฬิกาที่มีสไตล์พร้อมฟังก์ชันอันชาญฉลาด
Vortex Watch: นาฬิกาข้อมือ Infinity Mirror: 10 ขั้นตอน (พร้อมรูปภาพ)
นาฬิกาวอร์เท็กซ์: นาฬิกาข้อมือกระจกอินฟินิตี้: เป้าหมายของโครงการนี้คือการสร้างนาฬิกากระจกอินฟินิตี้รุ่นที่สวมใส่ได้ ใช้ไฟ LED RGB เพื่อระบุเวลาโดยกำหนดชั่วโมง นาที และวินาทีให้กับไฟสีแดง สีเขียว และสีน้ำเงินตามลำดับ และซ้อนเฉดสีเหล่านี้เพื่อ
นาฬิกาข้อมือ Nixie 4 หลัก: 3 ขั้นตอน
Nixie Wrist Watch 4 Digits โครงงานเกี่ยวกับการทำนาฬิกาข้อมือ Nixie 4 หลักhttps://youtu.be/MAw0OgJxuy0