#8 สอน Arduino Tutorial : Arduino อ่านค่าแบบ Analog INPUT

Arduino สามารถอ่านค่า Analog เข้ามาประมวลผลได้ โดยขาของ Arduino Uno ที่ใช้ได้คือ ขา A0-A5 ค่าที่อ่านได้อยู่ระหว่าง 0-1023 โดยใช้คำสั่ง analogRead(ขา); ในตัวอย่างนี้ จะใช้ตัวต้านทานปรับค่าได้ เป็นเซนเซอร์สำหรับส่งค่า Input Analog ให้กับ Arduino

 

ใน Arduino uno จะสามารถวัดโวลต์ 0-5V ซึ่งเป็นสัญญาณแบบ Analog แล้วแปลงเป็นเลข 0-1023 แบบดิจิตอลได้ โดยขาที่ใช้ได้คือขา A0-A5 ในบอร์ดจะเขียนแถบนี้ว่า ANALOG IN

 

ตัวอย่างการใช้งาน

ต้องการวัดค่าจากตัวต้านทานปรับค่าได้ เป็นค่าแบบ Analog โดยต่อกับขา A0 อ่านค่าที่ผู้ใช้ปรับหมุนเข้ามา เพื่อใช้ในการประมวลผล


การใช้งาน Analog Read

  1. เนื่องจากทุกขาของ Arduino จะเป็นโหมด INPUT โดยค่าเริ่มต้น ดังนั้นจึงไม่ต้องกำหนดโหมด หรือถ้าต้องการกำหนดโหมดสามารถเขียนดังนี้ pinMode(A0,INPUT);
  2. ใช้คำสั่ง analogRead(A0); เพื่ออ่านค่าจากขา A0 เข้ามา ซึ่งค่าที่อ่านได้เป็นจำนวนเต็มประเภท int
  3. ใช้ตัวแปรประเภท int เก็บค่า จะเขียนโคดได้ int val = analogRead(A0);


โคดตัวอย่าง Arduino AnalogRead


การแปลงเลขช่วงหนึ่ง ให้เป็นอีกช่วงหนึ่ง

ค่าที่อ่านได้จากตัวต้านทานปรับค่าได้ทางขา Analog จะมีค่าระหว่าง 0-1023 ถ้าต้องการนำค่าไปหรี่ไฟ LED สามารถทำได้ โดยใช้คำสั่ง analogWrite(); โดยค่าที่ส่งออกไปให้ LED มีค่าอยู่ในช่วง 0-255

จะเห็นว่า ค่าที่รับเข้ามา กับค่าที่ส่งออกไป ไม่ใช่ค่าเดียวกัน ใน Arduino มีคำสั่งที่ช่วงแปลงช่วง 0-1023 เป็น 0-255 หรือแปลงจากเลขช่วงหนึ่ง ให้เป็นอีกช่วงหนึ่งได้ง่าย ๆ

 

คำสั่ง map

รูปแบบคือ map(ค่าที่ต้องการแปลง , ค่าต่ำสุดของตัวตั้งต้น , ค่าสูงสุดของตัวตั้งต้น  , ค่าต่ำสุดของตัวที่ต้องการแปลง , ค่าต่ำสุดของตัวที่ต้องการแปลง );

โดยจะให้ค่าออกมาเป็น ตัวแปรแบบ int

 

ตัวอย่าง 

ต้องการแปลงค่า จากตัวแปร val ซึ่งมีค่าอยู่ระหว่าง 0-1023 ให้มีค่าระหว่าง 0-255 แล้วเก็บไว้ในตัวแปร int res

int res = map(val,0,1023,0,255);

 


6 Response Comments

  • อ้น  3 พฤษภาคม 2018 at 04:27

    ชอบมากครับ เข้าใจง่าย

    ตอบกลับ
  • พรชัย  22 กรกฎาคม 2018 at 08:21

    สัญญาณ​ ​pwm​ ที่ออกทางขา​ analog output สามารถ​นำไปขับโมดุล​ ​IGBT​ได้​ไหม​ครับ

    ตอบกลับ
    • admin  24 กรกฎาคม 2018 at 20:28

      ใช้เป็นสัญญาณสำหรับขับอุปกรณ์อื่น ๆ ได้ครับ

      ตอบกลับ
  • ธนาธิป  2 พฤษภาคม 2019 at 06:50

    ขอบคุณมากครับ
    อ่านเข้าใจได้ง่ายมากเลยครับ

    ตอบกลับ
  • thingofo  17 สิงหาคม 2019 at 13:10

    เยี่ยมมาก ชอบมาก

    ตอบกลับ
  • JP2019  9 พฤศจิกายน 2019 at 10:15

    กระจ่างแจ้งขึ้นมาทีละนิด

    ตอบกลับ

โพสคอมเมนต์

Please enter your name. Please enter an valid email address. Please enter a message.