Posted on

การอ่านค่าจากขาอะนาล็อก 10 บิต บอร์ด Arduino

การอ่านค่าจากขาอะนาล็อก 10 บิต บอร์ด Arduino

Read Analog Voltage

BOARD OPERATING VOLTAGE USABLE PINS MAX RESOLUTION

Uno

5 Volts

A0 to A5

10 bits

Code

การอ่านค่าจากขาอะนาล็อก 10 บิต บอร์ด Arduino มีตัวแปลงแอนะล็อกเป็นดิจิทัลแบบหลายช่องสัญญาณ 10 บิต ซึ่งหมายความว่าจะแมปแรงดันอินพุตระหว่าง 0 และแรงดันใช้งาน (5V หรือ 3.3V) เป็นค่าจำนวนเต็มระหว่าง 0 ถึง 1023 ตัวอย่างเช่น บน Arduino UNO ค่านี้จะให้ความละเอียดระหว่างการอ่าน: 5 โวลต์ / 1024 หน่วย หรือ , 0.0049 โวลต์ (4.9 มิลลิโวลต์) ต่อหน่วย

  • ช่วงอินพุตสามารถเปลี่ยนได้โดยใช้ analogReference() ในขณะที่สามารถเปลี่ยนความละเอียดได้ (สำหรับบอร์ด Zero, Due และ MKR เท่านั้น) โดยใช้ analogReadResolution()
  • บนบอร์ดที่ใช้ ATmega (UNO, Nano, Mini, Mega) จะใช้เวลาประมาณ 100 ไมโครวินาที (0.0001 วินาที) ในการอ่านอินพุตแบบอะนาล็อก ดังนั้นอัตราการอ่านสูงสุดจึงอยู่ที่ประมาณ 10,000 ครั้งต่อวินาที
  • ในโปรแกรมด้านล่าง สิ่งแรกที่คุณจะทำคือในฟังก์ชันการตั้งค่า เพื่อเริ่มการสื่อสารแบบอนุกรมที่ข้อมูล 9600 บิตต่อวินาที ระหว่างบอร์ดและคอมพิวเตอร์ของคุณด้วยสาย:

  • ในลูปหลักของโค้ดต้องสร้างตัวแปรเพื่อเก็บค่าความต้านทาน (ซึ่งจะอยู่ระหว่าง 0 ถึง 1023 เหมาะสำหรับประเภทข้อมูล int) ที่มาจากโพเทนชิออมิเตอร์

  • หากต้องการเปลี่ยนค่าจาก 0-1023 เป็นช่วงที่สอดคล้องกับแรงดันไฟฟ้าที่พินกำลังอ่านจะต้องสร้างตัวแปรอื่น เช่น Float หากต้องการปรับขนาดตัวเลขระหว่าง 0.0 ถึง 5.0 ให้หาร 5.0 ด้วย 1023.0 แล้วคูณด้วย sensorValue :

  • สุดท้ายต้อง Print ข้อมูลนี้ไปยัง Serial Monitor  สามารถทำได้โดยใช้คำสั่ง Serial.println() ในโค้ดบรรทัดสุดท้าย:

  • เมื่อเปิด Serial Monitor ใน Arduino IDE (โดยคลิกที่ไอคอนทางด้านขวาของแถบสีเขียวด้านบน หรือกด Ctrl+Shift+M) จะเห็นตัวเลขต่อเนื่องตั้งแต่ 0.0 – 5.0 เมื่อ หมุน Potentiometer  ค่า จะเปลี่ยนตามแรงดันไฟที่เข้าขา A0