วงจรโวลต์มิเตอร์ AC แบบไม่ใช้หม้อแปลงโดยใช้ Arduino

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ในบทความนี้เราเรียนรู้วิธีสร้างโวลต์มิเตอร์ 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 - ตัวจับเวลาแบบพลักแอนด์เพลย์ ถัดไป: ปัญหาแรงดันตกของอินเวอร์เตอร์ - วิธีแก้ไข