สอนใช้งาน Arduino UNO รับสัญญาณ AnalogInput จากตัวต้านทานปรับค่าได้ ปรับความสว่างหลอดไฟ LED และแสดงผลค่า Voltage ผ่านจอ LCD

บทความนี้จะสอนใช้งานสอนใช้งาน Arduino UNO รับสัญญาณ AnalogInput จากตัวต้านทานปรับค่าได้หรือที่เรียกกันว่า Volume ให้ปรับความสว่างของหลอดไฟ LED และมีการค่า Voltage ผ่านจอ LCD จะมีวิธีการทำอย่างไรกันนั้น ไปดูกันเลยครับ
แวะอ่านตรงนี้สักหน่อย 
คำสั่ง Analog Read();
int Sensor_Value = analogRead (pin);
pin คือขา Analog -ของ Arduino ที่ต้องการอ่านค่า
Sensor_Value หมายถึง ตัวแปร int สำหรับเก็บค่า สัญญาณ analog มีค่า 0-1023 ที่ขา pin
ตัวอย่างคำสั่ง Analog Read
int val = analogRead (A0);
ต้องการอ่านค่า ขา Analog A0 เก็บในตัวแปรชื่อ val
ค่าที่อ่านได้จาก analogRead(); คือช่วง 0-1023
ส่วนค่าที่สั่งให้แสดงผลจาก analogWrite(); คือช่วง 0-255
ดังนั้น “เราจึงไม่สามารถนำค่าช่วง 0-1023 ไปแสดงผลในช่วง 0-255 ได้”
จะต้องมีการคำนวนก่อน เช่น นำค่าที่อ่านได้ 1023 ไปหาร 4 เพื่อให้ได้ค่า 255 แต่มีอีกวิธีที่แนะนำ จะง่ายกว่าคำนวนเอง ใน Arduino รู้ถึงปัญหาการแปลงข้อมูลไปกลับนี้ จึงมีฟังก์ชั่น map ออกมาช่วย
คำสั่ง map
map(value, fromLow, fromHigh, toLow, toHigh);
value คือ ค่าที่ต้องการคำนวน
fromLow คือ ช่วงที่รับมาค่าต่ำสุด
fromHig คือ ช่วงที่รับมาค่าสูงสุด
toLow คือ ช่วงที่ต้องการแปลง ค่าต่ำสุด
toHigh คือ ช่วงที่ต้องการแปลง ค่าสูงสุด
ตัวอย่างคำสั่ง ต้องการแปลงค่าของ Data ซึ่งมาจากช่วง 0-1023 ให้เป็นช่วง 0-255 เก็นไว้ในตัวแปร outputValue
int outputValue = 0;
int analog_value = analogRead(A0);
outputValue = map(analog_value, 0, 1023, 0, 255);
อุปกรณ์ที่ต้องใช้
- Arduino UNO R3 board + USB CABLE
- ตัวต้านทานปรับค่าได้ 5K Ω
- จอLCD 20×4
- สาย Jumper 20 cm Male to Male
- บอร์ดทดลอง – 400 จุด
- LED สีแดง
- ตัวต้านทาน 330 Ω
หมายเหตุ หลอด LED กับตัวต้านทาน ขึ้นอยู่กับผู้ใช้ว่าจะสีอะไร และตัวต้านทานกี่โอห์ม ศึกษาเพิ่มเติม → คลิก
การต่อวงจร

LCD ⇒ Arduino UNO
SDA → SDA
SCL → SCL
VCC → 5V
GND → GND
Volume ⇒ Arduino UNO
ขา กลาง → Pin A0
ขา ซ้าย → 5V
ขา ขวา → GND
LED ⇒ Arduino UNO
ขา + (ยาว) → Pin 9
ขา – (สั้น) → GND
การติดตั้งโปรแกรม Arduino IDE → คลิก
ทำความรู้จักกับ บอร์ด ARDUINO UNO R3 → คลิก
การใช้งาน LCD 20×4 พร้อม I2C Interface กับบอร์ด Arduino UNO → คลิก
โหลด Library
LCD 20×4 → https://drive.google.com/file/d/1fODSxAGeanyoDC7q7LGIs-K59jSNnXrt/view?usp=sharing
สอนการติดตั้ง Library สำหรับโปรแกรม Arduino IDE → คลิก
ตัวอย่างโค้ด
ดาวน์โหลดโค้ด → คลิก
เมื่ออัพโหลดโค้ดลงบอร์ดเรียบร้อยแล้วเมื่อทำการทดสอบจะได้ผลดังรูป

ยังไงก็ลองเอาไปปรับใช้กับงานของเพื่อน ๆ ดูนะครับ