Innehållsförteckning:

ACS724 Strömgivarmätningar med Arduino: 4 steg
ACS724 Strömgivarmätningar med Arduino: 4 steg

Video: ACS724 Strömgivarmätningar med Arduino: 4 steg

Video: ACS724 Strömgivarmätningar med Arduino: 4 steg
Video: How To Use Arduino Current Sensor ASC712 2024, Juli
Anonim
Image
Image
Bild
Bild

I denna instruktör kommer vi att experimentera med att ansluta en ACS724 strömgivare till en Arduino för att göra strömmätningar. I det här fallet är den aktuella sensorn en +/- 5A variant som matar ut 400 mv/A.

Arduino Uno har en 10 bitars ADC, så bra frågor är: Hur exakt är den aktuella avläsningen vi kan få och hur stabil är den?

Vi börjar med att bara ansluta sensorn till en voltmeter och en strömmätare och göra analoga avläsningar för att se hur bra sensorn fungerar och sedan ska vi ansluta den till en Arduino ADC -stift och se hur bra den fungerar.

Tillbehör

1 - Brödbräda2 - Bänkskivans strömförsörjning2 - DVM's1 - ACS724 sensor +/- 5A1 - Arduino Uno1 - LM78053 - 10 ohm, 10W motstånd1 - 1nF cap1 - 10nF cap1 - 0.1uF cap

Steg 1:

Testkretsen är som visas i diagrammet. Anslutningen från Arduino 5V -stiftet till LM7805 +5V -skenan är valfri. Du kan få bättre resultat med den här bygeln på plats, men var försiktig med dina kablar om du använder den eftersom Arduino är ansluten till din dator och den andra strömförsörjningen kommer att överstiga 5V när du slår på den för att öka strömmen genom sensorn.

Om du ansluter nätaggregaten tillsammans kommer sensorns strömförsörjning och Arduino -nätaggregatet att ha exakt samma +5V referenspunkt och du kan förvänta dig mer konsekventa resultat.

Jag gjorde detta utan denna anslutning och jag såg en högre nollströmavläsning på strömgivaren (2.530 V istället för den förväntade 2.500 V) och lägre än förväntad ADC -avläsning vid nollströmspunkten. Jag fick en digital ADC -avläsning på cirka 507 till 508 utan ström genom sensorn, för 2.500V bör du se en ADC -avläsning på cirka 512. Jag korrigerade för detta i programvaran.

Steg 2: Testmätningar

Testmätningar
Testmätningar

Analoga mätningar med en voltmeter och ammeter indikerade att sensorn är mycket exakt. Vid testströmmar på 0,5A, 1,0A och 1,5A var det exakt korrekt till millivolten.

ADC -mätningar med Arduino var inte så exakta. Dessa mätningar begränsades av 10 bitars upplösning för Arduino ADC och brusproblem (se videon). På grund av brus hoppade ADC -avläsningen runt värsta fall upp till 10 eller fler steg utan ström genom sensorn. Med tanke på att varje steg representerar cirka 5 mv, handlar det om en fluktuation på 50 mv och med en 400 mv/amp sensor representerar en 50 mv/400 mv/amp = 125 ma fluktuationer! Det enda sättet jag kunde få en meningsfull läsning var att ta 10 avläsningar i rad och sedan genomsnitta dem.

Med en 10 -bitars ADC eller 1024 möjliga nivåer och 5V Vcc kan vi lösa cirka 5/1023 ~ 5mv per steg. Sensorn ut sätter 400mv/Amp. Så i bästa fall har vi en upplösning på 5mv/400mv/amp ~ 12,5ma.

Så kombinationen av fluktuationer på grund av brus och låg upplösning gör att vi inte kan använda denna metod för att noggrant och konsekvent mäta ström, särskilt små strömmar. Vi kan använda den här metoden för att ge oss en uppfattning om den nuvarande nivån vid högre strömmar men det är bara inte så exakt.

Steg 3: Slutsatser

Slutsatser
Slutsatser

Slutsatser:

-ACS724 analoga avläsningar är mycket exakta.

-ACS724 borde fungera mycket bra med analoga kretsar. t.ex. styr strömförsörjningsströmmen med en analog återkopplingsslinga.

-Det finns problem med brus och upplösning med ACS724 med Arduino 10 bitars ADC.

-Bra nog för att bara övervaka medelström för högre strömkretsar men inte tillräckligt bra för konstant strömstyrning.

-Kan behöva använda ett externt 12 -bitars eller mer ADC -chip för bättre resultat.

Steg 4: Arduino -kod

Här är koden jag använde för att helt enkelt mäta Arduino A0 -stifts ADC -värde och koden för att konvertera sensorspänningen till ström och ta genomsnittet av 10 avläsningar. Koden är ganska självförklarande och kommenterad för konvertering och genomsnittskod.

Rekommenderad: