สารบัญ:

Arduino Powered, แถบไฟ LED ซีดจางที่ควบคุมด้วยเซนเซอร์: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino Powered, แถบไฟ LED ซีดจางที่ควบคุมด้วยเซนเซอร์: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino Powered, แถบไฟ LED ซีดจางที่ควบคุมด้วยเซนเซอร์: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino Powered, แถบไฟ LED ซีดจางที่ควบคุมด้วยเซนเซอร์: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, พฤศจิกายน
Anonim
Image
Image

ฉันเพิ่งปรับปรุงห้องครัวและรู้ว่าแสงจะ "ยกระดับ" รูปลักษณ์ของตู้ ฉันไปสำหรับ 'True Handless' ดังนั้นฉันจึงมีช่องว่างใต้พื้นผิวการทำงาน เช่นเดียวกับคิกบอร์ด ใต้ตู้ และด้านบนของตู้ที่พร้อมใช้งาน และต้องการจุดไฟ หลังจากมองไปรอบ ๆ ฉันก็ไม่พบสิ่งที่ต้องการจริงๆ และตัดสินใจลองทำด้วยตัวเอง

สำหรับการจัดแสง ฉันเลือกแถบ LED สีขาวนวลสีเดียว (ชนิดกันน้ำพร้อมเคลือบพลาสติกที่ยืดหยุ่นเพื่อการป้องกัน)

สำหรับตู้ติดผนัง เนื่องจากด้านล่างแบนราบ ฉันจึงเลือกไฟที่มีรายละเอียดต่ำมากแล้วเดินสายไฟภายในตู้และรอบๆ ด้านหลัง (ภายในตู้ฉันตัดร่องโดยใช้สายไฟเดรเมล แล้วใส่กลับเข้าไปใหม่ เมื่อสายเคเบิลอยู่ข้างในจึงไม่มีสัญญาณ)

แต่… ฉันไม่ต้องการสวิตช์ขนาดใหญ่ และต้องการรูปลักษณ์ระดับพรีเมียมของแสงที่ปรากฏ ดังนั้นหลังจากมองไปรอบ ๆ และพบสวิตช์ที่หรี่ขึ้น/ลง และสวิตช์ที่เปิดใช้งาน Alexa ตัวหนึ่ง ฉันก็ยังหาไม่เจอ ซึ่งสามารถใช้แสงทั้งหมดและยังทำให้ดูดี ดังนั้นฉันจึงตัดสินใจทำด้วยตัวเอง

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

(และไม่มีค่าใช้จ่ายมากไปกว่าหน่วยที่สร้างไว้ล่วงหน้าจาก Amazon – พร้อมอะไหล่!)

นี่คือวิดีโอการใช้งานจริง

ขั้นตอนที่ 1: อะไหล่

ฉันมีรายการชิ้นส่วนที่ฉันใช้จาก Amazon ด้านล่าง อย่าลังเลที่จะคลิกลิงก์เพื่อซื้อ แต่หากคุณมีสินค้าที่คล้ายกันอยู่รอบ ๆ ให้ใช้พวกเขา !!! โปรดทราบว่าสิ่งเหล่านี้บางส่วนเป็น 'หลายรายการ' ดังนั้นคุณควรมีอะไหล่เพียงพอสำหรับทำของสำหรับเพื่อนและครอบครัว หรือสำหรับโครงการอื่น ๆ - แต่มีราคาถูกมากที่ซื้อออกมักจะหักด้วยค่าขนส่งอย่างไรก็ตาม…..

ชิ้นส่วนสำหรับโครงการนี้:

ชุด Arduino แบบเต็ม (หมายเหตุ: ไม่จำเป็น แต่มีหลายอย่างสำหรับการเล่นในอนาคต!):

Arduino NANO (ใช้ในกล่อง):

เซ็นเซอร์ PIR:

แถบไฟ LED:

ไดรเวอร์ LED (แหล่งจ่ายไฟ):

บอร์ด MOSFET:

กดเพื่อทำสวิตช์:

กล่องดำสำหรับใส่ Arduino และ MOSFET:

กล่องสีขาวสำหรับเซ็นเซอร์และสวิตช์:

การต่อสายจากส่วนประกอบเข้ากับแถบ LED:

ปลั๊กและซ็อกเก็ต 2.1 มม.:

สายสำหรับเชื่อมต่อ Arduino กับส่วนประกอบอื่นๆ:

ฮีทซิงค์ระบายความร้อน (สำหรับ MOSFET):

เทปกาวสองหน้าแบบใช้ความร้อน:

ปลอกหดความร้อน

ขั้นตอนที่ 2: เทคโนโลยีและวิธีการที่เข้ากันได้

เทคโนโลยีและวิธีการที่เข้ากันได้
เทคโนโลยีและวิธีการที่เข้ากันได้
เทคโนโลยีและวิธีการที่เข้ากันได้
เทคโนโลยีและวิธีการที่เข้ากันได้

ในการสร้างสิ่งนี้ อันดับแรก เราต้องสร้างวงจร…

ในการเริ่มต้น ฉันใช้เขียงหั่นขนมและ Ardiuno Uno ขนาดเต็ม ฉันไม่เคยใช้ Arduino มาก่อน ฉันซื้อแพ็คเกจที่มี Uno ของบริษัทอื่นและชิ้นส่วนทั้งชุด (ซึ่งหลังจากนี้ ฉันจะใช้ประโยชน์จากโครงการอื่นๆ) คุณไม่จำเป็นต้องทำสิ่งนี้หากคุณกำลังติดตามโครงการนี้ แต่จะเป็นความคิดที่ดีหากสิ่งนี้อาจทำให้คุณสร้างสิ่งอื่นได้เช่นกัน

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

ฉันใส่มันร่วมกับไฟ LED สีแดงสองสามดวง และสิ่งนี้ทำให้ฉันสามารถตรวจสอบว่าส่วนการซีดจางของโปรแกรมทำงานอย่างไร (ฉันตั้งค่าให้หมดเวลาชั่วคราวหลังจาก 10 วินาที เพื่อให้เห็นเอฟเฟกต์ของการเฟดเข้าและออกที่เซ). วิธีการทำงานคือ LED จะเปิด/ปิดทันที (ต่างจากหลอดไฟทั่วไป) ดังนั้นคุณจึงไม่ต้องใส่แรงดันไฟฟ้าที่ปรับเปลี่ยนได้ – คุณสามารถเปิดและปิดได้อย่างรวดเร็วจนดูเหมือนไม่สว่าง. สิ่งนี้เรียกว่าการปรับคลื่นพัลส์ (PWM สำหรับระยะสั้น) โดยพื้นฐานแล้ว ยิ่งคุณ "เปิด" ไว้นานเท่าไร ก็ยิ่งสว่างขึ้นเท่านั้น

หมายเหตุ: เมื่อฉันต่อแถบไฟจริงแล้ว การดึงปัจจุบันจากแถบที่สมบูรณ์แต่ละแถบจะทำให้แถบสว่างน้อยลงเล็กน้อยและจางลงต่างกันเล็กน้อย - ดังนั้นฉันจึงสร้างโปรแกรมด้วยการตั้งค่าที่กำหนดค่าได้บางอย่าง)

แม้ว่าคุณสามารถซื้อปลั๊กไฟขนาดเล็กเพื่อขับเคลื่อนแถบ LED ได้โดยตรง เนื่องจากฉันมีสี่ตัว ฉันจึงตัดสินใจซื้อไดรเวอร์ LED (โดยทั่วไปแล้วจะเป็นแหล่งจ่ายไฟที่มีเอาต์พุตกระแสไฟที่สูงกว่า) ฉันให้คะแนนสิ่งนี้มากเกินไปเพราะฉันไม่ได้ตรวจสอบการออกรางวัลจริงจนกว่าจะสร้างเสร็จ (ในขณะที่ฉันทำสิ่งนี้ทั้งหมดก่อนที่จะติดตั้งห้องครัว) หากคุณกำลังจะดัดแปลงสิ่งนี้ให้เข้ากับห้องครัวที่มีอยู่ (หรือสิ่งที่คุณใช้สำหรับสิ่งนี้) คุณสามารถวัดการดึงปัจจุบันต่อแถบ เพิ่มค่าเข้าด้วยกันแล้วเลือกไดรเวอร์ LED ที่เหมาะสม (ระดับพลังงานถัดไปขึ้นไป)

หลังจากลองบอร์ดแล้ว ฉันก็รู้ว่ากระแสไฟที่ดึงออกมาจากหลอดไฟจะสูงเกินไปที่จะขับโดยตรงจาก Arduino ดังนั้นสำหรับยูนิตจริง ฉันใช้ MOSFET บางตัว ซึ่งโดยทั่วไปแล้วจะทำหน้าที่เหมือนรีเลย์ หากได้รับพลังงาน (จากด้านพลังงานต่ำ) จากนั้นจึงเปิดการเชื่อมต่อที่ด้านกระแสไฟสูง

ฉันโกงที่นี่ – ฉันสามารถซื้อ MOSFET จริงได้ แต่มีบางแผงวงจรที่ติดตั้งอยู่แล้วพร้อมกับขั้วต่อสกรูและไฟ LED SMD LED เล็ก ๆ ที่น่ารักบนบอร์ดเพื่อให้คุณเห็นสถานะของพวกเขา ประหยัดเวลาในการบัดกรี? ใช่!

แม้แต่กับ MOSFET เรตติ้งสูงสุดของความยาวของแถบ LED ก็ยังคงวาด AMP สองสามตัว และ MOSFET แนะนำให้เพิ่มแผ่นระบายความร้อนเพื่อช่วยให้พวกมันเย็นลง ดังนั้นฉันจึงได้ฮีทซิงค์ขนาดเล็กและใช้เทปความร้อนสองด้านติดบนส่วนโลหะของฮีทซิงค์ เมื่อใช้พลังงานเต็มที่ พวกมันก็ยังร้อนอยู่ แต่หลังจากปรับความสว่างสูงสุดในโปรแกรมของฉันแล้ว (ไฟ LED สว่างเกินไป) ฉันพบว่า MOSFET ไม่ร้อนเลย แต่ก็ยังคุ้มค่าที่จะเพิ่มเพื่อยืดอายุการใช้งานของส่วนประกอบ หรือถ้าคุณเลือกระดับที่สว่างกว่าที่ฉันทำ

เซนเซอร์ยังถูกบรรจุไว้แล้วบนแผงวงจรขนาดเล็ก ซึ่งรวมถึงวงจรสนับสนุนทั้งหมด รวมทั้งจัมเปอร์สองสามตัว (หมุดขนาดเล็กที่มีลิงก์ ซึ่งคุณสามารถสลับไปมาระหว่างตำแหน่งเพื่อเลือกตัวเลือกต่างๆ ได้) และตัวแปร หมดเวลา. ในขณะที่เราใช้สิ่งนี้เพื่อเรียกตัวจับเวลาของเราเอง เราสามารถปล่อยให้มันอยู่ในตำแหน่งเริ่มต้น

ฉันเพิ่มสวิตช์ Push to Make ขนาดเล็กใกล้กับเซ็นเซอร์เพื่อให้ฉันสามารถ "เปิด" ไฟได้อย่างต่อเนื่องและปิดไฟด้วยการกดครั้งที่สอง นี่เป็นส่วนประกอบที่ฉันมีปัญหามากที่สุดเนื่องจากการรวมกันของสิ่งต่าง ๆ หมายความว่า Arduino มักจะคิดว่ามีการกดสวิตช์ ดังนั้นมันจะเปิดและปิดไฟแบบสุ่ม ดูเหมือนว่าจะเป็นการผสมผสานระหว่างสัญญาณรบกวนภายใน Arduino ความยาวของสายเคเบิล สัญญาณรบกวนบนสายกราวด์/0V และการเชื่อมต่อภายในสวิตช์มีเสียงดัง ดังนั้นพวกเขาจึงต้อง 'ดีเด้ง' ฉันเล่นกับของสองสามอย่าง แต่สุดท้ายก็ตกลงที่จะตรวจสอบโปรแกรม ฉันกำลังกดปุ่มสองสามมิลลิวินาที – โดยทั่วไปแล้วจะเด้งออก แต่ก็ไม่สนใจเสียงรบกวนใดๆ ด้วย

สำหรับยูนิตจริง ฉันพบกล่องเล็กๆ ที่ไม่เกะกะสำหรับติดตั้งเซ็นเซอร์และสวิตช์กด และอีกกล่องหนึ่งที่ติดตั้งแผงและสายเคเบิล MOSFET ทั้งหมด เพื่อทำให้สิ่งต่างๆ ง่ายขึ้น ฉันซื้อสายเคเบิลแบบสองคอร์ที่สามารถต่อกระแสไฟได้ (และทำเครื่องหมายหนึ่งสายเพื่อให้ระบุได้ง่าย) และวิ่งไปรอบๆ ห้องครัวจนถึงจุดเริ่มต้นของแถบไฟแต่ละแถบ ฉันยังซื้อซ็อกเก็ตและปลั๊ก ซึ่งอนุญาตให้ฉันถอดสายเคเบิลบนปลั๊ก และติดตั้งซ็อกเก็ตสี่ตัวในกล่องที่ใหญ่ขึ้น ด้วยวิธีนี้ ฉันสามารถจัดลำดับแถบไฟใหม่ โดยเริ่มจากคิกบอร์ด ผ่านมือจับ ใต้ตู้ และเหนือไฟตู้ เพียงแค่ถอดปลั๊กแทนที่จะเปลี่ยนรหัส

กล่องนี้ยังติดตั้ง Arduino NANO อย่างสะดวก (อีกครั้งกับบอร์ดของบริษัทอื่นที่มีราคาต่ำกว่า 3 ปอนด์) ที่ด้านบน ในการนำการเชื่อมต่อเล็กๆ ออกจาก NANO และ MOSFETS ฯลฯ ฉันใช้สายเคเบิลแบบแกนเดี่ยวหลากสี (ฉันใช้สายที่มีฉนวนกันความร้อน แต่คุณไม่จำเป็นต้องทำ) ฉันยังคงใช้สายเคเบิลสองคอร์ที่มีกระแสไฟสูงกว่าจาก MOSFET ไปยังซ็อกเก็ต

ในการเจาะรูกล่อง ฉันโชคดีที่มีสว่านแบบเสา แต่ถึงไม่มี คุณยังสามารถเจาะรูนำร่องด้วยดอกสว่านที่เล็กกว่า แล้วขยายรูให้ได้ขนาดที่ต้องการโดยใช้ดอกสว่านแบบขั้นบันได (https:// amzn.to/2DctXYh) วิธีนี้จะทำให้คุณมีรูที่เรียบร้อยและควบคุมได้มากขึ้น โดยเฉพาะอย่างยิ่งในกล่อง ABS

เจาะรูตามแผนภาพ

กล่องสีขาว ฉันทำเครื่องหมายตำแหน่งของเซ็นเซอร์และตำแหน่งที่เลนส์เฟรสเนลสีขาววางอยู่ จากนั้นเมื่อฉันพบว่าจุดศูนย์กลางของสิ่งนี้อยู่ตรงไหน ฉันเจาะรูนำร่องแล้วใช้ดอกสว่านแบบขั้นบันไดที่ใหญ่กว่าเพื่อขยายให้กว้างขึ้น (คุณสามารถใช้ดอกสว่าน 'ไม้' ที่มีขนาดใหญ่กว่านั้นได้) จากนั้นฉันต้องทรายรูให้ใหญ่ขึ้นเล็กน้อย แต่ฉันไม่ได้ดันเลนส์เฟรสทั้งหมดเข้าไปในรู - การทำให้รูเล็กลง ไม่ได้ทำให้ 'มองเห็นเซ็นเซอร์ได้

คุณจะพบกับกล่องสีขาวที่มีสลักสองสามอันที่ยื่นออกมาด้านข้างเพื่อให้คุณขันสกรูกล่องกับผนัง ฯลฯ แต่ฉันตัดมันออก จากนั้นฉันก็ขยายช่องเจาะเล็กๆ ในกล่องที่ออกแบบมาสำหรับสายเคเบิลด้านหนึ่งให้พอดีกับสายเคเบิล 4 คอร์ที่ใหญ่กว่าที่ฉันใช้ และอีกด้านหนึ่งของกล่องฉันขยายให้พอดีกับสวิตช์ (ดูรูป)

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

การเดินสายไฟ
การเดินสายไฟ

ดูแผนภาพการเดินสายไฟที่แนบมา

โดยพื้นฐานแล้ว คุณสามารถใช้ขั้วต่อแบบกดแล้วบัดกรีในพินที่มาพร้อมกับ Arduino หรืออย่างที่ฉันทำ เพียงแค่บัดกรีโดยตรงกับหมุดบนบอร์ดของ Arduino เช่นเดียวกับงานบัดกรีใดๆ หากคุณไม่มีประสบการณ์ ให้ดูวิดีโอ Youtube และฝึกฝนก่อน - แต่โดยพื้นฐานแล้ว: 1) ใช้ความร้อนที่ดี (ไม่ร้อนเกินไปและไม่เย็นเกินไป) บนเตารีดและตรวจดูให้แน่ใจว่าปลายไม่มีรู. 2) อย่า 'ใส่' บัดกรีลงบนปลายเตารีด (แม้ว่าจะเป็นการดีที่จะ 'ดีบุก' ปลายเมื่อเริ่มใช้งานครั้งแรก แล้วเช็ดหรือเคาะส่วนเกินออก - ฝึกแตะปลายเหล็กลงบนส่วนประกอบและ หลังจากนั้นไม่นานให้แตะบัดกรีที่ส่วนปลายและส่วนประกอบพร้อมกันและควร 'ไหล' ลงบนบอร์ด 3) อย่าทำให้ส่วนประกอบร้อนเกินไป (สำคัญ!!!) - หากดูเหมือนว่าจะไม่ไหล ทิ้งไว้ให้เย็นแล้วลองใหม่อีกครั้ง และอย่าทำงานในบริเวณเดิมนานเกินไป 4) เว้นแต่คุณมีสามมือหรือมีประสบการณ์ในการถือตะเกียบ ให้ซื้อหนึ่งใน Helping Hands เหล่านั้นเพื่อยึดส่วนประกอบเข้าด้วยกัน (เช่น

เพื่อให้ชีวิตง่ายขึ้น ฉันยังยกเลิกการบัดกรีตัวเชื่อมต่อ 3 พินบนบอร์ด MOSFET เมื่อต้องการทำเช่นนี้ ให้หลอมโลหะบัดกรีบางส่วนเข้ากับจุดเชื่อมที่มีอยู่เพื่อช่วยให้ไหลอีกครั้ง จากนั้นใช้คีมดึงหมุดผ่านในขณะที่ตัวประสานยังหลอมเหลวอยู่ ช่วยได้ถ้าคุณมีปั๊มหรือไส้ตะเกียงเพื่อดึงตัวประสานที่หลอมละลายออกไปก่อนที่คุณจะดึงส่วนประกอบออก (เช่น https://amzn.to/2Z8P9aT) แต่คุณสามารถทำได้โดยไม่ต้องใช้มัน ในทำนองเดียวกัน คุณสามารถประสานโดยตรงกับหมุดได้หากต้องการ (แต่จะเรียบร้อยกว่าถ้าคุณต่อสายเข้ากับบอร์ดโดยตรง)

ทีนี้มาดูแผนภาพการเดินสายกัน

นำลวดแกนเดี่ยวที่ละเอียดแล้วเอาฉนวนออกเล็กน้อย (ฉันพบว่าเครื่องปอกและคัตเตอร์ rolson https://amzn.to/2DcSkom ดี) จากนั้นบิดสายไฟแล้วละลายบัดกรีเล็กน้อย ถือไว้ด้วยกัน ดันลวดผ่านรูในบอร์ดแล้วประสานลวดเข้าที่

ทำต่อสำหรับสายไฟทั้งหมดบน Arduino ที่ฉันได้ระบุไว้ (ใช้จำนวนพินดิจิตอลที่คุณต้องการ - ฉันมีไฟ 4 ชุด แต่คุณสามารถใช้มากหรือน้อยได้) ควรใช้สายเคเบิลสีที่ตรงกับการใช้งาน (เช่น 12V สีแดง สีดำ GND ฯลฯ)

ในการทำให้ทุกอย่างเรียบร้อยและป้องกันการลัดวงจร ผมขอแนะนำให้เลื่อนปลอกหุ้มด้วยความร้อนชิ้นเล็กๆ (https://amzn.to/2Dc6lD3) สำหรับการเชื่อมต่อแต่ละครั้งบนลวดก่อนทำการบัดกรี ถือให้ห่างในขณะที่คุณบัดกรี จากนั้นเมื่อข้อต่อเย็นและหลังจากทดสอบทุกอย่างแล้ว ให้เลื่อนไปที่จุดเชื่อมและให้ความร้อนด้วยปืนความร้อนสักครู่ มันหดลงเพื่อให้ข้อต่อเรียบร้อย

หมายเหตุ: ฉันอ่านที่ไหนสักแห่งว่ามีสัญญาณไขว้ระหว่างหมุดบางตัวบน Arduino D12 หรือ D8 เพื่อความปลอดภัย ฉันใช้ D3 สำหรับเอาต์พุตที่สี่ - แต่ถ้าคุณต้องการลองใช้ตัวอื่น โปรดอย่าลืมอัปเดตในโค้ด

ตัดสายเคเบิลให้มีความยาวพอสมควรเพื่อให้พอดีกับกล่อง จากนั้นตัดและดีบุกที่ปลายอีกครั้ง คราวนี้ บัดกรีสายเคเบิลเข้ากับบอร์ด MOSFET บนหมุดตามที่แสดง เอาต์พุตดิจิตอลแต่ละตัว (D9, D10, D11 และ D3) ควรบัดกรีกับหนึ่งในสี่แผง สำหรับเอาต์พุต GND ฉันนำพวกเขาทั้งหมดมารวมกันและรวมเข้ากับพวกเขาด้วยการบัดกรี - ไม่ใช่วิธีที่เรียบร้อยที่สุด แต่ทั้งหมดนั้นซ่อนอยู่ในกล่องอยู่ดี….

Arduino เป็น MOSFET

แรงดันไฟฟ้าขาเข้าที่ฉันต่อสาย +12V และ GND ในลักษณะเดียวกัน และใส่สายเคเบิล 2 คอร์และความยาวสั้น ๆ บางส่วนลงใน Chocblock สิ่งนี้ทำให้ฉันใช้ Choblock เพื่อบรรเทาความเครียดสำหรับพลังงานที่เข้ามาจากไดรเวอร์ LED/PSU และยังอนุญาตให้ต่อสายเคเบิล 2 คอร์ที่หนาขึ้นได้อย่างเรียบร้อยยิ่งขึ้น ตอนแรกฉันทำดีบุกที่ปลายสายเคเบิล แต่พบว่ามันไม่พอดีในการเชื่อมต่อบนบอร์ด MOSFET เลยจบลงด้วยการตัดปลายกระป๋องออกและติดตั้งได้ดีกว่า

ฉันใช้สายเคเบิล 2 คอร์ที่มีความยาวมากกว่า 4 ซม. และบัดกรีเข้ากับซ็อกเก็ต 2.1 โปรดทราบว่าสิ่งเหล่านี้มีสามพินและอีกอันหนึ่งใช้เพื่อป้อนฟีดเมื่อลบการเชื่อมต่อ ใช้การเชื่อมต่อสำหรับพินด้านใน (12V) และด้านนอก (GND) และปล่อยให้พินที่สามถูกตัดการเชื่อมต่อ จากนั้นใส่สายเคเบิลแต่ละเส้นผ่านรูที่ด้านข้างของกล่อง ใส่น็อต จากนั้นเสียบเข้าไปในขั้วต่อเอาท์พุตของขั้วต่อ MOSFET แล้วขันให้แน่น

การเชื่อมต่อเซ็นเซอร์

ใช้สายเคเบิลสี่แกนตัดความยาวให้ยาวพอที่จะเดินทางจากจุดที่คุณซ่อน PSU และกล่องไปยังตำแหน่งที่คุณต้องการวางเซ็นเซอร์ (ตรวจสอบให้แน่ใจว่านี่คือตำแหน่งที่จะจับคุณเมื่อคุณเดินเข้าไปในพื้นที่ แต่ไม่สะดุดเมื่อมีคนเดินผ่านมาห้องข้างๆ!)

บัดกรีสายไฟเข้ากับหมุดบนแผงเซ็นเซอร์ (คุณสามารถถอดหมุดออกได้หากต้องการ) และใช้สายเคเบิลแบบสั้น (สีดำ!) ต่อสายลิงก์เพื่อต่อสาย GND ไปที่ด้านหนึ่งของสวิตช์ จากนั้นบัดกรีสายไฟอีกเส้นจากสายเคเบิล 4 คอร์ไปยังอีกด้านหนึ่งของสวิตช์

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

วางสายผูกเล็กๆ ไว้รอบๆ สายเคเบิลที่อยู่ภายในกล่องเพื่อช่วยป้องกันไม่ให้สายนี้ดึงและทำให้การเชื่อมต่อของคุณบน Arduino เสียหาย

พลัง

ไดรเวอร์ LED (พาวเวอร์ซัพพลาย) ที่ฉันซื้อมีเอาต์พุตเอาต์พุตสองตัว - ทั้งสองอันมีเอาต์พุต 12V และ GND ดังนั้นฉันจึงใช้ทั้งสองอย่างและแยกการใช้งานเพื่อให้ไฟ LED 2 ดวงผ่าน MOSFET สองตัวและใช้พลังงานจากหนึ่งในนั้น เอาต์พุตของพาวเวอร์ซัพพลาย และไฟ LED อีก 2 ดวงจากเอาต์พุตอื่น คุณอาจเลือกแหล่งจ่ายไฟอื่นและมีเอาต์พุตเพียงตัวเดียว ทั้งนี้ขึ้นอยู่กับโหลดจากไฟ LED ที่คุณใช้

ดังนั้น กล่องของฉันจึงมีรู 2 x ที่สายเคเบิลจากพาวเวอร์ซัพพลายเข้ามา จากนั้นฉันก็ใส่ Chocblock เข้าไปข้างในเพื่อทำการเชื่อมต่อและเพื่อบรรเทาความเครียด

ขั้นตอนที่ 4: โปรแกรม Arduino

โปรแกรม Arduino
โปรแกรม Arduino

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

สำคัญ: เดิมทีฉันตั้งค่านี้บนชุดชิ้นส่วนและ Arduino UNO หากคุณใช้บอร์ด Arduino NANO แสดงว่า bootloader ของบอร์ดนั้นน่าจะเก่ากว่า คุณไม่จำเป็นต้องอัปเดตสิ่งนี้ (มีวิธีการทำเช่นนี้ แต่ไม่จำเป็นสำหรับโครงการนี้) สิ่งที่คุณต้องทำคือตรวจสอบให้แน่ใจว่าคุณเลือก Arduino NANO ใน Tools>Board แล้วเลือกอันที่ถูกต้องใน Tools>Processor เมื่อคุณเลือกพอร์ต COM แล้ว คุณยังสามารถเลือกดูว่าเกิดอะไรขึ้นหากคุณเชื่อมต่อกับคอนโซลซีเรียล (เครื่องมือ > การตรวจสอบอนุกรม)

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

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

รหัสทำงานอย่างไร

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

นอกจากนี้ยังมีค่าออฟเซ็ตซึ่งเป็นช่องว่างระหว่างแสงจางหนึ่งไปยังอีกดวงหนึ่ง ดังนั้นคุณจึงไม่ต้องรอให้แต่ละแสงจางลง คุณสามารถเริ่มการจางครั้งต่อไปก่อนที่แสงก่อนหน้าจะจางหายไป

ฉันเลือกค่าที่เหมาะกับฉัน แต่โปรดอย่าลังเลที่จะทดลอง อย่างไรก็ตาม: 1) ฉันไม่แนะนำให้ปรับความสว่างสูงสุดให้สูงเกินไป - แม้ว่ามันจะใช้งานได้ แต่ฉันรู้สึกว่าไฟสว่างเกินไปและไม่ซับซ้อน (และด้วย LED ยาว ๆ กระแสไฟเพิ่มเติมทำให้ MOSFET ร้อนขึ้น - ซึ่ง เปลี่ยนกล่องให้มีช่องระบายอากาศมากขึ้น) 2) ออฟเซ็ตใช้ได้กับค่าปัจจุบัน แต่เนื่องจากวิธีที่ไฟ LED ไม่เพิ่มความสว่างเป็นเส้นตรงตามกำลังที่ใช้ คุณอาจพบว่าคุณต้องปรับพารามิเตอร์อื่นๆ จนกว่าคุณจะได้ผลดี 3) ในกิจวัตรการทำให้จางลง ฉันได้ตั้งค่าความสว่างสูงสุดของไฟใต้เคาน์เตอร์ของฉันให้สูงสุดที่ 255 (พวกมันดึงกระแสไฟน้อยกว่า ดังนั้นอย่าทำให้ MOSFET ร้อนเกินไป และฉันต้องการดูว่าฉันกำลังทำอาหารอะไรอยู่ด้วย!)

หลังจากส่วนการติดตั้งจะมีวงใหญ่หนึ่งวง

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

เมื่อได้รับสิ่งนี้ จะเรียกใช้การกำหนดเส้นทาง TurnOn โดยจะนับถึง 0 จนถึงมูลค่ารวมของอุปกรณ์ทั้งหมด 4 เครื่องที่ค่าสูงสุดที่เลือก เพิ่มขึ้นตามจำนวนที่คุณระบุในค่า FadeSpeed1 ใช้คำสั่ง constrain เพื่อป้องกันไม่ให้แต่ละเอาต์พุตมีขนาดใหญ่กว่าความสว่างสูงสุด

จากนั้นจะอยู่ในลูปอื่น โดยจะรีเซ็ตค่าหากเซ็นเซอร์ถูกกระตุ้นอีกครั้งหากไม่มีการรีเซ็ต เมื่อตัวจับเวลาของ Arduino มาถึงจุดนี้ มันจะแยกตัวออกจากลูปและเรียกใช้รูทีน TurnOff

ณ จุดใด ๆ ระหว่างวนรอบ 'สถานะเปิด' หากกดสวิตช์นานกว่าสองสามมิลลิวินาที เราจะกะพริบไฟเพื่อยืนยัน แล้วตั้งค่าสถานะซึ่งทำให้ค่าตัวจับเวลาได้รับการรีเซ็ตเสมอ - ดังนั้นไฟจะไม่จางหายไป อีกครั้ง. การกดสวิตช์ครั้งที่สองจะทำให้ไฟกะพริบอีกครั้งและสำหรับลูปที่จะออก ปล่อยให้ไฟจางลงและเพื่อรีเซ็ต

ขั้นตอนที่ 5: ใส่ทุกอย่างลงในกล่อง

ใส่ทุกอย่างลงในกล่อง
ใส่ทุกอย่างลงในกล่อง
ใส่ทุกอย่างลงในกล่อง
ใส่ทุกอย่างลงในกล่อง

เมื่อคุณวางสายทุกอย่างเรียบร้อยแล้ว ก็ถึงเวลาทดสอบ

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

บนเซ็นเซอร์มีโพเทนชิโอมิเตอร์แบบปรับได้สองสามตัวซึ่งช่วยให้คุณปรับความไวของ PIR และระยะเวลาที่เซ็นเซอร์ถูกกระตุ้น ขณะที่เรากำลังควบคุมองค์ประกอบ 'นานแค่ไหน' ในโค้ด คุณสามารถปล่อยให้ค่านี้เป็นค่าต่ำสุดได้ แต่คุณสามารถปรับเปลี่ยนตัวเลือกความไวได้ตามต้องการ นอกจากนี้ยังมีจัมเปอร์ - ฉันปล่อยให้สิ่งนี้อยู่ในตำแหน่งเริ่มต้นและอนุญาตให้เซ็นเซอร์ 'retriggered' - ถ้ามันตรวจพบคุณเพียงครั้งเดียวแล้วก็หมดเวลาเสมอ ก็ถึงเวลาที่จะย้ายสวิตช์นี้!

เพื่อช่วยในการทดสอบ ฉันลดเวลาที่ไฟยังคงเปิดไว้ชั่วคราวให้เหลือประมาณ 12 วินาที แทนที่จะรอประมาณ 2 นาทีหรือมากกว่านั้น โปรดทราบว่าหากคุณทำให้เวลาน้อยกว่าเวลาที่ใช้ในการเฟดอินโดยสมบูรณ์ โค้ดจะเกินเวลาสูงสุดเสมอและจะค่อยๆ จางหายไปในทันที

สำหรับแถบ LED คุณต้องตัดแถบตามจุดที่ทำเครื่องหมายบนแถบ จากนั้น ใช้มีดคม (แต่ระวังอย่าตัดจนสุด!) ตัดผ่านสารเคลือบกันน้ำไปยังแถบโลหะ แล้วลอกออก โดยเปิดแผ่นบัดกรีทั้งสองชิ้น ใส่บัดกรีลงบนสิ่งเหล่านี้ (ระวังอย่าให้ร้อนมากเกินไป) แล้วติดลวดสองคอร์ จากนั้นบัดกรีปลั๊กที่ปลายอีกด้านของสายไฟเพื่อให้คุณสามารถเสียบเข้ากับซ็อกเก็ตเพื่อให้วงจรขับเคลื่อนได้

หมายเหตุ: แม้ว่าฉันจะซื้อคอนเน็กเตอร์ 90 องศาสำหรับแถบ LED ที่คุณสามารถเปิดได้ แต่ฉันพบว่าตัวเชื่อมต่อเหล่านี้ทำให้การเชื่อมต่อที่ไม่ดีจนเกิดการสั่นไหวหรือล้มเหลว ดังนั้นฉันจึงตัดแถบตามขนาดที่ต้องการและบัดกรีสายเคเบิลเชื่อมระหว่างชิ้นส่วนของแถบ LED แทน สิ่งนี้ช่วยได้เช่นกันเมื่อฉันต้องเปิดแถบใต้ตู้ เนื่องจากฉันต้องต่อกับเครื่องล้างจานและตู้เย็นนานขึ้น

เสียบทุกอย่างเข้าด้วยกันแล้วเสียบพาวเวอร์ซัพพลายเข้ากับแหล่งจ่ายไฟหลัก จากนั้นหากคุณเคลื่อนเข้าใกล้เซ็นเซอร์ PIR เซ็นเซอร์จะเริ่มทำงาน และคุณจะเห็นไฟจางลงอย่างสง่างาม

หากไฟดับในลำดับที่ไม่ถูกต้องเหมือนฉัน ให้หาว่าสายใดเป็นสายใด แล้วถอดปลั๊ก/เปลี่ยนสายเคเบิลเข้ากับเต้ารับอื่นจนกว่าคุณจะจางลงอย่างสวยงาม

คุณอาจต้องการปรับการตั้งค่าโปรแกรม (ฉันสังเกตเห็นว่าแถบ LED ยาวขึ้น แถบ LED จะเข้มขึ้นเมื่อ 'ความสว่างเต็มที่') และคุณสามารถเสียบ Arduino เข้ากับคอมพิวเตอร์ของคุณและอัปโหลดโปรแกรมใหม่อีกครั้ง

แม้ว่าฉันจะอ่านที่ไหนสักแห่งว่าไม่ควรมีอุปกรณ์จ่ายไฟสองตัวใน Arduino (USB ให้พลังงานด้วย) ฉันก็ลงเอยด้วยการเสียบ Arduino เข้ากับ Power Supply แล้วเสียบการเชื่อมต่อ USB เข้ากับคอมพิวเตอร์เพื่อที่ ฉันสามารถตรวจสอบสิ่งที่เกิดขึ้นได้โดยใช้จอภาพพอร์ตอนุกรม สิ่งนี้ใช้ได้ดีสำหรับฉัน ดังนั้นหากคุณต้องการทำเช่นนี้ ฉันได้ทิ้งข้อความซีเรียลไว้ในรหัสแล้ว

เมื่อคุณยืนยันว่าทุกอย่างใช้งานได้ ก็ถึงเวลาใส่ทุกอย่างลงในกล่อง สำหรับสิ่งนี้ฉันแค่ใช้กาวร้อน

หากคุณดูตำแหน่งของทุกอย่างในกล่อง คุณจะเห็นว่าบอร์ด MOSFET สามารถนั่งลงที่ด้านใดด้านหนึ่งของกล่อง และสายเคเบิลจากเอาต์พุตของลูปเหล่านี้อยู่รอบๆ และซ็อกเก็ต 2.1 มม. สามารถวางต่อไปได้ ผ่านรูและน็อตที่ยึดเข้ากับ MOSFET เพื่อยึดเข้าที่ หยดกาวเล็กๆ น้อยๆ จะช่วยยึดสิ่งเหล่านี้ให้เข้าที่ แต่ยังสามารถดึงออกได้อีกครั้งหากต้องการ

Arduino ควรเปิดด้านข้างที่ด้านบนของกล่องและ chocblock สำหรับการจ่ายไฟเข้าควรอยู่ที่ด้านล่าง

หากคุณมีเวลาวัดและบัดกรีสายเคเบิลทั้งหมดอีกครั้ง อย่าลังเลที่จะทำเช่นนี้ แต่เนื่องจากมันอยู่ในกล่องและซ่อนอยู่ใต้โต๊ะทำงานของฉัน ฉันจึงทิ้ง 'รังหนู' ที่เป็นสายไฟไว้ตรงกลางของ กล่อง (ห่างจากฮีทซิงค์บน MOSFET ในกรณีที่ร้อน)

จากนั้นเพียงแค่ปิดฝากล่อง เสียบปลั๊ก แล้วสนุกได้เลย!

ขั้นตอนที่ 6: สรุปและอนาคต

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

ฉันพบว่าเราไม่ค่อยใช้ไฟหลักสำหรับห้องครัว เนื่องจากไฟ LED เหล่านี้ให้แสงสว่างเพียงพอสำหรับวัตถุประสงค์ส่วนใหญ่ รวมทั้งทำให้ห้องครัวเป็นสถานที่ที่น่าสนใจยิ่งขึ้น

นี่เป็นโครงการ Arduino แรกของฉัน และจะไม่ใช่โครงการสุดท้ายของฉันแน่นอน เนื่องจากส่วนการเข้ารหัสทำให้ฉันใช้ทักษะการเขียนโค้ด (ที่เป็นสนิม!) แทนกระบวนการออกแบบทางอิเล็กทรอนิกส์ได้ และการเชื่อมต่อและการสนับสนุนของ Arduino ก็มอบฟังก์ชันเจ๋งๆ มากมายโดยไม่จำเป็นต้องใช้ เพื่อทำวงจรไฟฟ้าจำนวนมาก

ฉันสามารถซื้อ MOSFET เองได้ (หรือใช้วิธีอื่น) เพื่อขับเคลื่อนกระแสไฟสูงของแถบ LED แต่นั่นอาจหมายถึงการซื้อส่วนประกอบสนับสนุน (ไดโอด ตัวต้านทาน ฯลฯ) และ LED SMD บนบอร์ดก็มีประโยชน์ ดังนั้นฉันจึงรู้สึกว่าจ่ายเงินเพิ่มเล็กน้อยสำหรับกระดานมันสมเหตุสมผล

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

ในห้องครัวของเรา ไฟควรจะเป็นไฟเพื่อเน้นเสียง ดังนั้นเราจึงใช้มันตลอดเวลา อย่างไรก็ตาม ตอนแรกฉันกำลังพิจารณาที่จะเพิ่มเซ็นเซอร์วัดแสงเพื่อเปิดใช้งานเฉพาะสถานะ 'เปิด' ที่เกิดขึ้นหากมันมืดเพียงพอ เนื่องจากลูปแบบ staged ในโค้ด จะเป็นเรื่องง่ายที่จะเพิ่ม Light Dependent Resistor ให้กับหนึ่งในหมุดอนาล็อกบน Arduino จากนั้นเปลี่ยนเงื่อนไขการฝ่าวงล้อมในลูป 'OFF' เพื่อรอให้เซ็นเซอร์และ LDR เป็น ต่ำกว่าค่าบางอย่างเช่นในขณะที่ ((digitalRead(SENSOR) == LOW) และ (LDR <= 128));.

แจ้งให้เราทราบว่าคุณคิดอย่างไรหรือทำอะไรกับสิ่งนี้และข้อเสนอแนะอื่น ๆ !

แนะนำ: