ในบทความนี้เราเรียนรู้วิธีสร้างโวลต์มิเตอร์ AC แบบไม่ใช้หม้อแปลงโดยใช้ Arduino
การทำ โวลต์มิเตอร์แบบอะนาล็อก ไม่ใช่เรื่องง่ายที่จะสร้างขึ้นมาคุณต้องมีความรู้เกี่ยวกับปริมาณทางกายภาพเช่นแรงบิดความเร็วซึ่งอาจเป็นเรื่องยากมากเมื่อต้องใช้งานจริง
โดยAnkit Negi
แต่ก โวลต์มิเตอร์แบบดิจิตอล เมื่อเปรียบเทียบกับ สามารถทำโวลต์มิเตอร์แบบอะนาล็อกได้ อย่างรวดเร็วและด้วยความพยายามเพียงเล็กน้อย ปัจจุบันโวลต์มิเตอร์แบบดิจิตอลของวันสามารถทำได้โดยใช้ไมโครคอนโทรลเลอร์หรือบอร์ดพัฒนาเช่น arduino โดยใช้รหัส 4-5 บรรทัด
ทำไมวงจร AC Voltmeter จึงแตกต่างกัน?
หากคุณไปที่ Google และค้นหา“ AC voltmeter โดยใช้ arduino” คุณจะพบวงจรมากมายในอินเทอร์เน็ต แต่ในเกือบทุกวงจรคุณจะพบว่ามีการใช้หม้อแปลง
ตอนนี้การใช้หม้อแปลงไม่ใช่ความคิดที่ดีหากคุณต้องการสร้างโวลต์มิเตอร์ที่เชื่อถือได้และมีประสิทธิภาพเนื่องจากทำให้วงจรมีขนาดใหญ่และหนักวงจรในโครงการนี้แก้ปัญหานี้ได้อย่างสมบูรณ์โดยการเปลี่ยนหม้อแปลงจากวงจรแบ่งแรงดันไฟฟ้าวัตต์สูง วงจรนี้สามารถทำได้อย่างง่ายดายบนเขียงหั่นขนมขนาดเล็กภายในไม่กี่นาทีส่วนประกอบที่ต้องการ:
ในการสร้างโครงการนี้คุณต้องมีส่วนประกอบต่อไปนี้:
1. Arduino
2. ตัวต้านทาน 100k โอห์ม (2 วัตต์)
3. ตัวต้านทาน 1k โอห์ม (2 วัตต์)
4. ไดโอด 1N4007
5. หนึ่งซีเนอร์ไดโอด 5 โวลต์
6. ตัวเก็บประจุ 1 uf
7. การเชื่อมต่อสายไฟ
แผนภูมิวงจรรวม:
ทำการเชื่อมต่อตามที่แสดงในแผนภาพวงจร
A) สร้างตัวแบ่งแรงดันไฟฟ้าโดยใช้ตัวต้านทานโดยจำไว้ว่าควรเชื่อมต่อตัวต้านทาน 1 k โอห์มกับกราวด์
B) เชื่อมต่อ p- เทอร์มินัลของไดโอดโดยตรงหลังจากตัวต้านทาน 1 k โอห์มดังแสดงในรูป และขั้ว n ถึง 1 ตัวเก็บประจุ uf
C) อย่าลืมเชื่อมต่อซีเนอร์ไดโอดแบบขนานกับตัวเก็บประจุ (อธิบายด้านล่าง)
D) เชื่อมต่อสายไฟจากขั้วบวกของตัวเก็บประจุเข้ากับขาอะนาล็อก A0 ของ arduino
E) ** เชื่อมต่อพินกราวด์ของ arduino กับวงจรกราวด์อื่นโดยรวมจะไม่ทำงาน
วัตถุประสงค์ของ ARDUINO ::
คุณสามารถใช้ไมโครคอนโทรลเลอร์ได้ แต่ฉันใช้ arduino เนื่องจาก IDE ที่ใช้งานง่าย โดยทั่วไปฟังก์ชันของ arduino หรือไมโครคอนโทรลเลอร์ใด ๆ ที่นี่คือการรับแรงดันไฟฟ้าข้ามตัวต้านทาน 1 k โอห์มเป็นอินพุตแบบอะนาล็อกและแปลงค่านั้นเป็นไฟเมน a.c. ค่าแรงดันไฟฟ้าโดยใช้สูตร (อธิบายในส่วนการทำงาน) Arduino พิมพ์ค่าไฟหลักนี้เพิ่มเติมบนจอภาพอนุกรมหรือหน้าจอแล็ปท็อป
วงจรกระจายแรงดันไฟฟ้า:
ดังที่ได้กล่าวไว้แล้วในส่วนส่วนประกอบตัวต้านทาน (ซึ่งประกอบเป็นวงจรแบ่งแรงดันไฟฟ้า) จะต้องมีกำลังไฟสูงเนื่องจากเราจะเชื่อมต่อโดยตรงกับแหล่งจ่ายไฟเมน a.c
และด้วยเหตุนี้วงจรแบ่งแรงดันไฟฟ้านี้จึงแทนที่หม้อแปลง เนื่องจาก arduino สามารถรับสูงสุด 5v เป็นอินพุตอะนาล็อกจึงใช้วงจรแบ่งแรงดันไฟฟ้าเพื่อแยกแรงดันไฟฟ้าสูงเป็นแรงดันไฟฟ้าต่ำ (น้อยกว่า 5v) ลองสมมติว่าแรงดันไฟหลักคือ 350 โวลต์ (รอบต่อนาที)
ซึ่งให้แรงดันไฟฟ้าสูงสุดหรือสูงสุด = 300 * 1.414 = 494.2 โวลต์
ดังนั้นแรงดันไฟฟ้าสูงสุดในตัวต้านทาน 1 k โอห์มคือ = (494.2volts / 101k) * 1k = 4.9volts (สูงสุด)
หมายเหตุ: * ถึงแม้จะเป็นเวลา 350 รอบต่อนาที 4.9 โวลต์นี้ก็ไม่ใช่รอบต่อนาทีซึ่งหมายความว่าในความเป็นจริงแรงดันไฟฟ้าบนขาอะนาล็อกของ arduino จะน้อยกว่า 4.9 v
ดังนั้นจากการคำนวณเหล่านี้จึงสังเกตได้ว่าวงจรนี้สามารถวัดแรงดันไฟฟ้า a.c ได้อย่างปลอดภัยประมาณ 385 รอบต่อนาที
ทำไมต้องไดโอด?
เนื่องจาก arduino ไม่สามารถรับแรงดันไฟฟ้าลบเป็นอินพุตได้จึงจำเป็นอย่างยิ่งที่จะต้องลบส่วนลบของคลื่นบาปอินพุต a.c ในตัวต้านทาน 1 k โอห์ม และในการทำเช่นนั้นจะถูกแก้ไขโดยใช้ไดโอด คุณยังสามารถใช้วงจรเรียงกระแสแบบบริดจ์เพื่อให้ได้ผลลัพธ์ที่ดีขึ้น
ทำไมต้องใช้ตัวเก็บประจุ
แม้หลังจากการแก้ไขแล้วก็ยังมีระลอกคลื่นอยู่และเพื่อขจัดระลอกคลื่นดังกล่าวออกไปก็มีการใช้ตัวเก็บประจุ ตัวเก็บประจุทำให้แรงดันไฟฟ้าเรียบก่อนป้อนให้กับ arduino
ทำไมต้อง ZENER DIODE
แรงดันไฟฟ้าที่มากกว่า 5 โวลต์อาจทำให้ arduino เสียหายได้ ดังนั้นเพื่อป้องกันจึงใช้ไดโอดซีเนอร์ 5 โวลต์ ถ้า a.c แรงดันไฟเมนเพิ่มขึ้นเกิน 380 โวลต์นั่นคือมากกว่า 5 โวลต์บนพินอะนาล็อกจะเกิดการแตกตัวของซีเนอร์ไดโอด จึงทำให้ตัวเก็บประจุสั้นลงสู่กราวด์ เพื่อความปลอดภัยของ arduino
รหัส:
เบิร์นโค้ดนี้ใน arduino ของคุณ:
int x// initialise variable x
float y//initialise variable y
void setup()
{
pinMode(A0,INPUT) // set pin a0 as input pin
Serial.begin(9600)// begin serial communication between arduino and pc
}
void loop()
{
x=analogRead(A0)// read analog values from pin A0 across capacitor
y=(x*.380156)// converts analog value(x) into input ac supply value using this formula ( explained in woeking section)
Serial.print(' analaog input ' ) // specify name to the corresponding value to be printed
Serial.print(x) // print input analog value on serial monitor
Serial.print(' ac voltage ') // specify name to the corresponding value to be printed
Serial.print(y) // prints the ac value on Serial monitor
Serial.println()
}
ทำความเข้าใจรหัส:
1. ตัวแปร x:
X คือค่าอนาล็อกอินพุตที่ได้รับ (แรงดันไฟฟ้า) จากพิน A0 ตามที่ระบุในรหัสนั่นคือ
x = pinMode (A0, INPUT) // ตั้งค่าพิน a0 เป็นพินอินพุต
2. ตัวแปรและ:
เพื่อให้ได้สูตรนี้ y = (x * .380156) ก่อนอื่นเราต้องทำการคำนวณบางอย่าง:
วงจรนี้จะให้แรงดันไฟฟ้าน้อยกว่าค่าจริงบนพิน A0 ของ arduino เสมอเนื่องจากตัวเก็บประจุและไดโอด ซึ่งหมายความว่าแรงดันไฟฟ้าบนพินอะนาล็อกจะน้อยกว่าแรงดันไฟฟ้าของตัวต้านทาน 1 k โอห์มเสมอ
ดังนั้นเราต้องหาค่าของแรงดันไฟฟ้ากระแสสลับที่เราได้รับ 5 โวลต์หรือ 1023 ค่าอะนาล็อกที่ขา A0 ด้วยวิธีการตีและการทดลองค่านั้นจะอยู่ที่ประมาณ 550 โวลต์ (สูงสุด) ดังที่แสดงในการจำลอง
ในรอบต่อนาที 550 โวลต์สูงสุด = 550 / 1.414 = 388.96 โวลต์รอบต่อนาที ดังนั้นสำหรับค่า r.m.s นี้เราได้รับ 5 โวลต์ที่ขา A0 ดังนั้นวงจรนี้สามารถวัดได้สูงสุด 389 โวลต์
ตอนนี้สำหรับค่าอนาล็อก 1023 บนพิน A0 - 389 a.c โวลต์ = y
ซึ่งให้สำหรับค่าอะนาล็อกใด ๆ (x) y = (389/1023) * x a.c โวลต์
หรือ y = .38015 * x a.c โวลต์
คุณสามารถสังเกตได้อย่างชัดเจนในรูปที่พิมพ์ค่า a.c บนมอนิเตอร์แบบอนุกรมคือ 389 โวลต์
การพิมพ์ค่าที่ต้องการบนหน้าจอ ::
เรากำหนดให้พิมพ์ค่าสองค่าบนจอภาพอนุกรมดังที่แสดงในภาพจำลอง:
1. ค่าอินพุตแบบอะนาล็อกที่ได้รับโดยพินอะนาล็อก A0 ตามที่ระบุในรหัส:
Serial.print ('อินพุตอะนาล็อก') // ระบุชื่อให้กับค่าที่ต้องการพิมพ์
Serial.print (x) // พิมพ์ค่าอนาล็อกอินพุตบนจอภาพอนุกรม
2. ค่าจริงของแรงดันไฟฟ้ากระแสสลับตามที่ระบุในรหัส:
Serial.print ('ac voltage') // ระบุชื่อไปยังค่าที่ต้องการพิมพ์
Serial.print (y) // พิมพ์ค่า ac บน Serial monitor
การทำงานของ AC VOLTMETER TRANSFORMERLESS นี้โดยใช้ ARDUINO
1. วงจรแบ่งแรงดันจะแปลงหรือลดระดับแรงดันไฟฟ้ากระแสสลับให้เป็นค่าแรงดันไฟฟ้าต่ำที่สอดคล้องกัน
2. แรงดันไฟฟ้าหลังการแก้ไขนี้ถ่ายโดยขาอะนาล็อกของ arduino และโดยใช้สูตร
y = 0.38015 * x a.c โวลต์ถูกแปลงเป็นแรงดันไฟฟ้าหลัก a.c จริง
3. จากนั้นค่าที่แปลงแล้วนี้จะพิมพ์บนมอนิเตอร์แบบอนุกรมของ arduino IDE
การจำลอง:
หากต้องการดูว่าค่าที่พิมพ์บนหน้าจอใกล้เคียงกับค่า a.c จริงเพียงใดการจำลองจะรันสำหรับค่าที่แตกต่างกันของแรงดันไฟฟ้า a.c:
A) 220 โวลต์หรือ 311 แอมพลิจูด
B) 235 โวลต์หรือ 332.9 แอมพลิจูด
C) 300 โวลต์หรือ 424.2
ดังนั้นจากผลลัพธ์ต่อไปนี้จึงสังเกตได้ว่าสำหรับแหล่งจ่ายไฟ 220 a.c arduino จะแสดงโวลต์ 217 และเมื่อค่า a.c เพิ่มขึ้นผลลัพธ์ของการจำลองจะมีความแม่นยำมากขึ้นซึ่งใกล้เคียงกับค่า a.c อินพุตมากขึ้น
คู่ของ: วงจรตั้งเวลา LCD 220V Mains - ตัวจับเวลาแบบพลักแอนด์เพลย์ ถัดไป: ปัญหาแรงดันตกของอินเวอร์เตอร์ - วิธีแก้ไข