Elektroda.pl
Elektroda.pl
X
Relpol przekaźniki
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ORNO - OR-WE-501 -- jak podłączyć wyjście sygnałowe do mikrokontrolera

16 Lip 2015 21:41 6201 9
  • Poziom 9  
    Witam,

    Czy ktoś dysponuje notą aplikacyjną dla licznika Orno OR-WE-501 z przykładami podłączenia wyjścia sygnałowego (zaciski 20 i 21) do mikrokontrolera?

    Dostępne informacje w internecie są nieprecyzyjne w stylu:
    -- napięcie: 12~27V
    -- prąd: <27mA
    -- połączenie do zacisków 20 i 21
    -- maksymalne wartości: max napięcie 60V DC, max prąd 50mA



    W przeciwnym razie jak jest zbudowany stopień wyjściowy (zaciski 20 i 21)?
    Czy jest to rozwiązanie typu otwarty kolektor?
    Czy zaciski są oddzielone galwanicznie od masy i fazy licznika?
    Skąd wynika konieczność zasilania relatywnie wysokim napięciem 12~27V?

    Dziękuję za wszelką podpowiedź.
    Pozdrawiam.
  • Relpol przekaźniki
  • Relpol przekaźniki
  • Poziom 9  
    Dziękuję za poradę odnośnie użycia transoptora.

    Mimo wszystko wciąż nie rozumiem jak zrealizowane jest wyjście sygnałowe (zaciski 20+ i 21-) licznika.

    Od dystrybutora urządzenia uzyskałem dość skąpą informację, że wyjście jest odseparowane galwanicznie, jest typu otwarty kolektor i że należy użyć zasilacza "zewnętrznego" włączonego w szereg z urządzeniem, które ma odbierać impulsy.

    Na podstawie skompilowanej wiedzy przygotowałęm schemat ideowy i teraz liczę, że któryś z Forumowiczów, który już zdobył doświadczenie z urządzeniem będzie w stanie zweryfikować i potwierdzić poprawność połączeń na moim rysunku.

    ORNO - OR-WE-501 -- jak podłączyć wyjście sygnałowe do mikrokontrolera


    Dziękuje za pomoc.
  • Poziom 9  
    Witam ponownie,

    "Podjąłem ryzyko" i przeprowadziłęm stosowne eksperymenty.
    Rezultatami dzielę się na załączonym obrazku. Może się komuś z Forumowiczów przyda, kto będzie miał podobną potrzebę. :-)

    ORNO - OR-WE-501 -- jak podłączyć wyjście sygnałowe do mikrokontrolera

    ( Uwaga! Informacja o separacji galwanicznej wynika z pomiarów. Dla bezpieczeństwa wymaga ostatecznego potwierdzenia przez producenta)


    Temat uważam za autorozwiązany i zamykam go.
  • Poziom 19  
    Witam, podepnę się pod temat, planuje zakup takiego samego licznika, z zamiarem zastosowania go do liczenia zużytej energii poprzez Rpi, czy kolega jest w stanie podpowiedzieć, czy aby Rpi widziało impulsy na GPIO muszę podawać napięcie w obwód?
    Czy wystarczy podpiąć jeden pin pod gpio a drugi do masy rpi aby liczył impulsy?

    Chyba że źle rozumuje i impulsy z licznika, gdy nie ma napięcia nie pojawiają się? Wtedy na pin gpio musza iść z napięciem, tylko jaka powinna być jego wartość ?
  • Poziom 9  
    Dziękuję za pytanie.

    Podpięcie zacisku 21 do masy oraz 20 do GPIO przyniesie oczekiwany efekt pod warunkiem, że zacisk 20 będzie podpięty poprzez rezystor do napięcia zasilania.

    Dla procesorów AVR należy ustawić port do którego jest podpięty miernik jako INPUT oraz włączyć wewnętrzny rezystor podciągający (niestety nie mam doświadczenia z Rapsberry PI więc nie mogę podać konkretnych komend).

    Jeśli z jakiś względów to nie zadziała to alternatywna droga jest następująca:
    -- zacisk 21 -- do GND
    -- zacisk 20 -- do GPIO
    -- zewnętrzny rezystor podciągający (np. 4k7kohm) jedną końcówką do zacisku 20 a drugim do plusa zasilania RPi.

    Mam nadzieję, że powyższy opis pomoże.

    Życzę udanych doświadczeń z miernikiem. :)
    Maciej
  • Poziom 19  
    Hmmm, czyli jednak nie do końca prawidłowo to rozumiem, skoro do zacisku 21 podpinam masę, a do portu 20 GPIO i zasilanie przez rezystor podpinam też do portu GPIO, więc co będzie liczone przez port GPIO, Zwarcie?

    Gdybym podłączył zasilanie przez rezystor do 21 zacisku to na porcie 20 miałbym sygnał prądowy. Jeżeli dobrze to rozumiem. W odwrotnej wersji czyli twojej, na porcie GPIO mam cały czas zasilanie a co się dzieje kiedy licznik robi impuls, według mojego rozumowania będzie zwarcie do masy. Czy napewno ma tak być?

    Chyba że rzeczywiście źle to rozumiem to proszę poprawcie mnie.

    Pozdrawiam
  • Poziom 9  
    Proszę postępuj zgodnie ze schematem użytkowym, który załączyłem (post #4 21 Lip 2015 21:39). Tam jest przedstawione gotowe rozwiazanie. Zacisk 21 podłączasz do masy, zaś zacisk 20 do GPIO. Stanem aktywnym jest zwarcie pinu GPIO do masy. Następuje to w momencie pojawienia się impulsu (dokładnie w momencie kiedy na ORNO mrugnie dioda).
    Dalsza procedura postępowania jest "standardowa" i wiąże się z konfiguracją i obsługą portu po stronie RPi. W dużym skrócie:
    1) konfigurujesz port GPIO jako WEJSCIE
    2) wykrywasz zbocze opadające na GPIO, niski poziom albo zbocze rosnące w zależności od potrzeb.
    3) piszesz procedure obsługującą zależności czasowe, które wiążą czas pojawiania się kolejnych impulsów z pobieraną mocą.

    Załączam przykład w BASCOM jeśli to pomoże:

    Config Timer1 = Timer , Prescale = 1024 '###, Capture Edge = Rising
    On Timer1 Inc_licznik

    Config Int0 = Falling 'procesor wykrywa pomeny opadania impulsu (=impuls przychodzi z ORNO)
    On Int0 Event 'w przypadku wykrycia impulsu skocz do procedury Event:


    Dim Moc As Word
    Dim Energia As Word
    Dim Licznik As Word , Licznik_1 As Word 'zmienne przechowujące wartość Licznik dla dwóch sąsiednich chwil czasowych
    Dim Flag As Bit
    Dim Dd As Dword , Dd1 As Dword
    Dim Ww As Word
    Dim Wat As Word

    Led Alias Portb.0
    Config Led = Output

    'INI

    Enable Timer1
    Enable Int0
    Enable Interrupts


    'MAIN


    Reset Flag

    Do
    If Flag = 1 Then
    Ww = Licznik - Licznik_1 ' wylicz różnicę czasu
    Dd = Ww 'przekształć warość na Waty
    Dd = 360000 \ Dd
    Dd1 = Dd Mod 10
    Dd = Dd \ 10
    If Dd1 >= 5 Then Incr Dd
    Moc = Dd
    'Moc = 36000 / Ww
    Lcd "P= " ; Moc ; "W"
    Lowerline : Lcd "E= " ; Wat ; "Wh"
    Licznik_1 = Licznik
    Incr Wat

    Reset Led
    Reset Flag

    End If

    Loop


    End 'of program)
    '-------------------------------------------------------------------------------
    Inc_licznik: 'podprogram uruchamiany w przerwaniu co 1/10 sekundy
    Timer1 = Timer1 + 64456 'tak dobrany timer, aby wyzwalanie procedury miało miejsce dokładnie co 1/10 sekundy
    Incr Licznik'wartość licznik stanowi wewnętrzny zegar odmierzający czas między impulsami
    Return

    '-------------------------------------------------------------------------------
    Event:

    Set Flag 'w przypadku wykrycia zbocza opadającego (pojawił się impuls na PGPIO) ustaw flagę
    Waitms 30
    Return
  • Poziom 9  
    Dziękuję autorowi za schemat. Dokładnie tego szukałem - a znaleźć nie jest łatwo. Wyjścia impulsowe w licznikach zagranicznych producentów działają często na zasadzie przekaźnika - tutaj mamy tranzystor - czy ta informacja nie mogłaby się znaleźć w instrukcji? Pozdrawiam.
  • Poziom 2  
    Maciej Rak napisał:
    Proszę postępuj zgodnie ze schematem użytkowym, który załączyłem (post #4 21 Lip 2015 21:39). Tam jest przedstawione gotowe rozwiazanie. Zacisk 21 podłączasz do masy, zaś zacisk 20 do GPIO. Stanem aktywnym jest zwarcie pinu GPIO do masy. Następuje to w momencie pojawienia się impulsu (dokładnie w momencie kiedy na ORNO mrugnie dioda).
    Dalsza procedura postępowania jest "standardowa" i wiąże się z konfiguracją i obsługą portu po stronie RPi. W dużym skrócie:
    1) konfigurujesz port GPIO jako WEJSCIE
    2) wykrywasz zbocze opadające na GPIO, niski poziom albo zbocze rosnące w zależności od potrzeb.
    3) piszesz procedure obsługującą zależności czasowe, które wiążą czas pojawiania się kolejnych impulsów z pobieraną mocą.


    Mam pytanie do autora:
    Czy faktycznie wystarczy dostarczyć napięcie 5V + odpowiedni rezystor, aby prawidłowo odczytywać impulsy? Pytam ze względu na informację zawartą w instrukcji: "napięcie: 12~27V " Docelowo chciałbym skorzystać z platformy Arduino i zintegrować w systemie monitoringu domu (aktualnie problem ten rozwiązuję fotorezystorem, ale chciałbym skorzystać z drugiego sposobu :)).

    W takim wypadku wystarczyłoby skorzystać z 3 pinów IO Arduino UNO: Pin +5V, Pin cyfrowy 2 jako input, Pin GND.