สอนใช้งาน Arduino สัญญาณ Analog InPut ตัวต้านทานปรับค่าได้ ปรับความสว่างหลอดไฟ LED
Arduino Uno สามารถอ่านค่า Input แบบ Analog หรือไฟช่วง 0-5V ได้ เป็นตัวเลขค่า 0-1023 ซึ่งสามารถเทียบสัดส่วน แปลงเป็นโวลต์ได้ เช่น ถ้าอ่านได้ค่า 0 คือไฟ 0V ถ้าได้ค่า 1023 คือไฟ 5V หรือถ้าได้ค่า 512 คือไฟประมาณ 2.5V
ไม่ใช่ทุกขาของ Arduino Uno ที่สามารถอ่านค่าแบบ Analog ได้ มีเพียงขาที่ขึ้นต้นด้วยตัว A (ย่อมาจาก Analog) เท่านั้น คือขา A0-A5 ที่สามารถอ่านค่าได้
คำสั่ง Analog Readint val = analogRead(pin);
pin คือขา Arduino ที่ต้องการอ่านค่า val หมายถึง ตัวแปร int สำหรับเก็บค่า สัญญาณ analog มีค่า 0-1023 ที่ขา pin
ตัวอย่างคำสั่ง Analog Read
ต้องการอ่านค่า ขา Analog A0 เก็บในตัวแปรชื่อ val
int val = analogRead(A0);
ช้าก่อน
ค่าที่อ่านได้จาก 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 เก็นไว้ในตัวแปร val
int data = 100;
int val = map(data,0,1023,0,255)
อุปกรณ์ที่ต้องใช้ใน บทความสอนใช้งาน Arduino สัญญาณ Analog InPut ตัวต้านทานปรับค่าได้ ปรับความสว่างหลอดไฟ LED
วิธีการต่ออุปกรณ์ บทความ สอนใช้งาน Arduino สัญญาณ Analog InPut ตัวต้านทานปรับค่าได้ ปรับความสว่างหลอดไฟ LED
ต่อวงจรดังรูปนี้

อัพโหลดโคดตัวอย่างนี้ แล้วดูผลลัพธ์
---
เปิด Serial Monitor ขึ้นมาเพื่อดูค่าของสัญญาณ analog ที่ arduino อ่านได้
จะเห็นว่าค่าที่ออกมาคือ 0-255 ตามที่เราใช้คำสั่ง map เพื่อแปลงข้อมูลจากช่วงหนึ่ง ให้เป็นอีกช่วงหนึ่ง

เราสามารถแสดงข้อมูลเป็นกราฟได้ด้วย ที่เมนู Serial Plotter


หลอดไฟ LED จะสว่างตามที่เราหมุนตัวต้านทานปรับค่าได้ตามรูปด้านล่าง


ดูสอนวิธีใช้งาน Arduino บทต่อไป
#10 Arduino สอนใช้งาน Arduino สัญญาณ Analog OutPut PWM ควบคุมความสว่างหลอดไฟ LED
#12 Arduino สอนใช้งาน Arduino สัญญาณ AnalogInput จากตัวต้านทานปรับค่าได้ ปรับความสว่างหลอดไฟ LED
หน้าหลักบทความสอน Arduino แบบย่อทั้งหมด