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