การวัดแรงดันไฟฟ้าด้วย Arduino

Measuring Voltage with the Arduino

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


สิ่งที่คุณต้องการ

  1. บอร์ด Arduino (เช่น uno, mega, nano)
  2. ตัวแบ่งแรงดันไฟฟ้า (ถ้าวัดแรงดันไฟฟ้าสูงกว่า 5V)
  3. เครื่องหั่นขนมปังและสายจัมเปอร์
  4. แหล่งที่มาของแรงดันไฟฟ้าในการวัด (เช่นแบตเตอรี่เซ็นเซอร์หรือแหล่งจ่ายไฟที่ปรับได้)
  5. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE

ขั้นตอนที่ 1: ทำความเข้าใจกับการวัดแรงดันไฟฟ้าใน Arduino

ADC ของ Arduino แปลงแรงดันอะนาล็อก (0V เป็น 5V บนบอร์ดส่วนใหญ่) เป็นค่าดิจิตอล 10 บิต ซึ่งหมายความว่า ADC ให้ค่าระหว่าง 0 และ 1023 โดยที่ 0 สอดคล้องกับ 0V และ 1023 สอดคล้องกับ 5V (หรือแรงดันอ้างอิง)

สูตรสำคัญ

ในการคำนวณแรงดันไฟฟ้าอินพุต:

Voltage = (ADC_Value / 1023.0) * Reference_Voltage

บันทึก: สำหรับบอร์ด Arduino ส่วนใหญ่แรงดันอ้างอิงเริ่มต้นคือ 5V หากใช้ตัวแปร 3.3V ให้ปรับสูตรตามนั้น


ขั้นตอนที่ 2: การวัดแรงดันไฟฟ้าโดยตรง

สำหรับแรงดันไฟฟ้าสูงถึง 5V คุณสามารถเชื่อมต่อแหล่งแรงดันไฟฟ้าโดยตรงกับพินอะนาล็อก

การเดินสาย

ส่วนประกอบ พิน Arduino
แหล่งที่มาของแรงดันไฟฟ้า (+) A0
แหล่งที่มาของแรงดันไฟฟ้า (-) gnd

รหัสตัวอย่าง

#define analogPin A0

void setup() {
  Serial.begin(9600);
}

void loop() {
  int adcValue = analogRead(analogPin); // Read ADC value
  float voltage = (adcValue / 1023.0) * 5.0; // Convert to voltage

  Serial.print("Voltage: ");
  Serial.print(voltage, 2); // Print voltage with 2 decimal places
  Serial.println(" V");

  delay(1000); // Update every second
}

ขั้นตอนที่ 3: การวัดแรงดันไฟฟ้าที่สูงขึ้นด้วยตัวแบ่งแรงดันไฟฟ้า

ในการวัดแรงดันไฟฟ้าที่สูงกว่า 5V ให้ใช้ก ตัวแบ่งแรงดันไฟฟ้า เพื่อปรับขนาดแรงดันไฟฟ้าอินพุต

สูตรตัวแบ่งแรงดันไฟฟ้า

ตัวแบ่งแรงดันไฟฟ้าจะปรับแรงดันไฟฟ้าอินพุตโดยใช้ตัวต้านทานสองตัว:

Vout = Vin * (R2 / (R1 + R2))

ตัวอย่างเช่นการวัดสูงสุด 12V:

  • r1 = 10k ohms
  • r2 = 10k ohms
  • การปรับสเกลปัจจัย = 0.5 (vout = vin / 2)

การเดินสาย

ส่วนประกอบ การเชื่อมต่อ
แหล่งที่มาของแรงดันไฟฟ้า (+) อินพุต R1 ตัวแบ่งแรงดันไฟฟ้า
ตัวแบ่งแรงดันไฟฟ้า R1/R2 Junction Arduino A0
แหล่งที่มาของแรงดันไฟฟ้า (-) gnd

รหัสตัวอย่าง

#define analogPin A0
const float R1 = 10000.0; // Resistor R1 value in ohms
const float R2 = 10000.0; // Resistor R2 value in ohms

void setup() {
  Serial.begin(9600);
}

void loop() {
  int adcValue = analogRead(analogPin); // Read ADC value
  float voltage = (adcValue / 1023.0) * 5.0; // Voltage at A0

  // Scale up to actual input voltage
  float inputVoltage = voltage * ((R1 + R2) / R2);

  Serial.print("Input Voltage: ");
  Serial.print(inputVoltage, 2); // Print with 2 decimal places
  Serial.println(" V");

  delay(1000); // Update every second
}

ขั้นตอนที่ 4: การใช้แรงดันอ้างอิงภายนอก

สำหรับการวัดที่แม่นยำยิ่งขึ้นคุณสามารถใช้แรงดันอ้างอิงภายนอกได้โดยเชื่อมต่อกับ PIN AREF

ขั้นตอนในการตั้งค่าการอ้างอิงภายนอก

  1. เชื่อมต่อแรงดันอ้างอิงที่เสถียร (เช่น 3.3V) กับพิน AREF
  2. ในรหัสตั้งค่าแรงดันอ้างอิง:
analogReference(EXTERNAL);
  1. ปรับการคำนวณในรหัสสำหรับแรงดันอ้างอิงใหม่

ขั้นตอนที่ 5: แนวทางปฏิบัติที่ดีที่สุดสำหรับการวัดที่แม่นยำ

  1. หลีกเลี่ยงเสียงรบกวน: ใช้สายสั้นและการต่อสายดินที่เหมาะสมเพื่อลดเสียงรบกวนทางไฟฟ้า
  2. สอบเทียบการตั้งค่าของคุณ: ตรวจสอบการอ่านด้วยมัลติมิเตอร์เพื่อให้แน่ใจว่ามีความแม่นยำ
  3. ปกป้อง Arduino: ใช้ตัวต้านทานหรือไดโอดเพื่อป้องกันพินอินพุตแบบอะนาล็อกจากแรงดันไฟฟ้าเกิน
  4. สัญญาณฟิลเตอร์มีเสียงดัง: เพิ่มตัวเก็บประจุข้ามอินพุตเพื่อทำให้ความผันผวนของแรงดันไฟฟ้าราบรื่น

การประยุกต์ใช้การวัดแรงดันไฟฟ้า

  1. ตรวจสอบระดับแบตเตอรี่
  2. ตรวจจับสัญญาณอะนาล็อกจากเซ็นเซอร์
  3. การวัดแรงดันไฟฟ้าของแหล่งจ่ายไฟ
  4. โครงการ Multimeter DIY

การแก้ไขปัญหา

  1. การอ่านที่ไม่ถูกต้อง:

    • ตรวจสอบการเดินสายและตรวจสอบค่าตัวต้านทานที่ถูกต้องสำหรับตัวแบ่งแรงดันไฟฟ้า
    • ตรวจสอบแรงดันอ้างอิงในการคำนวณ
  2. ค่าผันผวน:

    • เพิ่มตัวเก็บประจุ (10µF หรือ 100µF) ข้ามอินพุต
  3. การป้องกันแรงดันไฟฟ้าเกิน:

    • ตรวจสอบให้แน่ใจว่าแรงดันไฟฟ้าอินพุตไม่เกินขีด จำกัด ที่คำนวณได้ของตัวแบ่งแรงดันไฟฟ้า

บทสรุป

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

แสดงความคิดเห็น

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.