Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - RoLRoR

Pages: [1] 2 3 ... 42
2
หลักการแบบง่าย non-isolate และ isolate ครับ
http://microcontrollerslab.com/ac-voltage-measurement-using-microcontroller/

ตามวงจรที่มี rectifier เลือกใช้ diode ชนิดที่โวลท์ drop น้อยช่วยค่าตรงขึ้น
และ เขียนโปรแกรมอ่านค่าแบบ rms จะอ่านค่าได้ทั้ง ac และ dc ครับ.

3
คุณ MAbUS ผมเองก็ศึกษาจากตัวอย่างวงจรและโค้ดที่พี่ๆ หลายท่านได้ลงไว้เหมือนกันครับ  :D

4
serial baudrate : 9600 bit per second
serial mode : startbit=1, data=8bit, parity=none, stopbit=1 == 10bit per charactor
มากสุด 9600 / 10bit = 960 charactor per second"

 :D ประมาณนี้เปล่าครับ

แต่ละค่า ถ้าพิมพ์หลักเดียวก็ใช้ 1 charactor , เลข 4 หลัก ก็ 4 charactor
ต้องลองไปคำนวณหาสมการต่อดูครับ.
0-9             10*1
10-99           90*2
100-999         900*3
1000-9999       9000*4

5

credit : https://en.wikipedia.org/wiki/Zero_crossing
จุดตัดศูนย์ครับ (ศูนย์โวลท์)


credit : https://electronics.stackexchange.com/questions/35685/digital-dimmer-with-microcontroller

ส่วนใหญ่ใช้เพื่อควบคุมพลังงาน output โดย วิธี shift phase คือ dimmer แบบหนึ่ง
เมื่อใช้ mcu ตรวจจับจุด zerocrossing ได้แล้ว ก็จะนับเวลา เพื่อ ส่งสัญญาณ trig  triac ,igbt ได้ถูกจังหวะครับ


credit : http://www.pcbheaven.com/wikipages/Dimmer_Theory/

หน่วงเวลาน้อย output มาก , หน่วงเวลามาก output น้อย

... นำไปใช้รูปแบบอื่นได้ครับ เช่นรู้จุด zero crossing ก็ วัดความถี่ ไฟ ac
หรือ จะวิเคราะรูปคลื่น หา powerfactor ,paramiter
หรือ modulate / demodulate ข้อมูล เช่น ac line communication ได้ ถูกจังหวะครับ

6
ผมเคยใช้แค่ ปรับระดับแรงดัน ac. ให้อยู่ช่วงที่ arduino อ่านได้ แล้ว sampling ค่าเอาครับ.

เคยอ่านผ่าน เซมิฯ เหมือนจะมีโครงงาน RMS to DC โดยใช้ AD737 (ที่ es มีขาย)
มีลิ้งนี้ ใช้ OPAMP และหรือใช้ AD737 ครับ
http://sound.whsites.net/appnotes/an012.htm
http://sound.whsites.net/project140.htm

7

ยกระดับแรงดัน ac. ให้มาอยู่ภานใน dc. ช่วงที่ arduino อ่านได้ (0-5v ref.2.5v) (0-3.3v ref.1.67v)


และการต่อวงจรครับ.

8
ผมใช้วิธี...
1. isolate หม้อแปลงลดแรงดันลงก่อนครับ 220/2.5 ถ้าหม้อแปลงแรงดันมากไป ต่อ VR. เอา
2. ยกระดับแรงดันขึ้นให้โดยต่อหม้อแปลง sec. เข้าที่ Ref. 2.5V (ใช้ R แบ่งแรงดัน + C รักษาแรงดัน) อีกเส้นต่อเข้า analog-in ของ arduino
3. adc sampling ตลอด cycle. 2ms.
ถ้า arduino adc 10bit (ความละเอียด 0-1023) ค่าที่ได้ > 511 เก็บค่า โดย adc_value-511
ค่าที่ได้ <= 511 เก็บค่า โดย 511-adc_value แล้วเอาค่าที่ได้ตลอด 2ms. เข้าสมการ rms. และคูณปรับ จะได้ค่าเป็น Rms Volt.

อีกวิธี
1. isolate หม้อแปลงลดแรงดันเป็นลง
2. rectifier เป็น DC ใส่ C Filter , R Load
3. ต่อเข้า gnd และ analog in แล้ว arduino อ่านค่า adc
ใส่ตัวคูณเพื่อแสดงเป็น Volt ตามต้องการ

Pages: [1] 2 3 ... 42