ชื่อโปรเจกต์: ควบคุม RGB LED ด้วย Joystick
โปรเจกต์นี้ใช้ joystick ควบคุม RGB LED เมื่อ joystick อยู่ในตำแหน่งที่กำหนด LED จะเปลี่ยนสี ใน project ของผม สีของ LED คือ สีเขียว สีเหลือง สีส้ม สีน้ำเงิน และสีชมพู เหตุผลที่ผมทำโปรเจกต์นี้เรียบง่าย คือเพื่อพัฒนาทักษะการเขียนโปรแกรม Arduino และทักษะด้าน hardware ของผม นี่เป็นโปรเจกต์ที่ง่ายและสนุกมากในการทำ
joystick เชื่อมต่อกับไฟ 5 volt และ ground แกน X ของ joystick เชื่อมต่อกับ A0 และแกน Y เชื่อมต่อกับ A1 RGB LED ถูกจัดวางในลักษณะที่จากซ้ายไปขวาขา pin คือ สีแดง, ground (ขาที่ยาวที่สุด), สีเขียว และสีน้ำเงิน ขาสีแดงเชื่อมต่อกับ pin 9, สีเขียวกับ 10 และสีน้ำเงินกับ 11 (ตรวจสอบให้แน่ใจว่าคุณใช้ตัวต้านทานอย่างน้อย 330 ohm resistor ไม่เช่นนั้น LED ของคุณอาจเสียหายได้) pin ที่ LED เชื่อมต่อมีความพิเศษเนื่องจากมีสัญลักษณ์ ~ อยู่บนนั้น ซึ่งหมายถึง PWM หรือ Pulse Width Modulation คุณสามารถควบคุม duty cycle บน pin เหล่านี้ ซึ่งช่วยให้คุณควบคุมสีที่ต้องการของ RGB LED ได้ สำหรับ Common Anode RGB LED ให้เชื่อมต่อกับ 5V แทน ground
เหตุผลที่ผมใส่ "contributors" สองคนนี้ในหน้านี้ก็เพราะว่าวันนี้ผมนั่งลงโดยที่ไม่รู้ว่าจะเขียนโปรแกรม LED หรือ joystick ได้อย่างไร และเว็บไซต์ของพวกเขาก็มีประโยชน์มาก ผมนำโค้ดบางส่วนมารวมกัน และได้ผลลัพธ์ออกมาเป็นเช่นนี้
รายละเอียดทางเทคนิคเพิ่มเติม
การผสมสีจาก Analog Input เป็น PWM
โปรเจกต์นี้จะแมปการเคลื่อนไหวทางกายภาพแบบ 2 แกนของ joystick ไปยังเอาต์พุตสีแบบ 3 ช่องของ RGB LED
- กลไก Joystick: ใช้ 10kΩ potentiometers สองตัว (แกน X และ Y) และปุ่มคลิกในตัว ADC ของ Arduino จะแปลงตำแหน่งเหล่านี้เป็นค่าระหว่าง 0 ถึง 1023
- PWM Duty Cycle: firmware ใช้ฟังก์ชัน
map()เพื่อแปลงข้อมูล joystick แบบ 10-bit ให้เป็นสัญญาณ PWM แบบ 8-bit (0-255)
ตรรกะการโต้ตอบ
- การแมปพื้นที่สี: การเลื่อนก้านบนแกน X อาจควบคุมความเข้มของสีแดง ในขณะที่แกน Y ควบคุมสีเขียว แกน Z (การคลิกที่ก้าน) สามารถตั้งโปรแกรมเพื่อสลับสีน้ำเงินหรือรีเซ็ตสีได้
- ความสวยงาม: สิ่งนี้สร้างเครื่องมือ "Color Picker" ทางกายภาพ ซึ่งเหมาะสำหรับไฟสร้างบรรยากาศ, งานศิลปะเชิงโต้ตอบ หรือการเรียนรู้เกี่ยวกับการผสมสีแบบบวก