mikroprocesorowy sterownik bramy wjazdowej


Zrobiłem kiedyś taki sterownik na układach cyfrowych,typowy licznik do czterech [CD4013]---OTWIERANIE--STOP--ZAMYKANIE--STOP . Układ działał poprawnie kilka lat. Schemat tego układu znalazłem chyba na elektrodzie.Dorobiłem do niego tylko układ oszczędnościowy. To znaczy radio było zasilane z małego trafka ,a główny zasilacz załączała czasówka po sygnale OTWIERANIE na czas otwarcia i zamknięcia bramy. Płytka duża , elementuw bez liku jednym słowem staroć.Chciałbym zrobić coś nowszego np.Atmedze8 lub Attiny2313 .Procesorami zajmuję się od niedawna--nie jestem dobry w te klocki ,wiec proszę o pomoc. Czy jest Ktoś chętny wykonaniu tego projektu .




Portret użytkownika mirley

Re: Brama

Napisz jak dokładnie działa ten twój układ, albo jak chcesz żeby działał :) Jakie czujniku posiada? itp. Musisz udzielić więcej informacji jak chcesz pomocy.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika matrix

Re: Brama

ja mam gotowy soft do sterowania bramy na procku attiny2313, tylko..... jeszcze nie jest sprawdzony. w teorii i w symulacji działał. jak będzie zapotrzebowanie to wrzucę soft.

Portret użytkownika daro69

brama

Witam nie chciałbym zbytnio komplikować układu,myślę że wystarczyło by trzy wyjścia--dwa sterowanie silnikiem prawo/lewo i jedno wspomniany wcześniej układ oszczędnościowy.W starym układzie posiadam dwa czujniki kontaktronowe które informują układ o położeniu bramy i były czujnikami krańcowymi.Bramę można otworzyć z pilota ,dodatkowo mam w barażu wyłącznik dzwonkowy.stary układ posiadał także barierę na podczerwień z której sygnał był podawany na jedno wejście,po zadziałaniu brama zatrzymywała się.Następne naciśnięcie pilota brama się otwierała,można by było dorobić aby bramu po zadziałaniu bariery zatrzymała się a zaraz potem otworzyła .Zabezpieczenie przeciążeniowe silnika[24v]zwykły komparator napięcia który kontrolował prąd silnika .Jeśli można chciałbym dołożyć automatyczne zamykanie bramy po jakimś czasie najlepiej tylko w nocy.

Portret użytkownika gosc

RE:brama

jak byś mógł to wrzuć soft i kawałek schematu

Portret użytkownika gosc

brama

przylaczam sie do prosby poprzednika. pozdrawiam

Portret użytkownika gosc

Brama

Ciekawy projekt jestem zainteresowany pozdrawiam

Portret użytkownika matrix

Re: Brama

kiedyś popełniłem coś takiego na attiny2313. jak pisałem wcześniej, soft działał tylko w teorii. trzeba by dorobić całą elektronikę. z tego co pamiętam to sterownik miał takie funkcje jak:
- otwieranie bramy
- zamykanie bramy
- zatrzymanie otwierania/zamykania bramy w dowolnej chwili (funkcja tzw furtki)
- zabezpieczenie przed pojawieniem się auta w bramie (lub innego obiektu)
- jak w bramie podczas zamykania pojawi się obiekt to brama zatrzymywała się i było możliwe tylko jej otwarcie.

pozornie kod wydaje się skomplikowany, ale wcale tak nie jest. wystarczy spojrzeć że podzielony jest na sekcje typu pętla główna, podprogramy obsługi otwierania, zamykania, zatrzymywania na życzenie i obsługa czujki zabezpieczającej.

nie pamiętam co jeszcze było z funkcji? wiem że jedna połówka zawsze zamykała i otwierała się wcześniej niż druga. i jeszcze raz mówię, napisałem to w czasach kiedy mój bascom był na poziomie raczkowania. teraz za dobrze też go nie znam, ale znacznie lepiej niż wtedy co to pisałem. jest tu kilka błędów które trzeba by poprawić. oto kod.

'====================================
'=== sterownik bramy na tiny 2313 ===
'=========== by matrix ==============
'====================================
 
'sterownik bramy na tiny 2313
$regfile = "2313def.dat"
$crystal = 8000000
dim x as byte
dim wspza as Bit                   'zmienne pomocnicze zapisu stanu silnikow
dim wslza as Bit
dim wspot as Bit
dim wslot as Bit
config INT0 = FALLING
config int1 = falling
Enable Interrupts
Enable Int0
enable INT1
on int0 czujka
on int1 brama_stop
 
Config pind.0 = input
config pind.1 = input
config pind.2 = input
config pind.3 = input
config pinb.2 = input
config pinb.3 = input
config pinb.6 = input
config pinb.7 = input
config portb.0 = output
config portb.1 = output
config portb.4 = output
config portb.5 = output
 
spot Alias portb.0                 'silnik prawy otwiera
spza Alias portb.1                 'silnik prawy zamykla
cpot Alias pinb.2                  'wejscie czujka prawa otwarta brama
cpza Alias pinb.3                  'wejscie czujka prawa zamknieta brama
slot Alias portb.4                 'silnik lewy otwiera
slza Alias portb.5                 'silnik lewy zamyka
clot Alias pinb.6                  'wejscie czujka prawa otwarta brama
clza Alias pinb.7                  'wejscie czujka prawa zamknieta brama
licznik alias pind.0               'wejscie z modulu radiowego
czujnik alias pind.1               'wejscie czujki zabezpieczajacej
portb = 255
portd = 255
 
'licznik = 1
'czujnik = 1
'set pinb.2
'set pinb.3
'set pinb.6
'set pinb.7
x = 0                              'zmienna pomocnicza ustawiona na zero
gosub zamykam
 
 
    do
      if licznik = 0 then
        waitms 50
        gosub wybor
      end if
    loop
 
wybor:                             'zlicza ile razy nacisnieto przycisk na pilocie
incr x
         select case x
         case 1:                   'jesli raz to wezwij program do zamykania bramy
          gosub otwieram
         case 2:                   'jesli drugi raz nacisnieto to zatrzymuje brame
          gosub stopuje
         case 3:                   'jesli nacisnieto trzeci raz to wzywam podprogram zamykania beamy
          gosub zamykam
         case 4:                   'jesli przycisk nacisniety poraz czwarty to zatrzymuje brame
          set spza
          set slza
          x = 0
         end select
return
 
 
otwieram:                          'poprogram otwierania bramy
set slza
set spza
 
do
 if clot = 0 then                  'sprawdzam czy lewa połowa bramy otworzyla sie
  set slot                         'wylaczam otwieranie lewej polowy
   else
  set slza                         'w przeciwnym razie zalaczam go
 end if
 if cpot = 0 then                  'sprawdzam czy prawa polowa otworzyla sie
  set spot                         'i wylaczam otwieranie prawej polowy
   else
  wait 1
  reset spot                       'w przeciwnym razie zalaczam otwieranie
 end if
 if clot = 0 and cpot = 0 then     'jesli obie polowy bramy otworzyly sie to
   set slot                        'wylaczam silniki otwierania
   set spot
   incr x
   exit do                         'wychodze z petli
 end if
 if licznik = 0 then               'jesli nacisnieto przycisk nr1 na pilocie
  gosub wybor                      'licz ile razy?
  exit do
 end if
loop
return
 
 
zamykam:                           'podprogram zamykania bramy
set slot
set spot
 
do
 if clza = 0 then                  'sprawdzam czy lewa połowa bramy zamknela sie
  set slza                         'wylaczam zamykanie lewej polowy
   else
  reset slza                       'w przeciwnym razie zalaczamgo
 end if
 if cpza = 0 then                  'sprawdzam czy prawa polowa zamknela sie
  set spza                         'i wylaczam zamykanie prawej polowy
   else
  wait 1
  reset spza                       'w przeciwnym razie zalaczam zamykanie
 end if
 if clza = 0 then                  'jesli obie polowy bramy zamknely sie to
  if cpza = 0 then
   set slza                        'ustawiam czujki zamknietej bramy do odczytu
   set spza
   exit do                         'i wychodze z petli
  end if
 end if
 if licznik = 0 then               'jesli nacisnieto przycisk nr1 na pilocie
  gosub wybor                      'licz ile razy?
  exit do
 end if
loop
x = 0
return
 
 
 
stopuje:                           'podprogram zatrzymywania silnikow
waitms 500
if slot = 0 then                   'sprawdzam czy silnik lewej polowy dziala i jesli tak
 set slot                          'to zatrzymuje go
 waitms 500
end if
if spot = 0 then                   'i tak kolejno sprawdzam wszystkie silniki
 set spot
 waitms 500
end if
if slza = 0 then
 set slza
 waitms 500
end if
if spza = 0 then
 set spza
 waitms 500
end if
set licznik
return
 
brama_stop:                        'podprogram zatrzymywania bramy na zyczenie
set licznik
wspza = spza                       'zapamietuje stany poszczegolnych silnikow
wslza = slza
wslot = slot
wspot = spot
 if spza = 0 then                  'jesli silnik prawej polowy zamyka sie
  set spza                         'to go zatrzymuje
 end if
 if slza = 0 then                  'jesli silnik lewej polowy zamyka sie
  set slza                         'to zatrzymuje go
 end if
 if slot = 0 then                  'jesli silnik lewej polowy otwiera sie
  set slot                         'to zatrzymuje go
 end if
 if spot = 0 then                  'kesli silnik prawej polowy otwiera sie
  set spot                         'to zatrzymuje go
 end if
        do
         if licznik = 0 then       'jesli uzytkownik chce wlaczyc ponownie brame
           spza = wspza            'to odczytuje wartosci silnikow ktore wczesniej zapisalem
           spot = wspot            'i wartosci te nadaje ospowiednim silnikom
           slza = wslza
           slot = wslot
           exit do
         end if
        loop
return
 
czujka:                            'czujka przedmiotu znajdujacego sie w bramie
 disable INT0                      'zatrzymuje zezwolenie na przerwania w tym INT0
 disable INTERRUPTS
  if clza <> 0 then                'jesli przedmiot znajduje sie w bramie
   if cpza <> 0 then               'a polowki bramy jeszcze nie zamkneły sie to
    set slza                       'wylaczam silniki zamykajace brame
    wait 1
    set spza
   end if
  end if
  do
   if licznik = 0 then             'sprawdzam czy nacisnieto przycisk nr1 na pilocie
    wait 1
    reset slot
    reset spot
   end if
   if clot = 0 then                'sprawdzam czy lewa połowa bramy otworzyla sie
    set slot                       'wylaczam otwieranie lewej polowy
   end if
   if cpot = 0 then                'sprawdzam czy prawa polowa otworzyla sie
    set spot                       'i wylaczam otwieranie prawej polowy
   end if
   if czujnik <> 0 then            'jesli przedmiotu nie ma juz w bramie to
    if clot = 0 then
     if cpot = 0 then
      set czujnik
      wait 4
      exit do                      'wychodze z petli
     end if
    end if
   end if
  loop
 enable INTERRUPTS                 'zezwalam na przerwanie w tym INT0
 enable INT0
 x = 2
return

Portret użytkownika gosc

Brama

Mam prosbe dodaj schemat do tego sterownika pozdrawiam

Portret użytkownika matrix

Re: mikroprocesorowy sterownik bramy wjazdowej

wstępnie schemat wygląda tak:

jest to wersja wstępna. jak ogarnę całość to zaprezentuję i udostępnię.
do tego potrzebny będzie dwukanałowy nadajnik i odbiornik radiowy dający na wyjściu poziom L i bariera podczerwieni również na wyjściu dająca poziom L

Portret użytkownika demsy1

brama

Witam kolege matrix0606, mam pytanie co do bramy. Jak przedstawia się sytuacja ze sterownikiem? Wszystko działa jak powinno?

Portret użytkownika matrix

Re: mikroprocesorowy sterownik bramy wjazdowej

niestety nie sprawdziłem tego jeszcze w praktyce mimo upływu tak długiego czasu. inne projekty, bardziej potrzebne, zajęły miejsce. w tej chwili na pewno wiem że należy poprawić kod. napisał bym go teraz trochę inaczej. jak znajdę kilka wolnych chwil to może coś nakreślę.

Portret użytkownika demsy1

mikroprocesorowy sterownik bramy wjazdowej

W takim razie pozostaje mi tylko czekać.

Portret użytkownika matrix

Re: mikroprocesorowy sterownik bramy wjazdowej

naprawdę chciałbym zrobić to i też u siebie zamontować, ale niestety są ważniejsze rzeczy. dom, rodzina, praca. to mnie mocno pochłania i nawet nie bardzo mam czas zrobić podstawowe rzeczy przy swoim samochodzie.

Portret użytkownika andrux

mikroprocesorowy sterownik bramy wjazdowej

Kolego Matrix, czy udało się uruchomić już sterownik bramy ?

Portret użytkownika matrix

Re: mikroprocesorowy sterownik bramy wjazdowej

Prace z mikrokontrolerem attiny2313 zostały zarzucone na rzecz atega8.

Schemat jest, obwód drukowany też, brak czasu na wykonanie całości i test.

Portret użytkownika gosc

wspolpraca

hallo , interesuje wspolpraca po sterowniku bram, proche o kontakt na mail

Portret użytkownika matrix

Re: mikroprocesorowy sterownik bramy wjazdowej

Jako że mocno zagłębiłem się w tematykę sterowników do bram ponieważ przy tym pracuję, to powstaje nowa wersja sterownika oparta o atmega16.
Będzie wyświetlacz lcd, miękki start, spowolnienia, sterowanie silnikami 230V, czujnik amperometryczny i pełne zabezpieczenia. Złącze pod oryginalne radio Faac, dtm lub ElDrim.

Portret użytkownika gosc

Sterownik

proche dane kontaktowe do pana , e-mail ?

Portret użytkownika matrix

Re: mikroprocesorowy sterownik bramy wjazdowej

Nie wiem czy mogę tu u Mirka podawać do siebie kontakt.

matrix0606@op.pl

Portret użytkownika consalt

E-mail

Kolego MAtrix,wam nadesłałem maila dlaczego nie odpowiadacie ?

Portret użytkownika matrix

Re: E-mail

Bo nic nie dostałem. Z jakiego adresu?

Portret użytkownika consalt

denbe2009@yandex.ru ,

denbe2009@yandex.ru , odprawcie mi pusty list

Portret użytkownika gosc

BRAMA

Program napisany przez Matrix oparty jest na złych założeniach.Tak napisany nie ma prawa działać.Na szybko chciałem ten program poprawić i okazało się,ze 70% programu jest do poprawki.W wersji poprawionej program działa na symulatorze i na płytce stykowej.Pozdrawiam Wintex22

Portret użytkownika gosc

BRAMA

Program napisany przez Matrix oparty jest na złych założeniach.Tak napisany nie ma prawa działać.Na szybko chciałem ten program poprawić i okazało się,ze 70% programu jest do poprawki.W wersji poprawionej program działa na symulatorze i na płytce stykowej.Pozdrawiam Wintex22

Portret użytkownika matrix

Re: BRAMA

Program pisałem w początkach swojego programowania i niegdy, ale to nigdy nie był testowany na żywym urządzeniu. Gdybym pisał to teraz to z pewnością napisał bym zupełnie inaczej. Niestety nie mam na to czasu.

Portret użytkownika gosc

brama

Witam
Może kolega zamieścić poprawiony kod?

Portret użytkownika EDC

Odp. brama

Może ten wątek Cię zainteresuje kolego http://mirley.firlej.org/node/1000

-

BARTek
Moja strona