Innholdsfortegnelse:

AC Current Monitoring Data Logger: 9 trinn (med bilder)
AC Current Monitoring Data Logger: 9 trinn (med bilder)

Video: AC Current Monitoring Data Logger: 9 trinn (med bilder)

Video: AC Current Monitoring Data Logger: 9 trinn (med bilder)
Video: 125 Innovative Electric Vehicles and Personal Transports 2024, November
Anonim
AC Current Monitoring Data Logger
AC Current Monitoring Data Logger

Hei alle sammen, velkommen til min første instruks! Om dagen er jeg testingeniør for et selskap som leverer industrielt oppvarmingsutstyr, om natten er jeg en ivrig teknologihobbyist og gjør -det -selv. En del av arbeidet mitt innebærer å teste ytelsen til varmeovner, ved denne anledningen ønsket jeg å kunne overvåke RMS nåværende tegning av 8 enheter over 1000 timer og logge dataene for å tegne resultatene senere. Jeg har tilgang til en datalogger, men den var allerede forpliktet til et annet prosjekt, og jeg trengte noe rimelig, så jeg bestemte meg for å kaste sammen denne grunnleggende dataloggeren.

Prosjektet bruker en Arduino Uno til å lese analoge sensorer via analog til digital omformer (ADC) og registrerer dataene med et tidsstempel på et SD -kort. Det er mye teori og beregning involvert i utformingen av kretsene, så i stedet for å forklare absolutt alt, vil jeg bare vise deg hvordan du lager det. Hvis du er interessert i å se FULL treff, så gi meg beskjed i kommentarene, så forklarer jeg nærmere.

MERK:

Jeg har hatt mange spørsmål om True RMS -beregninger. Denne enheten bruker en halvbølge -likeretter for å fange toppen av bølgen, som deretter kan multipliseres med 0,707 for å gi RMS. Følgelig vil det bare gi et nøyaktig resultat med lineære belastninger (dvs. strømmen som måles er en ren sinusbølge). Ikke-lineære forsyninger eller belastninger som gir trekantede, rektangulære eller andre ikke-sinusbølgeformer, vil ikke gi en sann RMS-beregning. Denne enheten måler bare vekselstrøm, den er ikke designet for å måle spenning, og den beregner eller måler derfor ikke effektfaktoren. Se den andre instruksjonen min om hvordan du lager en effektfaktormåler som kan brukes til å gjøre dette. Mange har også sagt at en rett vekselstrømskobling med en 2,5V midtlinje er bedre, men dette introduserer komplikasjoner ettersom det innebærer å ha en tilstrekkelig rask digital samplingsfrekvens, robust gjennomsnitt/datautjevning osv. Og usikkerheten dette introduserer er mye høyere enn måling råverdien. Personlig foretrekker jeg maskinvareløsninger og enklere kode der det er mulig, så jeg er ikke interessert i den metoden. Nøyaktig vis tror jeg at dette er langt bedre enn sistnevnte, og du vil se senere i resultatene mine at det er en regresjonskoeffisient nær 1.0 etter kalibrering.

Trinn 1: Strømtransformatorer

Nåværende transformatorer
Nåværende transformatorer
Nåværende transformatorer
Nåværende transformatorer

Dette prosjektet bruker strømtransformator HMCT103C 5A/5MA. Den har et forhold på 1: 1000 svinger, noe som betyr at for hver 5A strøm som strømmer gjennom lederen, vil 5mA strømme gjennom CT. En motstand må kobles over de to terminalene på CT for å tillate en spenning å måles over den. Ved denne anledningen brukte jeg en 220 Ohm motstand. Derfor, ved hjelp av Ohms lov V = IR, vil utgangen til CT være 1,1 volt AC, for hver 5mA CT -strøm (eller hver 5A målt strøm). CT -ene ble loddet for å fjerne brett med motstanden og noen instrumenttråd for å lage flygende ledninger. Jeg avsluttet ledningene med 3,5 mm mannlige lydkontakter.

Her er databladet for den nåværende transformatoren

Dataark

Trinn 2: Signalkondisjonering

Signalkondisjonering
Signalkondisjonering
Signalkondisjonering
Signalkondisjonering

Signalet fra CT vil være svakt, så det må forsterkes. Til dette loddet jeg sammen en enkel forsterkerkrets ved hjelp av en uA741 dual rail op amp. I dette tilfellet er gevinsten derfor satt til 150 ved å bruke formelen Rf / Rin (150k / 1k). Imidlertid er utgangssignalet fra forsterkeren fortsatt AC, dioden på utgangen til op-amp forsterker den negative halvsyklusen til vekselstrømmen og sender den positive spenningen til en 0.1uF kondensator for å jevne ut bølgen til et kruset DC-signal. Nedenfor er delene som utgjør kretsen:

  • V1-Dette er vilkårlig i dette diagrammet, det representerer ganske enkelt signalspenningen som mates til den ikke-inverterende inngangen til op-amp.
  • R1 - Dette er kjent som tilbakemeldingsmotstanden (Rf) og er satt til 150k
  • R2 - Dette er kjent som inngangsmotstanden (Rin) og er satt til 1k
  • 741 - Dette er den integrerte uA741 -kretsen
  • VCC - Positiv tilførselsskinne +12V
  • VEE - Negativ forsyningsskinne -12V
  • D1 - Er havbølgen som retter opp signaldioden 1N4001
  • C3 - Denne kapaktoren holder likestrømssignalet i en bestemt tid

På bilde 2 kan du se at den ble satt sammen med Veroboard og hermetisert kobbertråd. Det ble boret 4 hull for PCB -stand -off slik at de kunne stables (fordi det er åtte kanaler må det være åtte forsterkerkretser totalt.

Trinn 3: Strømforsyning

Strømforsyning
Strømforsyning
Strømforsyning
Strømforsyning
Strømforsyning
Strømforsyning

Hvis du ikke har lyst til å lage det fra bunnen av, kan du kjøpe brettet ferdigmontert fra Kina som det som er vist ovenfor, men du trenger fortsatt 3VA-transformatoren (gå ned 240V til 12V). Den på bildet kostet meg rundt 2,50 pund

For å drive prosjektet bestemte jeg meg for å lage min egen 12VDC strømforsyning med to skinner. Dette var praktisk ettersom op -forsterkere krever +12V, 0V, -12V, og Arduino Uno kan ta imot enhver forsyning på opptil 14 VDC. Nedenfor er delene som utgjør kretsen:

  • V1 - Dette representerer forsyningen fra stikkontakten 240V 50Hz
  • T1 - Dette er en liten 3VA transformator jeg hadde liggende om. Det er viktig at transformatoren har en sentral kran på sekundæren som vil være koblet til 0V, dvs. bakken
  • D1 til D4 - Dette er en helbølgebro -likeretter som bruker 1N4007 -dioder
  • C1 og C2 - 35V elektrolytiske kondensatorer 2200uF (må være 35V da potensialet mellom positivt og negativt vil nå 30V)
  • U2 - LM7812, er en 12V positiv spenningsregulator
  • U3 - LM7912, er en 12V negativ spenningsregulator (vær forsiktig med å merke tappeforskjellene mellom 78xx og 79xx IC!)
  • C3 & C4 - 100nF Utjevningskondensatorer 25V elektrolytisk
  • C5 og C6 - 10uF keramiske skivekondensatorer

Jeg loddet komponentene på stripboard, og ble med de vertikale sporene med bare en kjerne fortinnet kobbertråd. Bilde 3 ovenfor viser min DIY strømforsyning, beklager at det er mange hoppere på bildet!

Trinn 4: Analog til digitale omformere

Analog til digitale omformere
Analog til digitale omformere
Analog til digitale omformere
Analog til digitale omformere

Arduino Uno har allerede en innebygd 10-bits ADC, men det er bare 6 analoge innganger. Derfor valgte jeg å bruke to ADC-breakouts med ADS1115 16-bit. Dette tillater 2^15 = 32767 bits å representere spenningsnivåer fra 0-4.096V (4.096V er breakoutets driftsspenning), dette betyr at hver bit representerer 0,000125V! Fordi den bruker I2C -bussen, betyr det at opptil 4 ADC kan adresseres, slik at opptil 16 kanaler kan overvåkes hvis ønskelig.

Jeg har prøvd å illustrere tilkoblingene ved hjelp av Fritzing, men på grunn av begrensningene er det ingen egendefinerte deler for å illustrere en signalgenerator. Den lilla ledningen er koblet til utgangen fra forsterkerkretsen, den svarte ledningen ved siden av illustrerer at alle forsterkerkretser må dele felles grunn. Så jeg har brukt et brødbrett for å illustrere hvordan jeg har laget tiepointene. Imidlertid har mitt faktiske prosjekt breakouts som sitter i kvinnelige overskrifter, loddet til Veroboard, og alle bindingspunktene er loddet på veroboardet.

Trinn 5: Mikrokontroller

Mikrokontroller
Mikrokontroller

Som nevnt ovenfor var kontrolleren jeg valgte en Arduino Uno, dette var et godt valg ettersom den har mye ombord og innebygd funksjonalitet som ellers ville må bygges separat. I tillegg er den kompatibel med mange spesialbygde "skjold". Ved denne anledningen krevde jeg en sanntidsklokke for å stemple alle resultatene og en SD -kortskriver for å registrere resultatene i en.csv- eller.txt -fil. Heldigvis har Arduino dataloggingsskjold begge i et skjold som skyver passform på det originale Arduino-kortet uten ekstra lodding. Skjoldet er kompatibelt med RTClib- og SD -kortbibliotekene, så du trenger ikke spesialistkode.

Trinn 6: Montering

montering
montering
montering
montering
montering
montering

Jeg brukte 5 mm ridgid medium/low density PVC (noen ganger kjent som foamboard) for å skru ned de fleste komponentene mine og kutte det til en praktisk størrelse med en håndverkskniv. Alle komponentene ble bygget på en modulær måte for prototypen ettersom det tillater fjerning av individuelle deler hvis ting går galt, men det er ikke så effektivt eller ryddig som et etset kretskort (videre arbeid), dette betyr også mange hoppetråder mellom komponentene.

Trinn 7: Last opp kode

Last opp koden til Arduino, eller få koden fra min Github -repo

github.com/smooth-jamie/datalogger.git

Trinn 8: Kalibrering

Kalibrering
Kalibrering
Kalibrering
Kalibrering
Kalibrering
Kalibrering

Teoretisk sett vil den målte strømmen være et resultat av flere ting kombinert:

Målt ampere = (((a *0,45)/150)/(1,1/5000))/1000 hvor 'a' er signalspenningen fra forsterkeren

0,45 er rms-verdien til Vout på forsterkerkretsen, 150 er op-amp-forsterkningen (Rf / Rin = 150k / 1k), 1,1 er fullskala spenningsutgang fra CT når målte ampere er 5A, 5000 er ganske enkelt 5A in mA, og 1000 er mengden svinger i transformatoren. Dette kan forenkles til:

Målt ampere = (b * 9.216) / 5406555 hvor b er ADC rapportert verdi

Denne formelen ble testet ved hjelp av Arduino 10-bits ADC, og en forskjell mellom multimeterverdier og Arduino-genererte verdier ble observert med 11%, noe som er et uakseptabelt avvik. Min foretrukne metode for kalibrering er å registrere ADC -verdi vs strøm på et multimeter i et regneark og plotte et tredje ordens polynom. Fra dette kan kubikkformelen brukes til å gi bedre resultater ved beregning av målt strøm:

(ax^3) + (bx^2) + (cx^1) + d

Koeffisientene a, b, c og d beregnes i excel fra en enkel datatabell, x er din ADC -verdi.

For å få dataene brukte jeg en keramisk 1k variabel motstand (reostat) og 12v transformator for å trappe ned nettspenningen fra 240V, noe som ga meg å generere en variabel strømkilde fra 13mA til 100mA. Jo flere datapunkter som samles inn desto bedre, men jeg vil foreslå å samle 10 datapunkter for å få en nøyaktig trend. Den vedlagte Excel -malen vil beregne koeffisientene for deg, det er da bare å skrive dem inn i arduino -koden

På linje 69 i koden vil du se hvor du skal angi koeffisientene

float chn0 = ((7.30315 * pow (10, -13)) * pow (adc0, 3) + (-3.72889 * pow (10, -8) * pow (adc0, 2) + (0.003985811 * adc0) + (0.663064521))));

som er den samme som formelen i ark1 i excel -filen:

y = 7E-13x3-4E-08x2 + 0,004x + 0,663

Hvor x = adc0 for hvilken kanal du kalibrerer

Trinn 9: Fullfør

Bli ferdig
Bli ferdig
Bli ferdig
Bli ferdig
Bli ferdig
Bli ferdig
Bli ferdig
Bli ferdig

Legg den i et prosjektkapsling. Jeg avsluttet strømforsyningen med en vippebryter for å slå det hele på/av ved forsyningen, og en IEC "figur 8" -kontakt for nettinngangen. Skru alt sammen og du er klar til å teste det ut.

Videre arbeid

Hele prosjektet ble hånet ganske raskt, så det er mye rom for forbedring, etset krets, bedre komponenter. Ideelt sett vil det hele bli etset eller loddet på FR4 i stedet for masse hoppere. Som jeg sa tidligere er det masse ting jeg ikke har nevnt, men hvis det er noe spesifikt du vil vite, gi meg beskjed i kommentarene, så oppdaterer jeg instruksjonsboken!

Oppdatering 2016-12-18

Jeg har nå lagt til en 16x2 LCD -skjerm ved hjelp av I2C "ryggsekken" for å overvåke de fire første kanalene, vil legge til en til for å overvåke de fire siste når den kommer gjennom innlegget.

Studiepoeng

Dette prosjektet ble gjort mulig av alle forfatterne av bibliotekene som ble brukt i min Arduino -skisse, inkludert DS3231 -biblioteket, Adafruit ADS1015 -biblioteket og Arduino SD -biblioteket

Anbefalt: