X

[ATmega8][Bascom] - AVT5341 sterownik bramy - 2 skrzydła

haz000 28 Nov 2012 17:28
  • #1 28 Nov 2012 17:28
    haz000
    Level 2  
    Helpful post? (0)
    Witam.

    Mam prośbę do kogoś kto zna Bascom'a lub przerabiał program z kitu AVT5341 do współpracy z drugim skrzydłem bramy.
    Nie znam się na programowaniu a potrzebuję zmodyfikowaną wersję wsadu do procesora.
    Wg autora:
    Quote:
    Modyfikacje
    programu ograniczą się do:
    – zmiany konfiguracji pinów PC0…PC2 z wyjść na wejścia A/C;
    – nadania pinom PD2 i PD3 poziomu niskiego zamiast wysokiego,
    – dodaniu zmiennych, analogicznych do istniejących,
    – zrealizowaniu obsługi dodatkowych dwóch przekaźników,
    – dodaniu odpowiednich opóźnień, zgodnie z potrzebami.


    ...no i problem polega na tym zrealizowaniu obsługi dodatkowych przekaźników.
    Dodatkową modyfikacją jakiej potrzebuje to żeby 1 skrzydło działało niezależnie od drugiego,
    czyli zabezpieczenie przeciążeniowe pierwszego nie wyłączało drugiego.
    Po prostu nie mam krańcówek i wyłączanie silników chce wykonać za
    pomocą tego zabezpieczenia przeciwprzeciążeniowego.

    A to kod programu:
    Code: basic4gl
    Log in, to see the code
  • #2 28 Nov 2012 19:23
    Freddy
    Level 43  
    Helpful post? (0)
    haz000 wrote:
    Witam.

    Mam prośbę do kogoś kto zna Bascom'a lub przerabiał program z kitu AVT5341 do współpracy z drugim skrzydłem bramy.
    Nie znam się na programowaniu a potrzebuję zmodyfikowaną wersję wsadu do procesora.
    Wg autora:
    Quote:
    Modyfikacje
    programu ograniczą się do:
    – zmiany konfiguracji pinów PC0…PC2 z wyjść na wejścia A/C;
    – nadania pinom PD2 i PD3 poziomu niskiego zamiast wysokiego,
    – dodaniu zmiennych, analogicznych do istniejących,
    – zrealizowaniu obsługi dodatkowych dwóch przekaźników,
    – dodaniu odpowiednich opóźnień, zgodnie z potrzebami.


    ...no i problem polega na tym zrealizowaniu obsługi dodatkowych przekaźników.
    Dodatkową modyfikacją jakiej potrzebuje to żeby 1 skrzydło działało niezależnie od drugiego,
    czyli zabezpieczenie przeciążeniowe pierwszego nie wyłączało drugiego.
    Po prostu nie mam krańcówek i wyłączanie silników chce wykonać za
    pomocą tego zabezpieczenia przeciwprzeciążeniowego.
    ...


    Widać od razu Twoje lenistwo w tej kwestii.
    Nie chciało Ci sie nawet przeczytać opisu kitu i liczysz na gotowca.
    Autor wyraźnie napisał do czego i w jakich sytuacjach potrzebne są modyfikacje. !

    Zaproponuj zmiany, a my Cie naprowadzimy i pomożemy usunąć błędy. Tutaj gotowców nie dostaniesz.
  • #3 05 Dec 2012 22:38
    krd1
    Level 2  
    Helpful post? (0)
    Może tak będzie dobrze:
    Code: basic4gl
    Log in, to see the code
  • #4 05 Dec 2012 23:28
    haz000
    Level 2  
    Topic author Helpful post? (0)
    Witam,

    dziękuję za odpowiedź i chęć do pomocy ale temat kontynuowałem już na innym forum i rozwiązałem to w trochę inny sposób. Faktycznie brak gotowca zmusił mnie do tego żeby trochę posiedzieć i popróbować samemu.
    I tak:
    - z kodu usunąłem część odpowiedzialną za autozamykanie
    - z racji braku krańcówek wykasowałem obsługę wykrywania obniżonego napięcia
    - dopisałem sterowanie dodatkowym skrzydłem
    - pozostało do przerobienia załączanie pomiaru ADC tylko na czas pracy siłowników

    Co do kodu wyżej:
    Quote:
    If Otw = 1 And Zam = 1 Then
    Waitms 500
    Start Adc 'uruchomienie wewnętrznego przetwornika A/C
    End If

    to ma byc AND czy może OR?

    Wyszło mi coś takiego:
    Code: basic4gl
    Log in, to see the code


    ...ogólnie działa mniejwięcej jak zakładałem poza tym, że nie zmieniają się opóźnienia skrzydeł (przy otwarciu pierwsze prawe i po 300ms lewe a przy zamykaniu odwrotnie)
  • #5 06 Dec 2012 10:36
    krd1
    Level 2  
    Helpful post? (0)
    Witam. OR zdecydowanie inaczej ADC nie doczeka się uruchomienia.
    Temat mnie zainteresował bo mam zamiar zautomatyzować swoją bramę wjazdową. Poczyniłem pierwsze kroki -zbudowałem siłowniki.Czas na automatykę . AVT5341 powinno spełnić moje oczekiwania i ograniczyć nakład pracy.Brak mi doświadczenia w programowaniu .Modyfikując gotowca uczę się , a niebawem tak jak tobie będzie mi potrzebny działający wsad.
  • #6 09 Dec 2012 17:03
    krd1
    Level 2  
    Helpful post? (0)
    Ma być tak;
    Code: basic4gl
    Log in, to see the code
    [/code]
    Ten kod spisuje się dobrze .Czekam na inne pomysły
  • #7 25 Jun 2013 08:57
    boorys2424
    Level 8  
    Helpful post? (0)
    Witam.
    Odświerzę troszkę temat.
    AVT wypuściło drugą wersję oprogramowania do tego kitu.
    Zawiera ono obsługę jednego i dwóch skrzydeł.
    Wybór dokonywany jest automatycznie poprzez wykrycie obecności przystawki
    (napięcie na rezystorze po pomiarowym).
    Niestety program napisany jest w C, o którym nie mam zielonego pojęcia a chciałbym dopisać do niego blokadę autozamykania.
    Może ktoś pomoże w tej kwestii?

    Zamieszczam kod po poprawieniu, ponieważ oryginał miał błąd w kolejności załączania przekaźników w trybie dwuskrzydłowym (wyszło w testach):

    Code: C
    Log in, to see the code


    Na koniec jeszcze pliki od AVT
  • #8 25 Jun 2013 10:37
    yokoon
    Level 27  
    Helpful post? (0)
    Czy sprawdzałeś błędy w swoim programie ?
    Tak na szybko to:
    Zmienne otw i zam mają taką samą nazwę jak sub katalogi otw: i zam:
    Dłaczego typ zmiennych stosujesz jako Integer?
    Czyżby były też ujemne ?
    Trochę zmieniłem, sprawdź go.

    Code: basic4gl
    Log in, to see the code
  • #9 01 Dec 2013 12:38
    marcinjóźwiak
    Level 10  
    Helpful post? (0)
    witam!
    Pisze do was ponieważ potrzebuję pomocy.
    Zrobiłem ten układ zaprogramowałem ale potrzebuje żeby w mojej bamie działały krańcówki
    wiec wykorzystałem nie używane porty pd4,pd5,pd6 i pd7 jako wejścia .
    I teraz z chwilą gdy brama się zamknie odpowiedni port zostanie zwarty do masy np pind.4 i nastąpi wyłączenie odpowiedniego przekaźnika.
    W bascomie napisałem tak:

    If pind.4 = 0 Then
    Set Pind.0
    End If

    i tu pojawia sie problem ponieważ przekaźnik cyklicznie załącza się i wyłącza
    co może być przyczyną takiego zjawiska?
    Jestem początkującym elektronikiem więc dopiero zaczynam z mikrokontrolerami avr.
    Dodam tylko że listing do bascoma ściągnąłem z elektrody z postu powyżej wiec nie zamieszczałem go tutaj poraz kolejny.
  • #10 02 Dec 2013 01:46
    emarcus
    Level 33  
    Helpful post? (0)
    marcinjóźwiak wrote:
    witam!
    Pisze do was ponieważ potrzebuję pomocy.
    .................
    W bascomie napisałem tak:

    If pind.4 = 0 Then
    Set Pind.0
    End If

    i tu pojawia sie problem ..............



    Nie wiem co i gdzie podłączasz, lecz:

    Set Pind.0

    Wszystkie bity rejestru PIND.(x) są "Read Only" a zatem nie mogą byc zmieniane z poziomu programu. Mogą byc manipulowane zewnętrznymi przełącznikami lub impulsami a następnie odczytywany ich stan logiczny przez uC; tak jak 'pind.4'.
    W tym przypadku jeżeli PORTD.0 jest wyjściem, to poprawny wpis byłby:
    "Set PORTD.0" , lub równowazny: PORTD.0 = 1

    e marcus
  • #11 04 Dec 2013 16:30
    marcinjóźwiak
    Level 10  
    Helpful post? (0)
    Już wiem gdzie jest mój błąd.
    A czy ktoś z was kombinował może z dodaniem krańcówek do tego projektu i chciałby się podzielić listingiem?
    Bo powiem szczerze problem mnie przerasta.....
  • #12 09 Jan 2014 10:42
    leos66
    Level 11  
    Helpful post? (0)
    Cześć!

    Napisałem kod do tego sterownika w Baskom'ie . Program obsługuje opcje krańcówek zrealizowanych na kontaktronach, opcję zakładki bramy dwuskrzydłowej i fotokomórki. Wyrzuciłem z softu wyłączenie od prądu min i wszystko uzależniam od krańcówek. Nie wykrywam też ilości skrzdeł, z założenia są dwa. Po uruchomieniu pojawił się pewien problem. Aby działały krańcówki konieczna okazała się modyfikacja płytki, wyprowadzenie dodatkowych wejść. W układzie testowym zbudowanym na bazie EVBavr04 gdzie programuje procka wszystko śmiga pięknie ale kiedy przekładam procek do płytki AVT program się wysypuje. Myślę, że to może być problem zakłóceń. Czy ktoś miał podobny problem? Jeśli chodzi o kod do sterownika chętnie podzielę się moim softem.
    Może ktoś go przetestuje u siebie lub napisze krytyczne uwagi. Jestem otwarty na konstruktywną krytykę.

    10.01.14

    Witam!
    Chyba znalazłem rozwiązanie, problemu. Program funkcjonuje poprawnie. Problemem okazał się brak rezystorów podciągających 5V dla wszystkich nowo wprowadzonych wejść czyli czytanie krańcówek oraz fotokomórki. Konieczne jest dodanie 5 rezystorów 4,7k pomiędzy wejściami a potencjałem 5V.
    Czyli zgodnie z tym co zawiera kod programu dla wejść PD.4, PD.5, PD.6, PD.7 oraz PB.1
    Jutro zmodernizuję układ i postaram się potwierdzić rozwiązanie.

    Dodano po 8 [minuty]:

    marcinjóźwiak Jeśli do tej pory nie rozwiązałeś problemu to mam nadzieję, że mój projekt będzie dla ciebie pomocny.

    ......................
    Odnośnie problemów z zakłóceniami po przeróbkach płytki sterownika, udało mi sie je wyeliminować. Jak przypuszczałem pomogło dołożenie rezystorów podciągających napięcie 5V na dodanych nowych wejściach czyli krańcówkach i fotokomórce. Myślę, że program można jeszcze modyfikować, zresztą mam już nowe pomysły. Jeśli będą zainteresowani mogę umieścić foto mojej płytki po modyfikacjach oraz schemat.

    ===========================================================
    Poniższy listing zawiera błąd odsyłam do postu z dnia 9 luty 2014 z poprawką.
  • #13 14 Jan 2014 14:08
    mariusz997
    Level 12  
    Helpful post? (0)
    Witam
    Jeśli to nie problem to proszę o zamieszczenie schematu i płytki.
    Z góry dzięki
    Pozdrawiam
    Mariusz
  • #14 14 Jan 2014 21:09
    leos66
    Level 11  
    Helpful post? (0)
    Witam!

    Myślę, że rysowanie całego schematu nie ma sensu. Proponuję pobrać schemat z AVT5341 ja dorzucam tylko fragment z poprawką oraz fotki. Oczywiście cztery wejścia dla krańcówek no i jedno dla fotokonórki jak wynika z kodu. W razie dalszych pytań jestem do dyspozycji.

    [ATmega8][Bascom] - AVT5341 sterownik bramy - 2 skrzydła [ATmega8][Bascom] - AVT5341 sterownik bramy - 2 skrzydła [ATmega8][Bascom] - AVT5341 sterownik bramy - 2 skrzydła
  • #15 09 Feb 2014 21:07
    leos66
    Level 11  
    Helpful post? (+1)
    Witam!

    Jak słusznie zauważył mariusz997 w programie był istotny błąd. Polega on na możliwości ponownego uruchomienia zamykania bramy w czasie działania foto. Dlatego w po naprawie wstawiam listing versję 1.1
  • #16 09 Feb 2014 23:47
    sw224
    Level 10  
    Helpful post? (0)
    Witam nie wiem czy dobrze rozumiem ten typ podłączenia ale jeśli wszystkie kontaktrony i fotokomórka są zasilone i rozwarte od masy to powinny silniki cały czas się kręcić aż do zwarcia kontaktronów. U mnie po naciśnięciu otwierania na chwilę kręci się jeden silnik a po naciśnięciu zamykania drugi czym to może być spowodowane ?
  • #17 10 Feb 2014 19:32
    leos66
    Level 11  
    Helpful post? (0)
    Tak, bez foto będzie działało. Jeśli wejście foto nie zostanie zwarte do masy to sterowanie działa. Pozostaje pytanie co z ochroną osób, samochodu i td. Zawsze należy pomyśleć, że dzieci mają fantazję. Nie mówię tu o jakichś normach bezpieczeństwa ale o elementarnej ostrożności. Radzę więc jednak zabezpieczyć sterowanie choćby za pomocą bariery laserowej za parę złotych też z AVT.

    Dodano po 8 [minuty]:

    sw224 wrote:
    U mnie po naciśnięciu otwierania na chwilę kręci się jeden silnik a po naciśnięciu zamykania drugi czym to może być spowodowane ?


    A czy wejścia od krańcówek są podciągnięte przez opornik do +5V ?.
    Zanim to zrobiłem też przekaźniki zachowywały się podobnie.
    Jeśli tak to proszę o więcej informacji, może uda się coś rozwikłać.
  • #18 10 Feb 2014 20:00
    sw224
    Level 10  
    Helpful post? (0)
    Tak wszystko podłączone jak na schemacie przez oporniki 4,7 kΩ co prawda bez kontaktronów i pinów w płytce ale to chyba nie ma większego wpływu próbowałem też startować ze zwartymi jednymi i drugimi wejściami czyli jak by była brama zamknięta lub otwarta i cały czas to samo jedynie fotokomórka jeśli zwarta to wyłącza układ.
  • #19 11 Feb 2014 01:22
    leos66
    Level 11  
    Helpful post? (0)
    Ja zacząłbym od sprawdzenia poziomu napięcia na wejściach procesora D4,5,6,7.
    Powinny być na poziomie 4-5V przy otwartych stykach kontaktronów.
    Może dla pewności wgrać program z wyremowanym obszarem ograniczenia prądowego (usunąć wiersze) czyli zostawić:
    ...
    Do
    If Foto = 0 then
    ...
  • #20 11 Feb 2014 10:19
    sw224
    Level 10  
    Helpful post? (0)
    Witam ponownie napięcia na wejściach procesora D4,5,6,7 prawidłowe a po modyfikacji programu silniki chodzą cały czas ale naprzemiennie czyli jak włączę otwieranie idzie jeden silnik a jak zamykanie drugi krańcówki działają tak jak powinny fotokomórka też. Czyli ogólnie tak samo jak w oryginalnym programie tylko przeciążenie ich nie rozłącza .
    Na prośbę Autora dla bezpieczeństwa kod usuwam .
  • #21 11 Feb 2014 22:16
    sw224
    Level 10  
    Helpful post? (0)
    a więc po kolejnych kilku próbach okazało się że bez zabezpieczenia przeciążeniowego startują dwa silniki tylko straszne długie opóźnienie jest ustawione ale działa wszystko otwieranie zamykanie krańcówki i fotokomórka . Ale z wykrywaniem przeciążenia zaraz wyłącza pierwszy silnik i drugi już nie zdąży wystartować regulacja potencjometrami nic nie daje moje pytanie czy w programie idzie zwiększyć próg czułości przeciążenia bo próbuje ale nie wychodzi mi to za bardzo .
  • #22 12 Feb 2014 01:45
    leos66
    Level 11  
    Helpful post? (0)
    Witam!

    Odnośnie czasu - proponuję zmienną czas ustawić doświadczalnie (jest to ilość przejść programu w pętli) zgodnie z wymaganiami bezpiecznego otwierania i zamykania zakładki. U mnie docelowo wyszło około 50. Pierwotna wartość 200 miała służyć bezpieczeństwu aby nikt z forumowiczów nie wyrwał zakładki.

    Odnośnie prądu -jeśli dobrze rozumiałem mówiąc o zwiększaniu progu czułości masz na myśli znieczulenie? Myślę, że powinieneś zacząć od pomiarów. Podaj proszę wartości napięć podczas pracy siłowników dla C0,2,4,5 oraz prąd w obwodzie każdego siłownika. Dla bezpieczeństwa nieużywane wejścia C3 i C1 skręć na potencjometrach blisko 5V. No i napisz jak wyszło...

    PS. Mam też prośbę abyś albo dobrze opisał albo usunął listing bez zabezpieczeń prądowych na wypadek "żeby kogoś drzwi nie ścisły"
    Pozdrawiam!
  • #23 12 Feb 2014 15:20
    sw224
    Level 10  
    Helpful post? (0)
    Witam oczywiście chodziło o znieczulenie ,kod usunąłem żeby kogoś drzwi nie ścisły . Wracając do napięć to o ile dobrze rozumuje chodzi o napięcia na procesorze , tylko chwilowo do testów mam podpięte dwa różne silniki docelowo będą takie jak podpięty pod płytę główną a napięcia są następujące C0-0,12v;C2-0,28v;C4-0,05v;C5-0,7v;prąd w obwodzie silnika płyty głównej 6A a przystawki ten który będzie zmieniony 1,9A.
    Pozdrawiam
  • #24 12 Feb 2014 18:38
    leos66
    Level 11  
    Helpful post? (0)
    Witam!
    Trzeba zadbać, żeby wartości C4 była > C5 a C2>C0. Inny problem to brak w programie znieczulenia na impuls prądowy w momencie startu silnika, mogący sięgać nawet 10xI. Jeśli okaże się, że problem wynika z prądu rozruchowego to posiedzę nad tym i wrzucę modyfikację softu.
  • #25 12 Feb 2014 20:41
    sw224
    Level 10  
    Helpful post? (0)
    Witam to jedne by się zgadzały z drugimi gorzej. Podczas testów właśnie przy starcie zawsze wyłączało zabezpieczenie sinik nigdy za bardzo nie zdążył się rozkręcić a już gowyłączyło tak że chyba będzie to wina tego właśnie impulsu .

    Witam ponownie mam już drugi silnik i na nim pobór jest 4 A .Przydało by się jeszcze wyłączanie napędu po ponownym naciśnięciu tego samego przycisku bo przynajmniej u mnie jak włączy się napęd to jedynie idzie go puścić w drugą stronę ale zatrzymać bez krańcówek albo fotokomórki się nie da.
    Pozdrawiam.
  • #26 25 Feb 2014 19:37
    leos66
    Level 11  
    Helpful post? (0)
    Witam!

    Kolejna modyfikacja softu ze znieczuleniem kontroli prądu na 3 cykle programu po starcie.

    Odnośnie zatrzymania to oczywiście sprawdzę ale obsługa jednoczesności czyli wciśnięcie otwierania po zamykaniu lub odwrotnie powinna zatrzymać cykl.
    Proszę to przetestować i ewentualnie zgłosić uwagi. Postaram się je uwzględnić w kolejnej wersji jeśli będzie konieczna.
  • #27 26 Feb 2014 15:15
    sw224
    Level 10  
    Helpful post? (0)
    Witam oczywiście przetestuję dziękuje za modyfikację.
    Pozdrawiam
  • #28 01 Mar 2014 19:36
    leos66
    Level 11  
    Helpful post? (0)
    Witam!
    Program powinien przerwać zamykanie/otwieranie w przypadku hazardu sterowania i tak się stanie. Niedoskonałość polega na tym, że prawdopodobnie u kolegi sygnały inicjujące trwają na tyle długo, że nie tylko wyłączają jeden kierunek ale za chwilę załączają przeciwny. Jeśli impuls jest krótszy niż 1s zjawisko nie występuje. Najprostszym rozwiązaniem będzie dopisanie na końcu procedury Res1: polecenia Waitms 1200

    Code: basic4gl
    Log in, to see the code

    Res1:
    Reset Pkzl
    Reset Pkol
    Reset Pkop
    Reset Pkzp
    Reset Zam
    Reset Otw
    Reset Jazda_o
    Reset Jazda_z
    Czas = 0
    Lc_p = 0
    Lc_l = 0
    Waitms 1200
    Code: basic4gl
    Log in, to see the code


    Nie jest to do końca eleganckie ale powinno działać. Jak znajdę chwilę czasu to napiszę coś mądrzejszego.
  • #29 02 Mar 2014 11:36
    sw224
    Level 10  
    Helpful post? (0)
    Witam po dodaniu Waitms 1200 zadziałało zatrzymuje pracę po naciśnięciu przeciwnego kierunku . Niestety przeciążenie dalej wyłącza tylko po nieco dłuższym czasie ale i tak nie zdąży włączyć drugiego silnika i już stop , ja będę miał docelowo zabezpieczenie przeciążeniowe mechaniczne ale co dwa to nie jedno.
    Pozdrawiam
  • #30 02 Mar 2014 22:15
    leos66
    Level 11  
    Helpful post? (0)
    Na chwilę obecną mam propozycję (aby zwiększyć, ale tylko w celch testowych) ilość cykli prgoramu znieczulonych na prąd i spradzić w tym czasie napięcia na pinach pomiaru prądu. No i na tej podstawie dokonać regulacji ograniczeń na potencjometrach. Następnie zmniejszać ilość cykli znieczulenia. Może w kolegi przypadku 3 cykle to zbyt mało. Radzę jadnak nie przesadzać bo to w końcu ma być zabezpieczenie. Czekam na pomyślne wiadomości.
  Search 4 million + Products
Browse Products