Tinklo įtampos stebėjimas

Posted: 2014-08-02 in Darbeliai
Žymos:, ,

Iškilo tokia abstrakti „problema“: stebėti, ar yra įjungta tinklo įtampa. Na, sakykim, ar kokia rozetė įjungta, ar gal mygtukas nuspaustas ir lempa šviečia. Tiesiog, reikia su mikrovaldikliu (ar panašiai) nustatyti, kada gi kažkokioj linijoj elektra įjungta.

Praktikoje įprasta naudoti optronus. Na, mikrovaldiklis ar koks avietinis kompiuteriukas juk dirba su mažomis įtampomis: 5 ar 3,3 V. O tinklo įtampa — 220 V ir dar kintanti. Optronas išsprendžia izoliavimo uždavinį: vienoje jo pusėje kokia nors elektra uždega lempelę, o kitoje pusėje, prijungtoje prie valdiklio suveikia fototranzistorius.

Šiandien bus trumpa pamokėlė, kaip sekti tinklo įtampą. Stengiuosi išsisukti su mažiausiu detalių kiekiu, o kai kurių patogumų trūkumą išspręsti programiškai.

Kai pradėjau šios problemos sprendimo ieškoti internetuose, tai prasidėjo tokie siūlymai, kur prieš optroną dar būtina pastatyti diodų tiltelį. Matote, optronų įvesties pusėje paprastai būna šviesos diodas, o jam galima duoti tik nuolatinę tinkamai poliarizuotą įtampą. Tai kintamos tinklo įtampos išlyginimui reikia tiltelo. Jei užtenka stebėti tik vieną pusperiodį, tai galima skersai optrono kojyčių pastatyti paprastą diodą, su priešingu poliariškumu, nei šviesos diodas optrone.

O dar geriau — naudoti optroną H11AA1. Jis turi DU šviesos diodus, suporuotus skirtingomis kryptimis. Todėl jis „pastebi“ bet kokios krypties srovę. Tai labai gerai, nes atkrenta papildoma detalė.

Kaip dabar tuos šviesos diodus įžiebti ir nesudeginti? Galima būtų per didelį rezistorių jungti paskaičiavus optrono diodui tinkamą minimalią srovę. Bet tas bjaurybė kais ir ne tokio jau mažo reikės. Šiaip galima būtų jungti maždaug 30 kΩ rezistorių (arba, geriau, du po 15 kΩ prie kiekvienos kojelės — truputį saugiau). Bet rezistorių reikia nemažų, 2 W. Ir garins jie po 1,6 W energijos vien stebėjimui. Gal ir nedaug, bet visgi… kam to reik.

Kur kas geresnis sprendimas — vadinama aktyvioji varža. Kadangi tinklo įtampa yra kintanti, galima ją jungti per kondensatorių. O kondensatoriai energijos be reikalo nešvaisto, kaip rezistoriai. Be to, dažniausiai ir nekaista. 30 kΩ atitinka maždaug 100 nF kondensatorius. Jam reikia dar prijungti „iškraunantįjį“ rezistorių (bleeder), kad atjungus įtampą kondensatorius neliktų įkrautas. O tai perkeliant schemutę ar ją remontuojant galima per nagus gauti. Tai kartu su kondensatoriumi, jam lygiagrečiai dar galima prijungti 470 kΩ ar panašų rezistorių ir viskas. Trys komponentai ir galima jau stebėti tinklo įtampą.

Stebėjimo principas irgi paprastas. Nusprendžiau šį kartą viską kurti greitai ir naudotis Arduino bibliotekomis. Mažiau kodo, o kadangi jis ir taip bus paprastas, tai resursų užteks per akis.

Mintis tokia:

  • Reikės stebėti dvi linijas
  • Atmega328 procesorius turi du elektrodus, kuriems galima prikabinti kelių tipų įvesties pertraukimus
  • Elektrodai bus nustatyti į skaitymo režimą su įjungtais „pakeliančiaisiais“ (pull up) rezistoriais.
  • Kai tinkle atsiras įtampa, optronas įvesties elektrodą sujungs su „žeme“
  • Iš loginio vieneto į loginį nulį (įsijungus optronui) persijungimo pertraukimas kažką nuveiks

Reikia dar atkreipti dėmesį, kad optronas pertraukimą iškvies 100 kartų per sekundę. T.y. įvesties elektrodą junginės su kiekvienu įtampos pusperiodžiu. Tad „įjungta“ linija reikš, kad tie junginėjimaisi vyksta. Na, nebus taip, kad linija įsijungė ir optronas užtrumpino elektrodą į žemę ir ten pasiliko. Kintama įtampa junginės jį nuolat, t.y. „įjungta“ elektra reikš nuolatinį pulsavimą. Diodų tiltelis su dideliu kondensatoriumi galėtų įtampą paversti nuolatine ir liniją įjungus įvesties elektrode nuolat būtų nuliukas. Bet kondensatorius ir diodų tiltelis — papildomi nereikalingi komponentai. Juk galima programiškai pulsavimą skaičiuoti ir iš to daryti išvadą, kad elektra įjungta. T.y. pertraukimo paprogramė gali didinti skaitliuką, o kas kažkiek laiko — kas sekundę ar dešimt, priklauso nuo norimo tikslumo — kita paprogramė gali tą skaitliuką patikrinti ir jei jis didesnis, nei nulis — daryti išvadą, kad nuo paskutinio tikrinimo įtampa buvo įjungta. Tada vėl „nunulinti“ skaitliuką ir laukti kito patikrinimo.

Optrono H11AA1 jungimo schema. Kairėje — 220 V jungtis. Dešinėje VCCIO — prijungimas prie mikrovaldiklio įvesties elektrodo:

Optrono H11AA1 jungimo schema tinklo įtampos stebėjimui | Elektronika | Darau, blė

Čia truputuką nukrypau. Pradžiai pasirašiau paprastą programėlę, kuri į nuosekliąją jungtį siunčia nuliuką su tarpu, kai suveikia pertraukimas. Ir dar ant 13 Arduino elektrodo prilipdytą šviesos diodą uždega. Pagrindinė programa sukasi ir tą diodą vis užgesina — čia tik šiaip, dėl grožio, kad vizualiau būtų.

#define PUMP1_PIN 2
#define PUMP1_INT 0

void setup()
{
        pinMode(13, OUTPUT);
        digitalWrite(13, LOW);

        pinMode(PUMP1_PIN, INPUT_PULLUP);
        Serial.begin(9600);
        attachInterrupt(PUMP1_INT, pin2isr, FALLING);
}

void loop()
{
        digitalWrite(13, LOW);
        delay(1000);
}

void pin2isr()
{
        Serial.print("0 ");
        digitalWrite(13, HIGH);
}

Pradžiai paleidau programėlę, o Arduino elektrodą tiesiog laiduku pajunginėjau į jo paties „žemę“:

Arduino Uno R3 | Elektronika | Darau, blė

Veikia. Dabar jungiu optroną. Maksimali jo šviesos diodų srovė — 60 mA, bet suveikia, regis, nuo 0,3 mA. Jungiu jį pradžiai iš paties Arduino 5 V per 220 Ω rezistorių:

Arduino Uno R3 ir optronas H11AA1 | Elektronika | Darau, blė

Irgi veikia. Dabar didysis bandymas — jungimas prie tinklo. Pradžiai susiradau tinkamą rezistorių ir kondensatorių. Kondensatorius čia — iš taupiosios lemputės:

Arduino Uno R3 ir optronas H11AA1 su kondensatoriumi tinklo įtampai stebėti | Elektronika | Darau, blė

Gerai, kad turiu rozetėlę su junginėjama šakute, patogu tokioms nesąmonėms. Laidukai gal nelabai saugiai prijungti, bet įgrūdau, kad neištrūktų:

Arduino Uno R3 ir optronas H11AA1 su kondensatoriumi prijungtas prie 220 V elektros tinklo | Elektronika | Darau, blė

Irgi veikia. Į konsolę rašo po šimtą nuliukų per sekundę.

Tiek šiam kartui. Kada nors vėliau papasakosiu ir viską, kam šito bieso prireikė.

Komentarai
  1. Danielius parašė:

    Itampa srebeti gali ir pagalbine /apejimo rele “auxillary relay“ pvz Elko relay modular VS type 230v yra net su 3 kontaktais ir diodas irgi yra

    • Darau, Blė parašė:

      Relė yra relė. Kaip joje tą įtampą stebėti?

      • Danielius parašė:

        tai taip ir stebi jei yra itampa 220 tai dega diodas ir kontaktai 3 sujungti (arba atjungti jei pasirinksi)
        cia tokia rele kurioje rite ne 12 v ar 24 ar kt nuolatine , bet kintama 230 v tai tiesiai is rozetes prijungi 220 ir jei yra 220 tai viena padetis kontaktu jei nera tai kita kokia pasirinksi
        zr datasheet

        • Darau, Blė parašė:

          Na, stebėjimas — tai ne sėdėjimas ir spoksojimas, kada lempelė užsidegs. Stebėti reiškia gauti signalą ir jį apdoroti. Pavyzdžiui, mikrovaldiklis gauna signalą per optroną, kai linija įjungiama. Tada per nuosekliąją jungtį gali šį signalą persiųsti į kompiuterį, o čia savo ruožtu reikalas gali būti įrašomas į duombazę, braižomi grafikai, o jei linijos įjungimo laikas viršija kokias nors normas, pasiunčiamas elektrinis laiškelis ar SMS kam reikia…

      • Danielius parašė:

        nu neparasiau kad tuos tris kontaktus kurie reaguoja i tinklo bukle gali jungti ir i aviete ir i adruino ir t.t. neriekia nei optrono
        gali tiesiai nuskaitineti 0 ar 1
        dega ta tavo lempa , jungiklis ar dar kas nors ar ne nuo ko ir pradejai visa savo irasa nu nereiskia kad as sedziu ir registruoju diodas ir cia ir tavo atveju tik vizualiai parodo bukle

        • Darau, Blė parašė:

          Nu taip, ok. Bet ne visada gali jau esamoj sistemoj imt ir įkišt relę ar kažką panašaus. Yr du laidai ir nusiskaityk kaip nori. O naudot relę vien stebėjimui tai biškį prabangu būtų 🙂

  2. Vaidas parašė:

    O kam tiltelis po optrono? Jo išėjime gi turi būti išlyginta sinusoidė. Tai pakaktų tik kondiko ir išėjime. Kadangi valdiklio įėjimo varža didelė, o loginis 1 yra pvz. 3.7-5.0V, tai ir kondikas gan mažas.
    Aišku kai reikia taupyti iki negaliu, tai sprendimas geras. Tik tada paprastai ir valdiklio taupoma iki negaliu, tad 100Hz dažniu apdoroti GPIO petrauktį gali būti prabanga. Tokiu atveju verta GPIO pertrauktį įjungti tik kartais arba daryti GPIO pooling (apklausinėjimą).

    • Darau, Blė parašė:

      Kad nerašiau apie tiltelį po optrono, tik prieš jį. Dėl valdiklio tai nežinau, kas tas 100 Hz yr palyginus kad ir su 8 MHz ar 16 MHz? Tegu sau persitraukinėja. O jei pradės strigti, perrašyt visada lengvai galima.

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti /  Pakeisti )

Google photo

Jūs komentuojate naudodamiesi savo Google paskyra. Atsijungti /  Pakeisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti /  Pakeisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti /  Pakeisti )

Connecting to %s

Brukalų kiekiui sumažinti šis tinklalapis naudoja Akismet. Sužinokite, kaip apdorojami Jūsų komentarų duomenys.