เริ่มต้น สอน Arduino : รับข้อมูลจากผู้ใช้ Analog Input

ในตัวอย่างนี้ เราจะใช้ตัวต้านทานปรับค่าได้ ซึ่งสามารถปรับค่าความต้านทานโดยการหมุนปุ่ม เราจะให้ Arduino อ่านค่าความต้านทานเข้ามา ซึ่งค่าที่อ่านได้มาหลายค่าไม่ได้มีเพียง 0 หรือ 1 เท่านั้น เราเรียกค่าแบบนี้ว่า analog ซึ่งมีได้หลายค่า Arduino มีความสามารถในการอ่านค่า Analog โดยจะอ่านได้ค่า 1024 ค่า คือ 0-1023 ค่า ซึ่งเป็นความสามารถมาจากวงจรแปลง Analog to Digital Conversion (ADC) วงจรของ Arduino มีความละเอียด 10 bit ซึ่งค่า 2^10 = 0-1023 ยิ่งวงจร ADC มีความละเอียดมากค่าที่ได้ก็จะมีความกว้างมาก ทำให้มีความถูกต้องมากขึ้นด้วย เช่น ถ้าละเอียด 16 bit ก็จะอ่านค่าได้ 2^16 = 0- 65,535

การอ่านค่าแบบ analog ไม่สามารถอ่านมาได้ทุกขา จะต้องใช้ขาที่มีคุณสมบัตินี้ด้วย สังเกตง่าย ๆ คือขาที่ขึ้นต้นด้วยตัว A คือ A0-A5

5114013ece395f527e000000

ค่าที่อ่านได้เป็นโวลต์ ซึ่งสามารถแปลงโวลต์ให้เป็นค่า 0-1023 หรือแปลงจากค่า 0-1023 ให้เป็นโวลต์ได้เช่นกัน

เช่น แรงดันไฟฟ้าอ้างอิงสูงสุด 0-5 โวลต์  ถ้าค่า 0 ก็แปลงได้เป็น 0 โวลต์ ค่า 1023 ก็แปลงได้ 5 โวลต์ ถ้าอ่านค่าได้ 2.12V ก็แปลงได้ค่า 434

เราสามารถอ่านค่า Analog เข้ามาได้ง่าย ๆ โดยใช้คำสั่ง

analogRead(ขาที่ต้องการ);

ค่าที่อ่านได้ 0-1023

มาลองดูตัวอย่าง Analog Input : โดยใช้ตัวต้านทานปรับค่าได้

AnalogReadSerial_sch

ลองเปลี่ยนวงจรเป็นตัวต้านทานปรับค่าได้ตามแสงหรือ LDR กันบ้างโดยใช้โคดเดิม

ldr_01

 

มาดูตัวอย่าง ให้เขียนปรับค่า delay ของ led ตามค่าที่อ่านเข้ามาได้จากตัวต้านทานปรับค่าได้ หรือ ldr โดยดัดแปลงจากโคดนี้


ยังไม่มีคอมเมนต์

คุณสามารถเป็นคนแรกที่คอมเมนต์

โพสคอมเมนต์

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