สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ปัญหา: ไฟ LED แผง (DIY แน่นอน!) ที่ติดตั้งบนเพดานของเวิร์กช็อป/โรงรถของฉันเสียบเข้ากับเต้ารับไฟฟ้าบนเพดาน ฉันต้องการวิธีเปิดและปิดสวิตช์ไฟจากระยะไกลจากตำแหน่งที่ตั้งสวิตช์ไฟหลัก
วิธีแก้ปัญหา: "ปุ่มวิเศษ" ถือกำเนิดขึ้น
Magic Button เป็นรีโมตอินฟราเรดแบบสแตนด์อโลนขนาดเล็กที่มีปุ่มขนาดใหญ่ (ความจริงแล้ว ฉันชอบปุ่มขนาดใหญ่ - ดูคำแนะนำอื่นๆ บางส่วนของฉัน) เมื่อกดแล้ว IR LED จะส่งสัญญาณไปยังยูนิตฐานเพื่อเปิดและปิดแผง
ในสถานการณ์นี้ ฉันได้ใช้หน่วยรับที่สร้างขึ้นเป็นพิเศษ (ซึ่งมีตัวเลือกการสลับพิเศษด้วย - สวิตช์ดึงและสวิตช์ตรวจจับแสงรุ่นทดลอง - ดูในภายหลัง) แต่สามารถใช้ปุ่มวิเศษเพื่อเปิดอุปกรณ์ควบคุม IR เช่นทีวีได้
ขั้นตอนที่ 1: ปุ่มวิเศษ - วงจร
PARTS
1x ATTINY85 SMD2x 22pF ตัวเก็บประจุ SMD1x 47R ตัวต้านทาน SMD1x 5mm TSAL6200 (หรือใกล้เคียง) LED อินฟราเรด
1x 6pin 2mm Pitch Header1x 12x12x12mm Push Button with Cap (https://www.ebay.com/itm/131912566751)
24mmx24mm ด้านเดียว 0.8mm PCB22AWG (0.7mm) ทองแดงกระป๋อง WireUSBasp โปรแกรมเมอร์ (https://www.fischl.de/usbasp/)
PCB
PCB ทำขึ้นโดยใช้วิธีรีดหมึกบนกระดานหนา 0.8 มม. ติดตั้งอุปกรณ์ยึดพื้นผิวก่อน บัดกรีลวดทองแดงกระป๋องสองสามซม. เข้ากับขั้วแบตเตอรี่ (ด้านทองแดงของ PCB) เพื่อเชื่อมต่อกับที่ใส่แบตเตอรี่ในภายหลัง
เฟิร์มแวร์
ต้องอัปโหลดเฟิร์มแวร์โดยใช้โปรแกรมเมอร์ USBasp หมุดของโปรแกรมเมอร์ (https://www.batsocks.co.uk/readme/isp_headers.htm) ต้องเชื่อมต่อกับส่วนหัวแบบ 6 พินบนปุ่มเมจิก (โปรดดูรูปแบบ PDF สำหรับพินเอาต์) ฉันใช้ตัวเชื่อมต่อสองสามตัวที่บัดกรีเข้าด้วยกันเพื่อสร้างอะแดปเตอร์ แต่คุณสามารถใช้สายจัมเปอร์ได้อย่างง่ายดาย
ติดตั้งการสนับสนุน ATTiny บน Arduino IDE ของคุณ (https://highlowtech.org/?p=1695) และเปิดภาพร่างที่แนบมา เลือก:บอร์ด: ATtiny25/45/85Timer 1: CPUChip: ATtiny85Clock: 8Mhz (ภายนอก)ปิด BOD
จากนั้นเลือกตัวเลือกเบิร์น bootloader เพื่อเบิร์นการตั้งค่าเหล่านี้ ตอนนี้อัปโหลดภาพร่างของคุณ
ฉันได้รวมไลบรารี ir-send เวอร์ชันแก้ไขแล้ว (https://github.com/anorneto/attiny85_ir_send) ฉันไม่สามารถให้ห้องสมุดทำงานได้เหมือนเดิม - การกำหนดเวลาจาก delayMicroseconds() ดูเหมือนจะหมดไปประมาณสองเท่าแม้ว่าฉันจะมีการตั้งค่านาฬิกาที่ถูกต้อง - บางทีฉันอาจติดตั้ง ATTiny core รุ่นผิดหรือเปล่า ฉันได้ปรับการเรียกเป็น delayMicroseconds() ด้วยปัจจัยหนึ่งเพื่อชดเชย - แต่คุณอาจโชคดีกว่าที่ห้องสมุดไม่ได้แก้ไข
หากคุณกำลังจะใช้ปุ่มวิเศษเพื่อเปิดใช้งานอุปกรณ์ที่มีอยู่ คุณจะต้องแก้ไขภาพร่างเพื่อให้ส่งรหัส IR ที่ถูกต้อง IRCODERAW (ดูข้อมูลอ้างอิงในขั้นตอนหน่วยฐานของคำแนะนำนี้)
คุณสามารถตรวจสอบว่าวงจรทำงานหรือไม่โดยการดู IR LED โดยใช้กล้องในโทรศัพท์มือถือของคุณ ซึ่งสามารถ 'มองเห็น' อินฟราเรดได้แม้ว่าดวงตาของคุณจะมองไม่เห็น
ขั้นตอนที่ 2: ปุ่มวิเศษ - ตัวเรือน
PARTS1x ปุ่ม Jamma Long Arcarde (https://www.ebay.com/itm/301287758471)2x 2x3x8mm Rare Earth Magnetsเหล็กจากกระป๋องดีบุกกาวอีพ็อกซี่กาว3D ชิ้นส่วนที่พิมพ์4x M2 สกรูและน็อต 6 มม.1x CR2025 3V แบตเตอรี่
การก่อสร้าง
ชิ้นส่วนที่พิมพ์ 3 มิติมีสี่ส่วน: Shell, Base, Battery Holder และ Button Spacer
ต้นแบบทั้งสองของฉัน (แสดงในรูปชื่อ) มีการออกแบบที่แตกต่างกันเล็กน้อย:- สีขาว (ซึ่งฉันติดตั้งบนผนังเพื่อสลับแผง LED) มี LED ติดตั้งอยู่ที่มุมประมาณ 40 องศาเพื่อให้ชี้ไปที่ตัวรับสัญญาณบน เพดาน. นอกจากนี้ยังมีรูสำหรับยึดที่ฐาน- สีจะมีลักษณะโค้งมนเล็กน้อยและมี LED เล็งในแนวนอน เครื่องนี้ออกแบบมาให้วางบนพื้นผิวเรียบเพื่อเปิดทีวีหรืออุปกรณ์อื่นๆ
นอกจากการแนบไฟล์.stl สำหรับสองเวอร์ชันนี้แล้ว ฉันยังได้รวมสคริปต์ OpenSCAD เพื่อให้คุณสามารถสร้างปุ่มวิเศษของคุณเองด้วยพารามิเตอร์ต่างๆ
ปุ่ม Arcade จำเป็นต้องถอดประกอบและตัดเป็นสองตำแหน่งโดยใช้เลื่อยเลือยตัดโลหะตามที่ระบุ ฝาครอบปุ่ม (จากปุ่มกดขนาด 12 มม.) จะพอดีกับตัวเว้นระยะปุ่มซึ่งติดอยู่ที่ด้านบนของปุ่ม Arcade
ฐานยึดกับเปลือกด้วยสนามแม่เหล็ก: แม่เหล็กทั้งสองตัวจะติดกาวในช่องของเปลือก - ตรวจสอบให้แน่ใจว่าแม่เหล็กเรียบเสมอกัน ตัดเหล็กชิ้นเล็กสองชิ้น (4x10 มม.) (อย่างระมัดระวัง - คม! - ตะไบขอบ) จากกระป๋อง สิ่งเหล่านี้ติดกาวลงในช่องว่างที่ทำเครื่องหมายไว้บนฐาน ตรวจสอบให้แน่ใจว่าไม่เหลื่อมกับขอบด้านนอก
เสียบที่ใส่แบตเตอรี่เหนือสายไฟทั้งสองแล้วขันเข้ากับ PCB ด้วยสกรู M2 สายไฟถูกตัดและงอตามที่แสดงในภาพ เพื่อที่ว่าเมื่อใส่แบตเตอรี่เข้าไปจะสัมผัสกับสายไฟแต่ละเส้น แรงดันของสายด้านข้างควรยึดแบตเตอรี่ให้อยู่ในตำแหน่ง
กาวขอบด้านนอกของปุ่ม Arcade ลงในรูที่ด้านบนของเปลือก แล้วทุกอย่างก็ควรจะเข้ากันได้ดี!
ขั้นตอนที่ 3: หน่วยฐาน (เพื่อสลับแผงไฟ LED 12v)
ชิ้นส่วน (วงจร)
1x Arduino Nano ATmega168 5V1x 3 มม. LED สีแดง1x 3 มม. LED สีเหลือง1x 5V รีเลย์1x LDR (ตัวต้านทานแบบพึ่งพาแสง)1x 2N2222 ทรานซิสเตอร์ NPN2x 1N4007 ไดโอด1x TSOP4138 IR Receiver1x มินิสไลด์สวิตช์1x ไมโครสวิตช์ (จากปุ่มอาเขต)1x 100K Multi-turn Trimpot1x MINI 3A DC-DC โมดูลลดขั้นตอน (https://www.ebay.com/itm/360741066304) ซ็อกเก็ต DC และ Plug
ชิ้นส่วน (กรณี)
สายลูกปัดแว็กซ์ 1 มม. เส้นผ่านศูนย์กลาง 24 มม. ลูกปัดไม้ (มีรูเส้นผ่านศูนย์กลาง 5 มม.) 1x 12 มม. M6 สกรูดำ 116 มม. x 68 ม. 36 มม. (https://www.ebay.com/itm/382231522470)
กาวอีพ็อกซี่สีดำ
ภาพรวม
หน่วยฐานประกอบด้วยตัวรับสัญญาณ IR ซึ่งจะสลับรีเลย์เมื่อกดปุ่มเมจิก อีกทางหนึ่งคือมีสวิตช์ดึงที่สามารถใช้งานได้ (เช่น หากแบตเตอรี่ปุ่มเมจิกแบน)
นอกจากนี้ยังมีคุณสมบัติการตรวจจับแสงแบบทดลองอีกด้วย สามารถเปิดหรือปิดได้ด้วยสวิตช์เลื่อน (ฉันไม่แน่ใจว่าคุณลักษณะนี้จะทำงานได้ดีเพียงใด) โดยทั่วไปเมื่อเปิดไฟหลักในโรงรถ มันจะตรวจจับแสงและเปิดรีเลย์ ท่อสีดำและระบบหดความร้อนบางส่วนถูกวางบน LDR เพื่อให้มีทิศทางมากขึ้น และมุ่งไปที่ไฟโรงรถหลัก Trimpot ถูกปรับสำหรับเกณฑ์แสงที่ถูกต้อง (ไฟ LED สีเหลืองจะสว่างขึ้นเมื่อถึงเกณฑ์แสง)
การก่อสร้าง
ประสานซ็อกเก็ตอินพุตพลังงานและสเต็ปดาวน์เรกูเลเตอร์ก่อน จากนั้นจึงจ่ายไฟและปรับเรกูเลเตอร์สำหรับแรงดันไฟฟ้า 4.5 - 5 โวลต์ กาว trimpot ในตำแหน่งที่ต้องการ ตรวจสอบให้แน่ใจว่าคุณทำเช่นนี้ก่อนติดตั้ง Arduino ไม่เช่นนั้นคุณอาจระเบิดได้เนื่องจากแรงดันไฟฟ้าเกิน
มีชิ้นส่วนที่พิมพ์ 3 มิติสองส่วน:- ส่วนหนึ่งสำหรับกลไกสวิตช์ดึง ด้ายแว็กซ์จะถูกร้อยผ่านรูตามที่แสดง โดยมีปมขนาดใหญ่ผูกไว้ที่ปลาย - อีกอันเป็นปลั๊กสำหรับลูกบอล ติดกาวเข้าไปในรูในลูกบอลและปลายอีกด้านของด้ายจะลอดผ่าน ปลายอีกด้านผูกปมและขันสกรู M6 เข้ากับฐานของลูกบอล (เพื่อให้มีน้ำหนัก)
เฟิร์มแวร์
เฟิร์มแวร์ใช้ไลบรารีระยะไกล IR จากที่นี่: https://github.com/z3t0/Arduino-IRremote อัปโหลดไปยัง Arduino ตามปกติ
หากคุณต้องการจำลองรีโมตคอนโทรลที่มีอยู่ (เพื่อเปิดทีวี) ให้ใช้ภาพร่างตัวอย่าง IRrecvDump จากไลบรารีนี้เพื่ออ่านและถ่ายโอนโค้ดจากรีโมตทีวีของคุณ ใช้รหัสดิบที่ถูกทิ้งในร่าง Magic Button แน่นอน ในสถานการณ์นี้ คุณไม่จำเป็นต้องสร้างหน่วยพื้นฐาน แต่ให้อ้างอิงถึงแผนผัง เนื่องจากคุณจะต้องเชื่อมต่อตัวรับสัญญาณ IR กับ Arduino เพื่อทำการอ่านและถ่ายโอนข้อมูล
ตัวรับสัญญาณ IR
ตอนแรกฉันติดตั้งตัวรับสัญญาณ IR บน PCB (เสียบเข้ากับส่วนหัว 3 พินเพื่อเพิ่มความสูง) และมองเห็นได้ผ่านรูในเคส แต่ฉันพบว่ามันไม่ 'มองเห็นได้' มากพอที่จะลงทะเบียนแท่นพิมพ์ ดังนั้นฉันจึงลงเอยด้วยการติดตั้งที่ด้านนอกของเคส และตอนนี้ทุกอย่างก็ทำงานได้อย่างสมบูรณ์
กดปุ่มแฮปปี้!
รองชนะเลิศการแข่งขันไร้สาย