Elektroda.pl
Elektroda.pl
X
Deimic Smart Home
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Zdalne sterowanie roletami - Nie wiem jak do programu podpiąć wyłączniki końcowe

Szybki946 29 Gru 2016 09:40 963 17
  • #1 29 Gru 2016 09:40
    Szybki946
    Poziom 5  

    Witam planuje zrobić program do podnoszenia i opuszczania rolet.Program prawie zrobiłem tylko mam problem bo nie wiem jak do programu wstawić wyłączniki końcowe(krańcowy)


    Nie wiem jak go też podłączyć fizycznie do arduino z góry dziękuje za pomoc.


    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 17
  • Deimic Smart Home
  • #2 29 Gru 2016 13:02
    pawel1029384756
    Poziom 20  

    Podłącz te krańcówki tak samo jak zwykły przycisk, rezystor podciągający do plusa i już mamy. Rozwarty, mamy 1, zwarty mamy 0. Tylko pamiętaj o tym, że krańcówki nają dwa styki, jeden zwierany wciśnięciem, a drugi rozwierany, no i oczywiści styk wspólny.
    Co do programu to zwykła obsługa wejścia, można na przerwaniach, dla pewności szybkiego zadziałania.

    0
  • #3 29 Gru 2016 13:04
    scotch
    Poziom 27  

    W większości obiektów z jakimi się spotkałem , do rolet jest zamontowany moduł :
    http://sterowanierolet.pl/pliki3/rcs5.pdf połączony dodatkowo ze stacją pogodową . Co do wyłączania w pozycji skrajnej , to roleta posiada tzw . elektromechaniczne wyłączniki krańcowe .W twoim wypadku sterowanie dwoma przekaźnikami góra - dół ) krańcowe położenia wyłączenie w rolecie .

    0
  • Deimic Smart Home
  • #4 29 Gru 2016 13:12
    Szybki946
    Poziom 5  

    Tak myślałem żeby podłączyć.Widziałem podobny temat i gość fachowo podłączył używając wyjścia input w arduino

    0
  • #5 29 Gru 2016 13:23
    scotch
    Poziom 27  

    Kolego Szybki946 .Takich sterowników używa się w małych jak i bardzo rozbudowanych systemach . Z tego co pamięć mnie nie myli można nimi sterować również okna i drzwi wyposażone w siłowniki elektryczne . Po poprawnym montażu są bezproblemowe . Jako ciekawostkę dodam iż w dużych obiektach mogą być stosowane w razie wystąpienia pożaru w celu otwarcia lub zamknięcia okien( oczywiście wówczas sterowanie przejmuje Centrala SSP jako sterowanie nadrzędne ) .

    0
  • #7 29 Gru 2016 14:05
    scotch
    Poziom 27  

    Kolego podałem przykład jak to się robi . Skoro chcesz sam zaprojektować to zwrócę Ci uwagę na parę elementów :
    1. Upewnij się czy roleta posiada fabryczne krańcówki
    2. Co się dzieje z twoim układem w chwili zablokowania rolety ( czy układ ją wykrywa jako przeciążenie , czy dalej idzie do oporu )
    Wbrew pozorom to są ważne pytania . Z biegiem czasu będziesz chciał zastosować układ do innych rozwiązań . Przy np. pracy dwóch siłowników musisz je monitorować oba . Osobiście widziałem rozwalone okno dachowe sterowane przez 2 siłowniki w którym jeden zawiódł . Okazało się , że wspomniana prze ze mnie płytka była zamontowana niepoprawnie . Uwierz mi "cudownie " wyglądało aluminiowe okno ( 1,5 m *3 m ) skręcone w ósemkę

    1
  • #8 29 Gru 2016 22:37
    Szybki946
    Poziom 5  

    To ma być proste otwieranie rolet wewnetrznych rolety przerobie sam, juz silniczki zamówiłem do nie jest skomplikowane. Program na androida juz zrobiłem do sterowania. Mogę to zrobić czasowo czyli obliczyć czas podnoszenia rolety ale chciałem zrobić że jak roleta się opuści to wyłączy krańcowy np. Dolny zatrzyma ja. Po prostu nie wiem jak mam to napisać w arduino.

    0
  • #9 29 Gru 2016 23:02
    pawel1029384756
    Poziom 20  

    Polecał bym zmierzyć czasowo ile trwa zamknięcie i otwarcie i jeżeli po tym czasie krańcówka nie wykryje pozycji skrajnej to wyłączyć silnik. Dobrym rozwiązaniem był by też bezpiecznik w szereg z silnikiem, taki na maksymalny prąd silnika, ale zwłoczny i w tedy jak roleta się zaklinuje, to po prostu pójdzie bezpiecznik a nie co innego.

    0
  • #10 30 Gru 2016 06:01
    emarcus
    Poziom 35  

    Szybki946 napisał:
    . Mogę to zrobić czasowo czyli obliczyć czas podnoszenia rolety ale chciałem zrobić że jak roleta się opuści to wyłączy krańcowy np. Dolny zatrzyma ja. Po prostu nie wiem jak mam to napisać w arduino.


    Nie możesz tego robić czasowo.....
    Jeżeli podnoszenie i opuszczanie będzie sterowane zawsze z terminal monitora to:
    Powiedzmy że dla rolety1 dolna krańcówka ma wejście podciagane i oznaczone 'Kr_1d'
    Dopisz więc w programie
    if (Kr_1d == 0){
    state =’2’;
    }
    -to powinno wyłączyć silnik1, ale prawdopodobnie spowoduje problem z jego załączeniem w kierunku podnoszenia, bo ciągle siedzisz na wyłączniku, który zmieni ci state. Wyjściem z tego ‘zamka’ może być wprowadzenie małej zwłoki ‘delay’ na czas zjechania z wyłącznika.
    Zaraz po instrukcji:
    if (state == '1') {
    digitalWrite(S1_G, HIGH);} //Silnik 1 podnoszenie
    //dodaj
    delay(50); //być może to wystarczy, albo dobierz doświadczalnie.

    Podobnie daj dla pozostałych 2-ch silników; state = odpowiednio 5 i 8
    Jezeli dodasz także krańcówki górne, to będzie wymagana dalsza modyfikacja programu, nie koniecznie w tym samym stylu.

    e marcus

    0
  • #11 30 Gru 2016 06:35
    Szybki946
    Poziom 5  

    Dobra może zacznę o co mi chodzi przykład dla jednego wylacznika


    Kod: c
    Zaloguj się, aby zobaczyć kod

    Nie wiem czy to zadziała zna się ktoś na kodzie do arduino.
    Tak wygląda ten wylacznik:

    Zdalne sterowanie roletami - Nie wiem jak do programu podpiąć wyłączniki końcowe

    0
  • #12 30 Gru 2016 09:50
    BlueDraco
    Specjalista - Mikrokontrolery

    Proponuję zacząć od zapomnienia o czymś, co nazywa się"pętlą główną". Zaczynamy od przerwania timera zgłaszanego np. 100 razy na sekundę, w którym realizujemy prosty automat dla każdej rolety. Zaczynamy od okreólenia stanów. Prawdopodobnie będą to:
    - zatrzymanie w pozycji dolnej
    - zatrzymanie w pozycji górnej
    - zatrzymanie w pozycji nieokreślonej
    - przesuwanie w górę
    - przesuwanie w dół
    - awaria

    Natępnie zastanawiamy się, jakie zdrzenia mogą wystąpić w każdym stanie i na jaki stan natępuje zmiana przy wystąpieniu danego zdarzenia. Np dla przesuwania w dół:
    - osiągnięto pozycję dolną -> stop, zatrzymanie w pozycji dolnej
    - przyszło polecenie inne niż "w dół" - stop, zatrzymanie w pozycji nieokreślonej
    - przekroczony czas maksymalny - stop, awaria

    I tak dla każdego stanu.

    0
  • #13 30 Gru 2016 21:44
    Szybki946
    Poziom 5  

    Ja zapytałem tylko o kod i tego oczekuje

    0
  • #14 31 Gru 2016 11:25
    BlueDraco
    Specjalista - Mikrokontrolery

    A ile płacisz za ten kod?

    Do zlecania projektów służy inny dział na tym forum. Tutaj udzielamy porad technicznych - dajemy wędkę, a nie rybę.

    0
  • Pomocny post
    #15 31 Gru 2016 12:53
    rs6000
    Poziom 27  

    Krańcówki mają dwie możliwości podpięcia, NC - normaly closed i NO - normaly open, dlatego masz trzy wyjścia z krańcówki, jeden pin jest wspólny a dwa pozostałe to albo NC lub NO. Proponuje skonfigurowąć jako NO i ten wspólny podpiąć do GND arduino a drugi od NO do jakiegoś pinu arduino, np. 2, i wtedy w setup musisz zadeklarować rodzaj pinu :

    Kod: c
    Zaloguj się, aby zobaczyć kod

    W pętli loop musisz czytać stan tego pinu, a np. :
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Pozdr

    0
  • #16 31 Gru 2016 14:17
    Szybki946
    Poziom 5  

    BlueDraco napisał:
    A ile płacisz za ten kod?

    Do zlecania projektów służy inny dział na tym forum. Tutaj udzielamy porad technicznych - dajemy wędkę, a nie rybę.


    Jednak gość poniżej okazał się bardziej pomocny. Podchodzisz jak ci w rządzie.

    0
  • #17 31 Gru 2016 17:25
    BlueDraco
    Specjalista - Mikrokontrolery

    "Gość poniżej" zaproponował rozwiązanie, które w ogólnym przypadku nie działa, bo Twoje urządzenie musi być ciągle gotowe do reakcji na kilka możliwych zdarzeń, z których jedno nie wyklucza drugiego, np. nadejście polecenie, osiągnięcie pozycji końcowej, przekroczenie czasu).

    0
  • #18 31 Gru 2016 17:41
    rs6000
    Poziom 27  

    Kolego, to jest tylko przykład obsługi krańcówki, widzisz gdzieś abym napisał, że to gotowy program ? no proszę cię.

    rs6000 napisał:
    W pętli loop musisz czytać stan tego pinu, a np. :

    Słowo "np." jest tu kluczem ;)
    Kolega zapytał o podłączenie krańcówki wiec napisałem mu jak to zrobić, więc nie rób ze mnie proszę imbecyla ;) oczywistym jest, że program wymaga obsługi większej ilości wątków i tu ameryki nie odkryłeś ;)

    Pozdr

    0