โปรเจกต์นี้จะแสดงการใช้งานโพเทนชิโอมิเตอร์ (Potentiometer) ในการควบคุม LED สองดวง
เป้าหมาย:
ควบคุม LED สองดวงด้วยโพเทนชิโอมิเตอร์ (ดวงหนึ่งค่อยๆ สว่างขึ้น อีกดวงค่อยๆ หรี่ลง)
ภาพรวมโปรเจกต์
โปรเจกต์ "Lumina-Cross Sync" นี้คือพื้นฐานของการศึกษาเรื่อง การแปลงสัญญาณอนาล็อกเป็นดิจิทัล มันแสดงให้เห็นว่าการอินพุตแบบแมนนวลง่ายๆ (หมุนปุ่มโพเทนชิโอมิเตอร์) สามารถใช้ควบคุมเอาต์พุตสองทางที่แยกจากกันในรูปแบบ ความสัมพันธ์แบบตรงกันข้าม ได้ยังไง เมื่อ LED ดวงหนึ่งสว่างขึ้น (fade in) อีกดวงก็จะหรี่ลงในอัตราเดียวกัน (fade out) นี่คือคอนเซปต์พื้นฐานที่ใช้ในมิกเซอร์เสียง การเปลี่ยนแสงไฟ และอัลกอริทึมการบาลานซ์มอเตอร์
ลงลึกเรื่องเทคนิค
- โพเทนชิโอมิเตอร์ในฐานะตัวแบ่งแรงดัน:
- ฟิสิกส์ของความต้านทาน: โพเทนชิโอมิเตอร์ 10k โอห์มทำหน้าที่เป็นตัวแบ่งแรงดันไฟฟ้าที่ปรับค่าได้ เมื่อเราเลื่อนที่ปุ่ม (wiper) ไปตามตัวต้านทาน มันจะให้แรงดันไฟฟ้าที่เปลี่ยนแปลงระหว่าง 0V ถึง 5V ไปยัง ตัวแปลงอนาล็อกเป็นดิจิทัล (ADC) ของ Arduino
- ความละเอียด 10 บิต: ADC ของ Arduino จะแปลงสัญญาณ 0-5V นั้นเป็นค่าดิจิทัลในช่วง 0 ถึง 1023 ซึ่งให้ความละเอียดถึง 1024 ขั้นสำหรับตำแหน่งอินพุต
- ตรรกะ PWM แบบตรงกันข้าม:
- ฟังก์ชัน Map: เนื่องจากเอาต์พุต PWM (Pulse Width Modulation) ของ Arduino ทำงานบนสเกล 8 บิต (0 ถึง 255) เฟิร์มแวร์จึงใช้ฟังก์ชัน
map()เพื่อปรับสเกลค่าอินพุต 10 บิต - การคำนวณค่าตรงข้าม: เพื่อให้เกิดเอฟเฟกต์ครอสเฟด ซอฟต์แวร์จะคำนวณค่า PWM สองค่าที่แตกต่างกัน:
Value_A = map(potVal, 0, 1023, 0, 255)Value_B = 255 - Value_A
- การคำนวณแบบตรงข้ามทางคณิตศาสตร์นี้ทำให้มั่นใจว่าเมื่อปุ่มโพเทนชิโอมิเตอร์อยู่ที่ "จุดกึ่งกลาง" ทั้ง LED สองดวงจะทำงานที่ duty cycle 50% พอดี
- ฟังก์ชัน Map: เนื่องจากเอาต์พุต PWM (Pulse Width Modulation) ของ Arduino ทำงานบนสเกล 8 บิต (0 ถึง 255) เฟิร์มแวร์จึงใช้ฟังก์ชัน
วิศวกรรมและการนำไปใช้
- การจำกัดกระแสและความสมบูรณ์ของสัญญาณ:
- มาตรฐาน 220 โอห์ม: เพื่อป้องกันไม่ให้ LED ร้อนเกิน (thermal runaway) และหลีกเลี่ยงการเกินขีดจำกัด 40mA ของขา GPIO บน Arduino เราจึงใช้ตัวต้านทาน 220 โอห์ม ค่านี้คำนวณมาจากแรงดันตกคร่อม (forward voltage, $V_f$) ทั่วไปที่ 2.0V และกระแสที่ต้องการ ($I$) ที่ 15mA
- ไดนามิกของความถี่ PWM:
- Arduino UNO สร้างสัญญาณ PWM ที่ความถี่ประมาณ 490Hz (ขา 3, 9, 10, 11) หรือ 980Hz (ขา 5, 6) เพราะความถี่นี้สูงกว่าค่า Flicker Fusion Threshold ของตามนุษย์ (~60Hz) มาก การเปลี่ยนแปลง duty cycle จึงถูกมองเห็นเป็นความสว่างที่เปลี่ยนไปอย่างนุ่มนวล แทนที่จะเป็นไฟกระพริบเร็วๆ
- การปรับเทียบและข้อจำกัด:
- จัดการกับสัญญาณรบกวน: โพเทนชิโอมิเตอร์อาจมีอาการ "สั่น" (Jitter) ที่ตำแหน่งขั้วสุดของการหมุนได้ เนื่องจากสัญญาณรบกวนทางไฟฟ้า การนำไปใช้ในระดับมืออาชีพมักใช้ฟังก์ชัน
constrain()เพื่อให้แน่ใจว่าค่าจะไม่เกินช่วง 0-255 ป้องกันไม่ให้รีจิสเตอร์ PWM เกิดข้อผิดพลาดจากค่าล้น
- จัดการกับสัญญาณรบกวน: โพเทนชิโอมิเตอร์อาจมีอาการ "สั่น" (Jitter) ที่ตำแหน่งขั้วสุดของการหมุนได้ เนื่องจากสัญญาณรบกวนทางไฟฟ้า การนำไปใช้ในระดับมืออาชีพมักใช้ฟังก์ชัน
สรุป
การเข้าใจความสัมพันธ์ระหว่างการรับรู้สัญญาณอนาล็อกและการส่งออกสัญญาณดิจิทัลในโปรเจกต์นี้ จะให้พื้นฐานที่สำคัญสำหรับการออกแบบ HMI (Human Machine Interface) ที่ซับซ้อนขึ้น ซึ่งพบได้ในมิกเซอร์ซินธิไซเซอร์ระดับมืออาชีพและแผงควบคุมในอุตสาหกรรม
ศิลปะแห่งความสมดุล: การควบคุมความสัมพันธ์ตรงข้ามของแสงผ่านตรรกะของซิลิคอน