DIY - สวิทช์ควบคุมไฟหัวเตียงด้วยไมโครคอนโทรลเลอร์

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

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

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

         ก่อนจะเข้ามานำเสนอนี่ ผมใช้มันมาเดือนครึ่งเพื่อทดสอบความน่าไว้ใจของมันแล้ว ทุกอย่างทำงานด้วยดี

คุณสมบัติของผลิตภัณฑ์
   -  ควบคุมหลอดไฟฟ้าที่แรงดันสูงสุดสูงสุด 12 โวลต์ กระแสสูงสุด 0.8  แอมป์ กำลังสูงสุด 10 วัตต์ ต่อชุด
   -  ทำงานด้วยสวิทช์เพียง 2 ตัว  
        -  ตัวแรกเป็นตัววนเลือกหลอดไฟ (Select) และตั้งเวลาไฟก่อนนอน (Sleep)
        -  อีกตัวเอาไว้ปิดไฟในทุกกรณี
      - ควบคุมไฟสว่าง 3 จุด โดยที่ 1 จุดเป็นไฟก่อนนอนสามารถตั้งเวลาไว้ 1 ชั่วโมง หลอดไฟจะวูบสว่างขึ้นและวูบดับ (fade in - fade out) ไม่กระโชกเหมือนเปิดปกติ แต่ละจุดรับแรงดันสูงถึง 12 โวลต์ (สูงได้ถึง 24 โวลต์แต่กระแสสูงสุดจะแปรผันลดลง)  และกระแสสูงสุด 0.8 แอมป์ (10 วัตต์)  
       หมายเหตุ ถ้าต้องการควบคุมกำลังไฟฟ้ามากกว่านี้หรือใช้แรงดันไฟบ้านได้ ให้เปลี่ยนหลอดไฟเป็นรีเลย์ 12 โวลต์แทน (มี  fast recovery diode ต่อ reversr bias คร่อมขาคอยล์ด้วยนะ) ยกเว้นจุดไฟก่อนนอนห้ามเปลี่ยนเพราะมันมีส่วนทำงานแบบ pwm อยู่
     - เมื่อเข้าในโหมดก่อนนอน จะมีหลอดไฟมอนิเตอร์สีแดงสว่างขึ้น (Sleep minitoring) ให้รู้ว่าอยู่ในโหมดตั้งเวลา
     - มีภาค watchdag จะหน้าที่ตั้งระบบในตัวเอง เมื่อเกิดความผิดพลาดในโปรแกรม (แฮงก์)
    
การทำงาน ประกอบด้วย 2 ปุ่ม คือ
         1.  ปุ่ม Select/Sleep  
    - เมื่อกดแต่ละครั้ง หลอดไฟก็จะเปิดวนในลักษณะ หลอด 1  --- >  หลอด 2 --- >  หลอด1 และ หลอด 2  --- >  ไฟก่อนนอน --- >   ดับหมด
    - เมื่อกดแช่นาน ประมาณ 0.3 วินาที จะเข้าโหมด Sleep หลอดไฟ 1และ 2 จะดับ หลอดไฟก่อนนอนเฟดสว่างขึ้นจนเต็มที่ และสว่างนาน 1 ชั่วโมงจากนั้นจะค่อยวูบดับลง ระหว่างนี้จะไม่สามารถกดสวิทช์เลือกไฟได้อีก ยกเว้นกดอีกปุ่ม (Off) ซึ่งทำหน้าที่ดับไฟ
        2.   ปุ่ม Off
    - เอาไว้ดับหลอดไฟ ไม่ว่าจะอยู่โหมดไหน กดปุมนี้จะดับหมด





อุปกรณ์สำคัญ
     MCU ที่ผมเลือกใช้นั้น เป็น PIC เบอร์  12F509 จากบริษัทไมโครชิพ  เนื่องจากมีขนาดเล็กแค่ 8 ขา ง่ายต่อการโปรแกรม ไม่ต้องคอนฟิกมาก เนื่องจากมีแค่ไม่กี่รีจิสเตอร์ ที่สำคัญคือ ราคาถูกและทนทานสูง  โดยที่ 12F509 นั้นมีหน่วยความจำเก็บโปรแกรม 1 กิโลไบต์ มีRAM 41 ไบต์  Digital I/O 6 ขา มีวงจรสร้างสัญญาณนาฬิกาในตัว 4 MHz  แต่ความเร็วทำงานต้องหาร 4 เพราะโครงสร้างแบบ pipeline ตามสถาปัตยกรรมแบบฮาเวิร์ด (RISC)  นั่นคือเหลือ 1 ล้านคำสั่งต่อวินาที ถึงต่อคริสตอลข้างนอกก็เพิ่มความถี่ไม่ได้มากกว่านี้  ไม่มีลูกเล่นใดๆ เช่น พอร์ทอนุกรม  PWM  EEPROM  A/D Comparator ..... หรือแม้แต่อินเตอร์รัพท์  มีไทม์เมอร์รีจีสเตอร์ 8 บิทแค่ตัวเดียว  มันข้นแค้นจนคุณไม่อยากเชื่อว่ามีคอนโทรลเลอร์แบบนี้มีอยู่ในโลก แต่เพราะการไม่มีอะไรมันเลยเรียบง่าย และมีความเชื่อถือได้สูง ผมจะพยายามใช้มันให้เต็มความสามารถเพื่อให้คุ้มกับเงินมากที่สุด


       หลอดไฟหัวเตียงนั้นผมใช้ของ ROHM รุ่น LBF1048-45DXB จากญี่ปุ่น ต่อกับตัวต้านทาน 2 โอห์ม 3 วัตต์ (1 วัตต์ก็เหลือเฟือแล้ว เพราะกำลังแทบทั้งหมดจะถูกส่งไปที่หลอด)   ให้แสงประมาณ 600 ลูเมนส์ ถือว่าเพียงพอ  (อย่าลิมว่ามันมีมุมสว่างเพียง 120 องศา 1/4 ของหลอดกลมหรือ CFL ทั่วไป ดังนั้นที่พื้นที่เท่ากันมันจะสว่างกว่า 4 เท่าเมื่อเทียบกับหลอดกลมที่ค่าลูเมนส์เท่ากัน)  



        ส่วนไฟนอนหลับนั้นเป็นของ Dominant  รุ่น NPW-RSZ-TU-1 ต่ออนุกรม 3 ดวงอนุกรมกับตัวต้านทาน 12 โอห์ม บนแผงสำเร็จ จริงๆ  แล้วหาหลอด 12 โวลต์ 2-3 วัตต์อะไรก็ได้ อย่างไรก็ตามเรื่องหลอดไฟผมคงไม่เน้นในกระทู้นี้  



  วงจรและข้อมูลทั่วไป




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

   2. ส่วนรับอินพุทของ MCU เป็น TACT สวิทช์กดติดปล่อยดับทั่วไป  ต่อกับตัวต้านทาน weak pull up ขนาด 2 กิโลโอห์ม 0.25 วัตต์ จริงๆ ใน MCU ก็มี Weak pull up resistors แต่มันไม่เวิร์ค สู้สัญญาณรบกวนไม่ได้ และตัวโปรแกรมที่ให้มาก็เปิดใช้อยู่

   3. ส่วนควบคุมขาออกของ MCU เพื่อจะไปเปิด-ปิดหลอดไฟ  โดยใช้ทรานซิสเตอร์ 2SD882 เป็นตัวขับกำลังให้แต่ละหลอด และมีตัวต้านทาน 200 โอห์ม  0.25 วัตต์ก็พอเป็นตัวไบอัสขาเบส เพื่อไม่ให้โหลดกระแสซอร์สของ MCU มากเกินไป  อีกจุดหนึ่งคือไฟมอนิเตอร์โหมดไฟก่อนนอน ที่ใช้ตัวต้านทาน 200 โอห์ม 0.25 วัตต์ อนุกรมไว้

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

        อีกจุดหนึ่งคือหลอดแอลอีดีแสดง Power On จะต่อกับอินพุท 12 โวลต์เพื่อโชว์ว่ามีไฟเข้ามาในวงจรหรือไม่ ตัวนี้อนุกรมด้วยตัวต้านทาน 910 โอห์ม (ใช้ 1 กิโลโอห์มก็ได้ แต่อนนั้นผมหาไม่เจอ) 0.25 วัตต์

       หลอด Power On กับ Sleep Monitor นั้น ผมใช้หลอด 2 สีในตัวถังเดียวกัน เพื่อประหยัดการต่อวงจรและ ใช้การมองที่จุดเดียว

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