Allegro ACS712 izoliuotas srovės sensorius

Prireikė izoliuotai pamatuoti srovę. Daug negalvodamas kiek paguglinau ir pažiūrėjau ką naudoja arduininininkai. Visi krykštauja iš laimės dėl Allegro microsystems čipo ACS712… Pas kinus parduodami net su padarytom PCB. Nu tai nusipirkau negalvodamas, nes nutariau problemas spręsti po visko, kaip sakant gyvai. Prieš kelias dienas gavau:

ACS712 current sensor crap

Viskas labai gražu ir panašiai. Bet prasidėjo nesamonės. Pirmiausia- čipas 5V technologijos, žemesnė jam nelabai. Nulis amperų tai pusė Vcc. Pas mane ne mega ir ne arduino, pas mane ARM 3V technologijos, ir dar precizinis Vref dar žemesnės įtampos. Biški magijos su operaciniais ir pasistačiau aš taip, kad gautusi kiek labiau išplėstas diapazonas ir įtampos stovėtu taip, kaip patinka mano ADC.

ACS712 current sensor crap
Pajungiam- srovė šokinėja bet kur. Čia daba kas. Dėl viso pikto nufiltravau 5V Vcc, dar ir kaip atramą prieš kiekvieną srovės matavimą pasimatuoju ir 5V. Ten daug maž tobula- LSB tik biški pasikaitalioja. Tantalai ir L filtras davė savo. Bet srovė vistiek šokinėja. Pasijungiam oscilografą- vaje. Iš mikroschemos jaučiamas tinklo triukšmas, po operacinių magijos triukšmas vos ne 3 kartus didesnis- nes jis kaip tik apie nulį gražiai vaikšto…

Pasirodo visiška šikna- ši mikroschema tai analoginis linijinis holo daviklis ir vienos vijos apvija mikroschemoje. Ir jokio ekranavimo. Mano 50Hz kiniškas trafas matyt nėra labai “sandarus” ir per ~5cm atstumą pilnai transliuoja 50Hz magnetinį lauką. Aš jį ir pasigaunu su jautria mikroschema. Tačiau reiškia, kad jei šalia jutiklio eis bet kokie laidai, viskas “atsispindės” parodymuose, nes ekranavimas nulinis.
Dar nuo kintamo magnetinio lauko gal ir galima apsiginti, bet ką daryti su pastoviu? Mano pincetas puikiausiai duoda +5A ir -5A srovę priklausomai kuriuo galu kišamas…

Tikrai ši mikroschema skirta “arduiinininkams”, nes palyginus, kitų gamintojų mikroschemų holo davikliai stovi feritinio žiedo properšoje, srovės apvija apvynio apie žiedą ir sistema gaunasi kaip ir ekranuota…

Allegro ACS712 vs Honeywell

Va tokis ekranuotas ir neekranuotas reikalas…

ACS712magnetically shielded
Įkišus į tokią “bobiną” bent jau dingo 50Hz fonas.

10 replies on “Allegro ACS712 izoliuotas srovės sensorius”

  1. Tas vcc/2 =0A tai baisiai erzina. Aš dariau taip: Alegro maitinimas U/2( varžinis daliklis) tada šią įtampą paduodu į MCU Vref. Bent jau su 0 A plaukiojimu susitvarkoma. Galima tą patį su operacinukais sužaisti jei MCU matuoji netik A. Bet panaudoti U/2 kaip Vref žymiai pagerina reikalą, nes Alegro išėjimas praktiškai priklauso nuo Vcc kitimo.

  2. Mano sprendimas bent šiai schemai:
    max4173teut [AABN]

    Tai MAX4173TEUT (SMD kodas: AABN), high side šuntų “skaitytuvas” su x20 stiprinimu. Deja nesugalvojau ką daryti izoliuotoje grandinėje.

  3. > Deja nesugalvojau ką daryti izoliuotoje grandinėje
    Keitiklis įtampa->dažnis (pvz. LM331) ir su optronu perduodi ten, kur reikia.

  4. Nu dar kolkas mastau. Dėl allegro durnumo, negalio jo panaudoti šioje konstrukcijoje, todėl man dabar reikia nuskaityti dvi reikšmes. Todėl kažkai mintis eina prie papildomo procesoriuko. Gal koks ATtiny13A (turiu desietką) ir duomenu perdavimas per optiką. Gaila nėra aparatinio UARTo. Teks naudoti softą.

  5. Sugalvojau, kaip išvengti triukšmo pasekmių be ekranavimo ir analoginių ir skaitmeninių filtrų su ACS712. Principas būtų, kaip, kad vyta pora perduodamas ir apdoruojamas diferencinis signalas.
    Tai reiktu dviejų, kuo arčiau viena kitos ACS712 srovės matavimo kontaktais sujungtų nuosekliai ar parraleliai, tik svarbu, kad vienoje mikrėje tuo laiko momentu per 1,2 kojeles srovė įteketu – išteketu per 3,4, o kitoje mikrėje per 3,4 kojeles iteketu srovė – ištekėtu per 1,2. Taip vienoje mikrės išėjime bus teigiama matuojamos srovės reikšmė, o kitoje bus neigiama srovės reikšmė, bet užfiksuotu triukšmo signalai abejose mikrėse turėtu būti tos pačios reikšmės.
    Tai abiejų mikrių išmatuotas reikšmes reiktu sudeti – sumos rezultatas turėtu gautis tik triukšmas. Tada sumos rezultatą – triukšmą reikia invertuoti ir susumuoti su pirmos mikrės matuojama reikšme – sumos rezultate turėtu likti tik matuojamos srovės reikšmė be triukšmo.

  6. Gal… bet aš jų nesugebėsiu nuskaityti vienu metu. Gal SAM7 ir tai moka, nesu tikras. Bet jei pavėluosiu kažkiek, 50Hz dedamoji nesutaps ir bus vėl klaida.

    Šiuo metu aš atsisakiau šios mikroshemos. Dabar galvos skausmas- izoliuota pusė. Kaip siūlė Donatas- ADC ir ADUM gal ir tiktu, tačiau neturiu nei vieno nei kito. Tiksliau kažką turiu, bet SPI ir labai jau mikrobiniuose korpusuose (ADC), o izoliatoriu turiu tik vieną: 3+1 krypčių. Kol kas dar ne.

  7. sumuoti, invertuoti ir vėl sumuoti, turėjau omenyje, su operacinukais, ir tik galutinį signalą paduoti i ADC koją..

  8. dabar išbandžiau tokį varinatą: slave plokštelė su ATMEGA8 (nes tokių kibirą turiu). Ji nuskaito ADC dvi reikšmes, paverčia tekstine eilute, paskaičiuoja CRC ir sunčia per UARTą. Toliau stovi 6N136 optinis izoliatorius ir mosfetukas signalo sustiprinimui ir invertavimui, nes minėtas optocoupleris kažkodėl sunkiai veikia nuo žemos įtampos. Serijinį signalą priima SAM7, taip pat pasiskaičiuoja CRC, sulygina su gautąją ir atlieką matematinius veiksmus.

    optoisolation

    Reikia apgalvoti duomenų perdavimo protokolą kuris stebėtu ne tik CRC, bet ir pačių duomenų atėjimą- t.y. jei per kokią pusę sekundės negauti nauji duomenys, skelbti povojų.

Leave a Reply

Your email address will not be published. Required fields are marked *