Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Satel Micra - podłączenie licznika rowerowego jako czujnika zaniku obrotów

karolen1 18 Apr 2020 10:35 576 12
Optex
  • #1
    karolen1
    Level 11  
    Witam
    Potrzebował bym podłączyć licznik rowerowy, jako czujnik zaniku obrotów. Próbował ktoś lub wie, jak to podłączyć, żeby po zaniku obrotów otrzymać wiadomość. Z góry dzięki za pomoc
  • Optex
  • Helpful post
    #2
    Kozakowski
    Level 17  
    Akurat Micra w tym temacie będzie chyba trudna do współpracy. Jeżeli znajdziesz lub zbudujesz moduł który będzie zamieniał obroty na napięcie to w trybie modułu komunikacyjnego możesz ustawić napięcie poniżej którego Micra uzna to za alarm. Najprościej to w każdym innym alarmie podłączyć kontaktron pod wejście i ustawić "max czas braku naruszenia"
  • Helpful post
    #3
    bhtom
    Level 38  
    Witam,

    karolen1 wrote:
    Potrzebował bym podłączyć licznik rowerowy, jako czujnik zaniku obrotów


    Kompletny licznik, czy tylko czujnik z licznika? Jeśli tylko czujnik, który z reguły jest kontaktronem, to spróbuj normalnie podłączyć pod wejście i zmieniając czułość linii i parametr "Powrót" potestuj czy zadziała.
    Najlepiej byłoby podłączyć jeden kontaktron pod dwa wejścia modułu (pierwsze jako NO, a drugie jako NC) aby zabezpieczyć się przed przypadkiem zatrzymania się magnesu akurat na czujniku.
    Oczywiście wszystko zależy od częstotliwości impulsów, jeśli będzie zbyt duża, to moduł nie będzie wykrywał zmian na wejściu. W takim wypadku potrzebny będzie np. przekaźnik programowalny Logo! Siemensa z wejściami licznikowymi, a Micra tylko do realizacji powiadamiania.

    Pozdrawiam.
  • #4
    karolen1
    Level 11  
    Jest to kontaktron z licznikiem rowerowym który pokazuje obroty bębna .Obroty na skrzyni gdzie jest kontaktron to ok 60 obrotów na minutę 😉więc chyba najrozsądniej będzie podłączyć pod 2 wejścia
  • Optex
  • #6
    dzolo35
    Level 21  
    Kolego.
    Wystarczy napisać prosty program na Arduino sprawdzający zmianę stanu wejścia , jeśli stan wejścia (u Ciebie kontaktron) nie zmieni się w czasie np: 60s. , To wysteruj dane wyjście na jakiś czas , tym wyjściem przez przekaźnik , sterujesz dane wejście w micrze , zaprogramowane aby wysłać SMS z danym tekstem .
  • #8
    karolen1
    Level 11  
    Będę miał chwilę to sprawdzę .Mam połączoną krańcówkę oraz 2 czujniki optyczne i fajnie to działa .Nie chciał bym jeszcze tam Arduino pakować 😉jeszcze dochodzi dodatkowy pobór prądu
  • Helpful post
    #9
    dzolo35
    Level 21  
    Jeśli masz licznik , w którym po zaniku zliczania , po jakimś czasie gaśnie wyświetlacz (cyfry) , i Tobie będzie pasować tak duża zwłoka czasowa , to można to wykorzystać .
    Na mikrze też można spróbować , dając dwa kontaktrony ułożone naprzeciwko siebie , i podłączyć osobno pod dwa wejścia cyfrowe , oraz wykorzystać funkcje , czas opóźnienia naruszenia wejścia .
  • #10
    karolen1
    Level 11  
    dzolo35 wrote:
    Jeśli masz licznik , w którym po zaniku zliczania , po jakimś czasie gaśnie wyświetlacz (cyfry) , i Tobie będzie pasować tak duża zwłoka czasowa , to można to wykorzystać .
    Na mikrze też można spróbować , dając dwa kontaktrony ułożone naprzeciwko siebie , i podłączyć osobno pod dwa wejścia cyfrowe , oraz wykorzystać funkcje , czas opóźnienia naruszenia wejścia .

    Właśnie spróbuje podłączyć przez 2 wejścia cyfrowe choć wolał bym przez 1. Co do licznika muszę go rozebrać i zobaczyć ponieważ wyświetla on godzinę jeśli nie ma aktywności
  • #12
    karolen1
    Level 11  
    dzolo35 wrote:
    Jeśli masz licznik , w którym po zaniku zliczania , po jakimś czasie gaśnie wyświetlacz (cyfry) , i Tobie będzie pasować tak duża zwłoka czasowa , to można to wykorzystać .
    Na mikrze też można spróbować , dając dwa kontaktrony ułożone naprzeciwko siebie , i podłączyć osobno pod dwa wejścia cyfrowe , oraz wykorzystać funkcje , czas opóźnienia naruszenia wejścia .

    Zrobiłem dokładnie tak jak napisałeś lecz chce przełożyć czujnik w jeszcze jedno miejsce i mam ustawioną czułość na na minimalna 5.2 s lecz jest mi potrzebne ok 8s między impulsami .
  • #13
    dzolo35
    Level 21  
    Kolego.
    Jeśli podłączasz to pod micre , to zapewne masz już przy niej zasilanie 12 v . które możesz wykorzystać do zasilania innego układu , np: można zbudować dwa układy opóżniające załączenie przekażnika , np kit NE 085( układ opóżniania zał. głośników , prosty schemat w sieci ) i podłączając każdy układ z osobna , zasilając go 12 v. przez osobny kontaktron w typie NC , a obwód przekażnika tych układów , podpinasz pod wej. micry .
    Drugim sposobem jest montaż przy micrze np: arduino Uno (Jej zasilanie bierzesz albo 230v i przez zasilacz na 12 v , lub bezpośrednio z micry12v ) i wgranie do niego kodu , który zamieszczam poniżej , wystarczy jeden kontaktron i masz też pełną kontrole , nad modyfikacją czasów .


    /* układ który będzie liczył impulsy (obroty silnika)
    i jeśli impulsów nie będzie to na jednym z wyjść pojawi
    się ostrzezenie(stan wysoki), a potem alarm ( stan wysoki).*/

    /*
    WEJ. 2 - kontaktron przez typ INPUT_PULLUP
    WYJ. 4 - podłączony buzzer prealarm.
    WYJ. 5 - podłączony przekaznik zwierajacy styki wejscia w micrze (ALARM)
    WYJ. 7 - LED stan O.K. */

    // Odczyt obrotów (RPM)
    int guzik = 0; //Utworzenie zmiennej RPM (obroty)
    unsigned long ostatniemillis = 0;
    unsigned long ostatniemillis2 = 0;

    void guziksilnika()
    { guzik++;}

    void setup() {
    pinMode(2, INPUT_PULLUP); // kontaktron
    pinMode(4,OUTPUT); //buzzer
    pinMode(5,OUTPUT); //przekażnik arduino
    pinMode(7,OUTPUT); //dioda LED


    attachInterrupt(0, guziksilnika, CHANGE);//wej. 2,change- reaguje na zmiane stanu guzika
    }

    void loop()

    {
    {
    if (millis() - ostatniemillis >= 2000) // czas w którym mają być dane impulsy
    {
    ostatniemillis = millis();
    if ((guzik== 0))//jesli silnik stoi
    {
    digitalWrite(4, HIGH);
    }
    else
    {
    digitalWrite(4, LOW);
    }

    if ((guzik>= 1) )//jesli silnik chodzi

    {
    digitalWrite(7, HIGH);
    digitalWrite(5, LOW);

    ostatniemillis2 = 0;
    ostatniemillis2 = millis();
    }
    else
    {
    digitalWrite(7, LOW);
    }

    guzik=0;
    }
    }
    /////--------------------------------------------------------
    /// czas 13000 można sobie dowolnie zmieniać i obliczyć zał. 5
    {
    if (millis() - ostatniemillis2 >= 13000) //13000-2000=11000 ms.(11s.) po tm czasie załączy się alarm
    {
    ostatniemillis2 = millis();
    if ((guzik== 0) )
    {
    digitalWrite(5, HIGH);
    }
    else
    {
    digitalWrite(5, LOW);
    }
    }
    }
    }