Electoday 2025

ไมโครคอนโทรลเลอร์ => AVR and Arduino => Topic started by: ppzakub1 on February 14, 2013, 08:19:40 PM

Title: ช่วยทีคับจะต่อใช้งาน Current Sensor ACS-712 20A ยังไงอะคับ
Post by: ppzakub1 on February 14, 2013, 08:19:40 PM
ใครพอ มีลิ้งแนะนำ บ้างคับ พอดี ผม ลองไป ต่อ ใช้ งาน บอร์ด ATmega1280 อะคับ ผม เอา ขา Vccของ ACS-712 ต่อ 5v ขา Gnd ของ ACS712ต่อ

Gnd ของบอร์ด แล้วเอา ขา Vout ของ ACS-712 ต่อ กับ พอร์ด Analog 1 แล้วแสดง ค่า analogRead ของ พอร์ต A1 แล้วค่ามัน ได้ 512 - 511 ประมาณนั้นอะคับ เวลา ลองใช้เตารีด เสียบวัดกระแสดู ค่าก้อเท่าเดิม ขึ้นๆ ลงๆ

รูปอุปกรณ์ ผมอัฟให้ดูแล้วน่ะคับ
Title: Re: ช่วยทีคับจะต่อใช้งาน Current Sensor ACS-712 20A ยังไงอะคับ
Post by: amaloma on February 14, 2013, 09:05:44 PM
ลองขยายก่อนเข้า adc ครับ
(http://circuits.datasheetdir.com/98/ACS712-circuits.jpg)
Title: Re: ช่วยทีคับจะต่อใช้งาน Current Sensor ACS-712 20A ยังไงอะคับ
Post by: ppzakub1 on February 14, 2013, 11:17:54 PM
Quote from: amaloma on February 14, 2013, 09:05:44 PM
ลองขยายก่อนเข้า adc ครับ
(http://circuits.datasheetdir.com/98/ACS712-circuits.jpg)

จะลอง ดูน่ะคับ ถ้า ต่อ ตามนี้ แล้ว ค่า ที่ออกมาจาก Vout จะเป็นค่าอะไรหรอคับ
Title: Re: ช่วยทีคับจะต่อใช้งาน Current Sensor ACS-712 20A ยังไงอะคับ
Post by: Neo on February 14, 2013, 11:19:56 PM
ตอนไม่มีกระแสไหล Vo = 2.5V  อยู่แล้วครับ   พอมีกระแสไหลสัญญาณมันจะเป็น Sine ครับ 50 hz
จะอ่านต้อง Sampling ที่ 1 ms  จำนวน 20 ครั้ง (20 ms = 50hz)อย่างเดียวครับ   แล้วเข้าสมการ IRms ถึงจะได้
Title: Re: ช่วยทีคับจะต่อใช้งาน Current Sensor ACS-712 20A ยังไงอะคับ
Post by: ppzakub1 on February 14, 2013, 11:23:12 PM
Quote from: Neo on February 14, 2013, 11:19:56 PM
ตอนไม่มีกระแสไหล Vo = 2.5V  อยู่แล้วครับ   พอมีกระแสไหลสัญญาณมันจะเป็น Sine ครับ 50 hz
จะอ่านต้อง Sampling ที่ 1 ms  จำนวน 20 ครั้ง (20 ms = 50hz)อย่างเดียวครับ   แล้วเข้าสมการ IRms ถึงจะได้

ผมลอง อ่านค่า 20 ครั้ง แล้วใส่ Delay(1) ได้จิงๆ ด้วยอะคับ เวลาเสียบ หัวแร้ง ค่า เปลี่ยนจาก ปกติมัน จะ 512 แต่ตอนเสียบมัน จะเปลี่ยนตัวเลข เป็น 510-508 ประมาณนี้อะคับ แล้วสมดาร IRms เป็นไงหรอคับ
Title: Re: ช่วยทีคับจะต่อใช้งาน Current Sensor ACS-712 20A ยังไงอะคับ
Post by: JMew on February 16, 2013, 03:12:35 AM
RMS สร้างอาร์เรย์ ๑ มิติ บวกยกกำลังสองสะสม หารด้วย จำนวนทั้งหมด แล้วถอดรากที่สอง

Dim Isamp As word
Dim Isamp2 As Long
Dim SumI2 as Single

Dim Icount as Byte


DeclareFunction Irms() As Single

Function Irms () As Single

Isum2 = 0

For Icount = 1 to 20

Isamp = GetADC(1)
Isamp = 512 - Isamp 'ลบออกจาก 2.5 V
Isamp2 = Isamp ^ 2 'ยกกำลังสอง
Isum2 = Isum2 + Isamp2 'บวกสะสม

Waitms 1
Next

Isum2 = Isum2/20 ' หารด้วยจำนวนทั้งหมด

Irms = SQR(Isum2) ' ถอดรากที่สอง

Irms = Irms * 20 'แบ่งสเกล 512 ระดับ = 20 A

Irms = Irms / 512 'หารด้วยจำนวนสเกล

End Function



Title: Re: ช่วยทีคับจะต่อใช้งาน Current Sensor ACS-712 20A ยังไงอะคับ
Post by: ppzakub1 on February 17, 2013, 08:21:00 AM
Quote from: JMew on February 16, 2013, 03:12:35 AM
RMS สร้างอาร์เรย์ ๑ มิติ บวกยกกำลังสองสะสม หารด้วย จำนวนทั้งหมด แล้วถอดรากที่สอง

Dim Isamp As word
Dim Isamp2 As Long
Dim SumI2 as Single

Dim Icount as Byte


DeclareFunction Irms() As Single

Function Irms () As Single

Isum2 = 0

For Icount = 1 to 20

Isamp = GetADC(1)
Isamp = 512 - Isamp 'ลบออกจาก 2.5 V
Isamp2 = Isamp ^ 2 'ยกกำลังสอง
Isum2 = Isum2 + Isamp2 'บวกสะสม

Waitms 1
Next

Isum2 = Isum2/20 ' หารด้วยจำนวนทั้งหมด

Irms = SQR(Isum2) ' ถอดรากที่สอง

Irms = Irms * 20 'แบ่งสเกล 512 ระดับ = 20 A

Irms = Irms / 512 'หารด้วยจำนวนสเกล

End Function

ขอบคุณมากๆคับสำหรับข้อมูลเป็นประโบชน์มากคับ