http://aimagin.com/blog/kmuttproj16_ledrgb_lcd/?lang=th

โครงงาน ชุดเปลี่ยนสีหลอดไฟ LED RGB แสดงผลผ่าน LCD

โดย นายอารันต์ มณีอ่อน (arun_kla@hotmail.com)
สาขาวิศวกรรมแมคคาทรอนิกส์ ภาควิชาครุศาสตร์เครื่องกล มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ

Download:  Simulink model File (KMUTNBproj16_resource.7z )
KMUTNBProj16_001
Contents [show]

หลักการและเหตุผล

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

คุณสมบัติการทำงานของโครงงาน

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

การต่อวงจรสำหรับวงจรควบคุมหลอดไฟ LED RGB

รูปที่ 2 วงจรสมบูรณ์
รูปที่ 2 วงจรสมบูรณ์

การต่อหลอดไฟ LED RGB

รูปที่ 3 : วงจรการต่อหลอดไฟ LED RGB
รูปที่ 3  วงจรการต่อหลอดไฟ LED RGB
รูปที่ 4 สัญลักษณ์หลอดไฟ LED
รูปที่ 4 สัญลักษณ์หลอดไฟ LED
จากวงจรสมบูรณ์ ในรูปที่ 2 เมื่อดูเฉพาะในส่วนของการต่อหลอดไฟ LED RGB ดังรูปที่ 3 หลอดไฟชนิดนี้จะมีทั้งหมด 4 ขา ประกอบไปด้วย ขา R , ขาไฟ (+) , ขา G และ ขา B ดังรูปที่ 4 การต่อวงจรการใช้งานในส่วนของหลอด LED RGB ใช้หลอดไฟจานวน 16 หลอดโดยที่การต่อหลอดไฟเป็นการต่อแบบขนานเพื่อให้หลอดไฟมีความสว่างอย่างสม่ำเสมอ และที่ขาหลอดไฟ ขา (+) จะต่อเข้ากับไฟตรง +5V ส่วนอีก 3 ขาที่เหลือ ขา R (สีแดง) จะต่อเข้ากับพอร์ต PD5 ของบอร์ด STM32F4 , ขา G (สีเขียว) จะต่อเข้ากับพอร์ต PD3 ของบอร์ด STM32F4 และ ขา B (สีน้ำเงิน) จะต่อเข้ากับพอร์ต PD1ของบอร์ด STM32F4 โดยการจ่ายสัญญาณจากบอร์ด STM32F4 เพื่อมาเข้าที่หลอดไฟ จะเลือกเป็น Open Drain เพื่อจ่ายเป็น Ground ออกมาเนื่องจากหลอดไฟนี้เป็นแบบ Common Anode (+)

หลักการทำงานของ หลอดไฟ LED RGB

การทำงานของหลอดไฟ LED RGB ชนิดนี้เป็นแบบ Common Anode (+) คือหลอดไฟชนิดนี้จะมีไฟบวกรออยู่แล้วเหลือเพียงแต่มีกราวน์มาทริกส์มันเท่านั้นไฟก็จะติด โดยที่หลอดไฟชนิดนี้จะแตกต่างจากหลอดอื่น ๆ ตรงที่หลอดไฟชนิดนี้สามารถติดแล้วดับได้ในทันทีเมื่อทำการจ่ายไฟหรือจ่ายกราวน์ให้

การต่อสวิตซ์กดติด-ปล่อยดับ

รูปที่ 5 วงจรการต่อสวิตซ์
รูปที่ 5 วงจรการต่อสวิตซ์
จากวงจรสมบูรณ์ ในรูปที่ 2 เมื่อดูเฉพาะในส่วนของการต่อสวิตซ์ ตามรูปที่ 5 ของวงจรประกอบไปด้วยสวิตซ์กดติด-ปล่อยดับ 7 ตัว โดยสวิตซ์จะมีไฟเลี้ยง +3V จ่ายไฟทั้ง 7 ตัว และขาอีกด้านของสวิตซ์กดติด-ปล่อยดับ ทั้ง 7 ตัวนี้ จะต่อเข้ากับกับบอร์ด STM32F4 โดยขาที่ใช้สำหรับต่อสวิตซ์ประกอบไปด้วยขา PA14 , PC11 , PA13 , PE6 , PE5 , PC3 และ PA1 ตามลาดับ โดยการต่อสวิตซ์นี้จะเลือกการทำงานเป็นแบบ Pull Down คือเมื่อมีการกดสวิตซ์ก็จะมีสัญญาณมาทริกที่ขาที่กาหนดไว้ทั้ง 7 ขาเมื่อต่อแล้วจะได้ดังรูปที่ 6
รูปที่ 6 การต่อสวิตซ์กดติด – ปล่อยดับ ทั้ง 7 ตัว
รูปที่ 6 การต่อสวิตซ์กดติด – ปล่อยดับ ทั้ง 7 ตัว

หลักการทำงานของสวิตซ์กดติด-ปล่อยดับ

สวิตซ์กดติด-ปล่อยดับนี้มีหลักการคือเมื่อมีการกดสวิตซ์ลงก็จะมีแรงดันไฟออกมา แต่เมื่อไม่มีการกดสวิตซ์ก็จะไม่มีอะไรเกิดขึ้นไม่ว่าจะเป็นสัญญาณหรือแรงดันไฟ โดยในโครงงานชิ้นนี้เลือกใช้สวิตซ์ชนิดนี้เนื่องจากมีราคาไม่แพงและสามารถหาได้ง่าย โดยการนำมาใช้งานร่วมกับบอร์ด STM32 นี้ จะกำหนดเป็น Pull Down เนื่องจากเมื่อมีการกดสวิตซ์แล้วให้มีสัญญาณเป็น 0 และเมื่อไม่มีการกดจะกำหนดให้สัญญาณเป็น 1 ตามเงื่อนไขที่ได้กาหนดไว้ใน Function

การต่อจอแสดงผล LCD แบบ 20×4

รูปที่ 7 วงจรการต่อจอ LCD
รูปที่ 7 วงจรการต่อจอ LCD
จากวงจรสมบูรณ์ในรูปที่ 2 เมื่อดูเฉพาะในส่วนของการต่อจอแสดง LCD ตามรูปที่ 7 จอนี้เป็นแบบ 20×4 คือ มี 20 ตัวอักษร และมี 4 แถว การต่อคือจะเห็นว่ามีขาที่ต้องต่อทั้งหมด 16 ขา แต่จะต่อแค่ 12 ขา โดยใน 3 ขา แรกนั้นจะต่อเข้ากับตัว VR เพื่อใช้ปรับความสว่างของหน้าจอ LCD และจะต่อขา 4,5,6,11,12,13 และ 14 ของจอ เข้ากับ พอร์ต PE7 , PE8 , PE9 , PE12 , PE13 , PE14 และ PE15 ของบอร์ด STM32F4 เมื่อต่อเสร็จก็จะได้จอการแสดงผลตามรูปที่ 8
รูปที่ 8 จอ LCD แสดงการทางาน
รูปที่ 8 จอ LCD แสดงการทางาน

ส่วนประกอบของวงจร

ส่วนประกอบของวงจกร ประกอบไปด้วย
  1. บอร์ด STM32F4
  2. สวิตซ์กดติด -ปล่อยดับ 7 ตัว
  3. หลอด LED RGB 16 หลอด
  4. จอแสดง LCD แบบ 20×4
  5. ตัว VR สาหรับปรับความสว่างของจอ LCD

โปรแกรม Simulink ที่สมบูรณ์ของโครงงาน

รูปที่ 9 โครงสร้างการเขียนโปรแกรมของโครงงาน
รูปที่ 9 โครงสร้างการเขียนโปรแกรมของโครงงาน
การเขียนโปรแกรมจะเป็นการรับค่าจากสวิตซ์กดติด-ปล่อยดับ ทั้ง 7 ตัว คือ PA14, PC11, PA13, PE6, PE5, PC3 และ PA1 โดยสวิตซ์จะรับค่าเป็น 0 เนื่องจากว่าใช้เป็น Pull Down โดยเมื่อมีการกดสวิตซ์เกิดขึ้นก็จะส่งสัญญาณ ไปเข้าที่ Function 7 เพื่อเข้าเงื่อนไขที่ตั้งไว้ทั้ง 7 กรณี ถัดมาเมื่อมีการกดแล้วก็จะเข้าเงื่อนไขใดเงื่อนไขหนึ่ง ทางฝั่ง Output ทั้งสามก็คือ RGB ในที่นี้ได้กำหนดขาที่ใช้ คือ ขา PD5 , PD3 และ PD1 ตามลำดับ จนทำให้ไฟติดตามเงื่อนไขที่ตั้งไว้และในส่วนของจอแสดงผล LCD นั้นเมื่อมีการกดปุ่มใดปุ่มหนึ่งก็จะไปเข้า Function ทั้ง 7 บล็อกให้มีค่าเป็น 1 เนื่องจากรับค่าจากสวิตซ์เป็น 0 เพื่อที่จะนำไปเข้าบล็อก LCD จากนั้นก็จะไปโชว์ค่าตามที่ได้ตั้งไว้ คือ บรรทัดแรกจะเป็นสถานะ “STATUS” และบรรทัดที่ 3 ก็จะเป็นชื่อสีที่ติดอยู่ เช่น RED , GREEN , BLUE เป็นต้น ซึ่งทั้งนี้ค่าที่จะแสดงก็ขึ้นอยู่กับการเลือกกดปุ่มสวิตซ์ด้วย แต่ถ้าไม่มีการกดสวิตซ์เลยก็จะแสดงว่า “NOT COLOR”

การเขียนโค๊ดใน M-File

โค๊ตในบล็อก Function 7
KMUTNBProj16_010

โค๊ดในบล็อก Function ถึง Function 6
KMUTNBProj16_011

การทำงานของโครงงาน

รูปที่ 10 แสดงการทำงานขณะยังไม่มีการกดสวิตซ์
รูปที่ 10 แสดงการทำงานขณะยังไม่มีการกดสวิตซ์
รูปที่ 11 แสดงการทำงานขณะกดสวิตซ์ตัวที่ 2
รูปที่ 11 แสดงการทำงานขณะกดสวิตซ์ตัวที่ 2
รูปที่ 12 แสดงการทางานขณะกดสวิตซ์ตัวที่ 3
รูปที่ 12 แสดงการทำงานขณะกดสวิตซ์ตัวที่ 3
รูปที่ 13 แสดงการทำงานขณะกดสวิตซ์ตัวที่ 4
รูปที่ 13 แสดงการทำงานขณะกดสวิตซ์ตัวที่ 4
เมื่อต่อไฟจาก USBเข้ากับบอร์ด และ จ่ายไฟเข้าที่แหล่งจ่ายไฟ 3.3V และ 5V แล้วเมื่อยังไม่มีการกดสวิตซ์ที่หน้าจอ LCD ก็จะแสดง STATUS ว่า NOT COLOR ดังรูปที่ 10 และเมื่อมีการกดสวิตซ์ปุ่มใดปุ่มหนึ่งเช่น กดสวิตซ์ตัวที่ 2 ซึ่งจะเข้าเงื่อนไขที่ตั้งไว้ทำให้หลอดไฟ LED ติดเป็นสีเขียว และที่จอ LCD ก็จะแสดงสถานะว่า “GREEN”ดังรูปที่ 11 เช่นเดียวกันเมื่อมีการกดสวิตซ์ตัวที่ 3 หลอด LED ก็จะติดเป็นสีแดง และที่หน้าจอ LCD ก็จะปรากฏสถานะว่า “RED” ขึ้นตามรูปที่ 12 และถ้ากดสวิตซ์ตัวที่ 4 ที่หลอด LED ก็จะติดเป็นสีฟ้าและที่หน้าจอ LCD ก็จะแสดงว่า “BLUE” ตามรูปที่ 13โดยการกดสวิตซ์นั้นจะสามารถกดได้ทีละ 1 ตัวเท่านั้น ไม่สามารถกดครั้งเดียวได้หลายสวิตซ์

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

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

https://www.arduitronics.com/article/22/arduino-and-motor-control-part-1

https://medium.com/sathittham/arduino-lcd-16x2-hello-world-dca09fd904f8

อธิบายโปรแกรมHow To Make Arduino Based Home Automation Project via Bluetooth