Arduino - การอ่านแรงดันไฟฟ้าแบบอนาล็อก

ตัวอย่างนี้จะแสดงวิธีการอ่านอินพุตอะนาล็อกบนพินอนาล็อก 0 อินพุตจะถูกแปลงจาก analogRead () เป็นแรงดันไฟฟ้าและพิมพ์ออกไปยังจอภาพอนุกรมของซอฟต์แวร์ Arduino (IDE)

ส่วนประกอบที่จำเป็น

คุณจะต้องมีส่วนประกอบต่อไปนี้ -

  • 1 ×เขียงหั่นขนม
  • 1 × Arduino Uno R3
  • ตัวต้านทานตัวแปร 1 × 5K (โพเทนชิออมิเตอร์)
  • 2 ×จัมเปอร์

ขั้นตอน

ทำตามแผนภาพวงจรและต่อส่วนประกอบบนเขียงหั่นขนมดังที่แสดงในภาพด้านล่าง

โพเทนชิออมิเตอร์

โพเทนชิออมิเตอร์ (หรือหม้อ) เป็นตัวแปลงสัญญาณไฟฟ้าเชิงกลอย่างง่าย มันแปลงการเคลื่อนที่แบบหมุนหรือเชิงเส้นจากตัวดำเนินการอินพุตเป็นการเปลี่ยนแปลงความต้านทาน การเปลี่ยนแปลงนี้ (หรือสามารถใช้) เพื่อควบคุมอะไรก็ได้ตั้งแต่ปริมาณของระบบไฮไฟไปจนถึงทิศทางของเรือคอนเทนเนอร์ขนาดใหญ่

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

ภาพด้านซ้ายแสดงสัญลักษณ์แผนผังมาตรฐานของหม้อ ภาพด้านขวาคือโพเทนชิออมิเตอร์

ร่าง

เปิดซอฟต์แวร์ Arduino IDE บนคอมพิวเตอร์ของคุณ การเข้ารหัสในภาษา Arduino จะควบคุมวงจรของคุณ เปิดไฟล์ร่างใหม่โดยคลิกใหม่

รหัส Arduino

/*
   ReadAnalogVoltage
   Reads an analog input on pin 0, converts it to voltage, 
   and prints the result to the serial monitor.
   Graphical representation is available using serial plotter (Tools > Serial Plotter menu)
   Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
*/

// the setup routine runs once when you press reset:

void setup() {
   // initialize serial communication at 9600 bits per second:
   Serial.begin(9600);
}

// the loop routine runs over and over again forever:

void loop() {
   // read the input on analog pin 0:
   int sensorValue = analogRead(A0);
   // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
   float voltage = sensorValue * (5.0 / 1023.0);
   // print out the value you read:
   Serial.println(voltage);
}

รหัสที่ควรทราบ

ในโปรแกรมหรือร่างที่ระบุด้านล่างสิ่งแรกที่คุณทำในฟังก์ชั่นการตั้งค่าคือเริ่มการสื่อสารแบบอนุกรมที่ 9600 บิตต่อวินาทีระหว่างบอร์ดและคอมพิวเตอร์ของคุณด้วยสาย -

Serial.begin(9600);

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

int sensorValue = analogRead(A0);

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

float voltage= sensorValue * (5.0 / 1023.0);

สุดท้ายคุณต้องพิมพ์ข้อมูลนี้ลงในหน้าต่างซีเรียลของคุณ คุณสามารถทำได้ด้วยคำสั่ง Serial.println () ในบรรทัดสุดท้ายของโค้ด -

Serial.println(voltage)

ตอนนี้เปิด Serial Monitor ใน Arduino IDE โดยคลิกที่ไอคอนทางด้านขวาของแถบสีเขียวด้านบนหรือกด Ctrl + Shift + M

ผลลัพธ์

คุณจะเห็นตัวเลขที่สม่ำเสมอตั้งแต่ 0.0 - 5.0 เมื่อคุณหมุนหม้อค่าต่างๆจะเปลี่ยนไปตามแรงดันไฟฟ้าที่ขา A0