กลับไปหน้ารวมไฟล์
working-with-a-potentiometer-and-two-leds-91e7d4.md

โปรเจกต์นี้จะแสดงการใช้งานโพเทนชิโอมิเตอร์ (Potentiometer) ในการควบคุม LED สองดวง

เป้าหมาย:

ควบคุม LED สองดวงด้วยโพเทนชิโอมิเตอร์ (ดวงหนึ่งค่อยๆ สว่างขึ้น อีกดวงค่อยๆ หรี่ลง)

Working with a Potentiometer and two LEDs

ภาพรวมโปรเจกต์

โปรเจกต์ "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% พอดี

วิศวกรรมและการนำไปใช้

  • การจำกัดกระแสและความสมบูรณ์ของสัญญาณ:
    • มาตรฐาน 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 เกิดข้อผิดพลาดจากค่าล้น

สรุป

การเข้าใจความสัมพันธ์ระหว่างการรับรู้สัญญาณอนาล็อกและการส่งออกสัญญาณดิจิทัลในโปรเจกต์นี้ จะให้พื้นฐานที่สำคัญสำหรับการออกแบบ HMI (Human Machine Interface) ที่ซับซ้อนขึ้น ซึ่งพบได้ในมิกเซอร์ซินธิไซเซอร์ระดับมืออาชีพและแผงควบคุมในอุตสาหกรรม


ศิลปะแห่งความสมดุล: การควบคุมความสัมพันธ์ตรงข้ามของแสงผ่านตรรกะของซิลิคอน

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "SBR"
category: ""
components:
  - "1x Arduino UNO"
  - "1x Single Turn Potentiometer- 10k ohms"
  - "2x LED (generic)"
  - "1x Jumper wires (generic)"
  - "2x Resistor 1k ohm"
  - "1x Breadboard (generic)"
description: "มาเล่นกับ Potentiometer กัน! โปรเจคนี้จะสอนให้เราจัดการแสง LED สองตัวแบบตึงๆ แค่หมุนปุ่ม ก็ควบคุมความสว่างได้ชิลๆ งานนี้เข้าใจง่าย วัยรุ่นสายช่างทำได้แน่นอน ไปลองกันเลย!"
difficulty: "Easy"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX1+WgGuBvWn0qtchf5L9IKU5Tt1hYRwWrAzWtIJHHMw2SwaCcTDpDbpZkh0NwjdCDxS3f3H1Y2exQkbQKeveAjTe6vyduUzs3oM="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/working-with-a-potentiometer-and-two-leds-91e7d4_cover.jpg"
lang: "en"
likes: 3
passwordHash: "22a2ff7dd2edd8c4910e1333488a5fc440038d65cd0c1f696c460cc6ec6290d7"
price: 699
seoDescription: "Learn how to control two LEDs using a Potentiometer in this simple Arduino project."
tags:
  - "starter"
  - "beginner"
title: "งานง่ายแต่หล่อ: ปรับแสง LED สองตัวด้วย Potentiometer"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/23loBws0qAc"
views: 19114