Podnoszenie Rusztu Grilowego


7
Ocena: None Średnia: 7 (2 głosujących)

Układ ten ma za zadanie sterować pracą silnika prądu stałego, który przez prosty układ mechaniczny podnosi ruszt grila. Na płytce znajdują się dwa miniaturowe przekaźniki umożliwiające zmianę kierunku obrotów silnika. Część mechaniczna wyposażona jest w czujniki krańcowe uniemożliwiające wyjechanie rusztem poza jego obszar roboczy. Nad całością czuwa mikrokontroler AT89C2051 umożliwiając automatyczne podnoszenie rusztu do maksymalnej wysokości oraz opuszczanie do minimum a także obsługę dwóch par czujników krańcowych zabezpieczających mechanikę i silnik przed zniszczeniem. Klawiatura sterownika znajduje się w jednej obudowie z Wyłącznikiem 8 Urządzeń.

Działanie:


Schemat ideowy sterownika podnoszenia rusztu przedstawia poniższy rysunek:

Sercem układu jest mikrokontroler U1 (AT89C2051) wraz z kondensatorami C3 (33pF), C4 (33pF) i rezonatorem kwarcowym X1 (12MHz). Kondensator C1 (470uF) filtruje napięcie zasilające a C2 (4,7uF) pracuje w obwodzie resetu procesora. Złącze GP (goldpin) służy do podłączenia czujników krańcowych zamontowanych na części mechanicznej, natomiast SW (goldpin) do podpięcia klawiatury. Tranzystor T1 (BC557) wraz z rezystorami R1 (3,3k) i R2 (3,3k) sterują pracą brzęczyka z generatorem BUZZER. Przekaźnik zmiany kierunku obrotów P1 (AZ822) sterowany jest przez tranzystor T3 (BC557) i rezystory R5 (3,3k) i R6 (3,3k). Tranzystor T2 (BC557) i rezystory R3 (3,3k) i R4 (3,3k) włączają przekaźnik P2 (JRC21F), który ma za zadanie uruchomić silnik. Diody D1 (1N4007) i D2 (1N4007) zabezpieczają tranzystory przed przepięciami mogącymi pojawić się na cewkach przekaźników. Złącze IN (Ark) służy do podłączenia napięcia zasilającego silnik a OUT (ARK) do uzwojenia silnika. Zasilanie sterownika o wartości 5V podpinamy do złącza zas.

Na rysunku poniżej przedstawiony jest schemat ideowy płytki z czujnikami krańcowymi:

Budowa:


Sterownik można zbudować w oparciu o płytkę drukowaną dostępną tutaj. Płytka w odbiciu lustrarzanym dostępna jest tutaj. Montaż rozpoczynamy od wlutowania dwóch zwór. Kolejność pozostałych elementów nie jest ważna. Diodę D2 należy przylutować od strony druku. Pod mikrokontroler U1 bezwzględnie konieczna jest podstawka, gdyż w przeciwnym razie nie będzie można go zaprogramować. Zamiast złącz ARK można z powodzeniem wlutować przewody bezpośrednio w płytkę. Pomocą przy budowie może okazać się schemat montażowy dostępny tutaj.

Płytkę czujników krańcowych można wykonać w oparciu o rysunek dostępny tutaj. Obraz w odbiciu lustrzanym dostępny jest tutaj. Płytka czujników zawiera tylko dwa przełączniki krańcowe (dodatkowy styk alarmowy na wypadek uszkodzenia pierwszego) i złącze do przylutowania przewodów. Kolejoność montażu jest dowolna. Do współpracy ze sterownikiem konieczne są dwa takie moduły. Pomocą w montażu może okazać się dostępny tutaj schemat montażowy.

Na rysunku poniżej przedstawiony jest schemat blokowy połączeń:

Część Mechaniczna:

Konstrukcja mechaniczna przedstawiona jest na zdjęciach u dołu strony. Składa się ona z kawałka blachy będącej podstawą i przyspawanych do niej blach kontowych (kontowniki do budowania konstrukcji drewnianych). Do jednego z kontowników przykręcony jest silnik z przekładnią a do jego osi za pomocą gwintowanej tulejki (szeroka nakrętka do łączenia prętów budowlanych) przymocowany jest kawałek gwintowanego pręta o średnicy 10mm. Tulejka, pręt i wał silnika są przewiercone i skręcone za pomocą śrub 3mm. Zapewnia to bezproblemowe przeniesienie momentu obrotowego. Na gwintowany pręd nakręcona jest jeszcze jedna tulejka (nakrętka) do której przyspawany jest kawałek blachy, stanowiący wózek z bloczkami. Przez bloczki (skręcone z różnej wielkości podkładek) przerzucone są stalowe linki ciągnące prowadnice rusztu. Przesunięcie wózka o 1cm powoduje zmianę długości linek o 2cm. Konstrukcja może wydawać się skomplikowana ale taki układ mechaniczny sprawia że ruszt nie opada na dół po wyłączeniu silnika, a dzięki przekładni "śrubowej" możliwe jest zastosowanie silnika o niewielkiej mocy (np. 24V/10W ok. 100obr/min).

Poniższy rysunek przedstawia budowę układu mechanicznego:

Wykaz Elementów:


3x Złącze ARK2 (nie są konieczne)
2x Listwa Gold Pin 1x4
1x Przekaźnik JRC21F
1x Przekaźnik AZ822

6x 3,3k

2x 33pF
1x 4,7uF Elektrolit
1x 470uF Elektrolit

1x Rezonator Kwarcowy 12MHz
2x BC557
1x BC557B
2x 1N4007
1x AT89C2051 + podstawka
1x Buzzer 5V

Programowanie:


Mikrokontroler do sterownika został zaprogramowany w wersji demo programu BASCOM 8051 firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej:

'****************************
           'Konfiguracja
'****************************
$crystal = 12000000                                           '12MHz
$regfile = "89C2051.DAT"
 
Config Timer0 = Timer , Gate = Internal , Mode = 2
On Timer0 Przerwanie0
Load Timer0 , 250
Enable Timer0
Start Timer0
 
Enable Interrupts
'****************************
       'Zmienne
'****************************
Dim Licznik As Byte
Dim Licznik2 As Byte
Dim Licznik_sygnal As Byte
Dim N As Byte
Dim Flaga As Bit
Dim Flaga2 As Bit
Dim Licz_sw(5) As Byte
Dim Ruch As Byte          '0=stop 1= gora 2=dol 3=gora max 4=dol max
Dim Kierunek As Bit
Dim Sstart As Bit
Dim Sygnal As Bit
Dim Sygnal_e As Bit
'****************************
      'Nazwy Wyprowadzeń
'****************************
Sw_down Alias P1.7
Sw_stop Alias P1.6
Sw_up Alias P1.5
 
Edge_max Alias P3.2
Edge_max_e Alias P3.3
Edge_min Alias P3.4
Edge_min_e Alias P3.5
 
P_start Alias P1.4
P_kierunek Alias P1.3
Buzzer Alias P1.2
 
'****************************
      'Wartosci Poczatkowe
'****************************
P1 = 255
P3 = 255
Set Flaga2
Reset Sygnal
 
Buzzer = 0
Waitms 100
Buzzer = 1
Waitms 100
Buzzer = 0
Waitms 100
Buzzer = 1
 
'****************************
      'Petla glowna
'****************************
Do
 
  If Sygnal_e = 1 Then
    For N = 1 To 10
      Buzzer = 0
      Waitms 100
      Buzzer = 1
      Waitms 100
    Next N
    Sygnal_e = 0
    Flaga2 = 1
  End If
 
 
  If Flaga = 1 And Flaga2 = 1 Then                            'co 10ms
    Reset Flaga
 
    If Sygnal = 1 Then
      Buzzer = 0
      Incr Licznik_sygnal
      If Licznik_sygnal = 20 Then
        Licznik_sygnal = 0
        Buzzer = 1
        Sygnal = 0
      End If
    End If
 
 
    If Sw_up = 0 And Sw_stop = 1 And Sw_down = 1 Then         'up
     Incr Licz_sw(1)
     If Licz_sw(1) = 255 Then
      Licz_sw(1) = 253
      Licznik2 = 0
      Ruch = 1
     End If
    Else
     Licz_sw(1) = 240
    End If
 
    If Sw_down = 0 And Sw_stop = 1 And Sw_up = 1then          'down
     Incr Licz_sw(2)
     If Licz_sw(2) = 255 Then
      Licz_sw(2) = 253
      Licznik2 = 0
      Ruch = 2
     End If
    Else
     Licz_sw(2) = 240
    End If
 
    If Sw_down = 1 And Sw_stop = 0 And Sw_up = 1 Then         'stop
     Incr Licz_sw(3)
     If Licz_sw(3) = 255 Then
      Licz_sw(3) = 253
      Ruch = 0
     End If
    Else
     Licz_sw(3) = 240
    End If
 
    If Sw_up = 0 And Sw_stop = 0 And Sw_down = 1 Then         'up max
     Incr Licz_sw(4)
     If Licz_sw(4) = 255 Then
      Licz_sw(4) = 253
      Ruch = 3
     End If
    Else
     Licz_sw(4) = 240
    End If
 
    If Sw_down = 0 And Sw_stop = 0 And Sw_up = 1 Then         'down max
     Incr Licz_sw(5)
     If Licz_sw(5) = 255 Then
      Licz_sw(5) = 253
      Ruch = 4
     End If
    Else
     Licz_sw(5) = 240
    End If
 
    Select Case Ruch
 
      Case 0:
        Kierunek = 1
        Sstart = 1
 
      Case 1:
        Kierunek = 1
        Sstart = 0
        Incr Licznik2
        If Licznik2 = 5 Then
          Licznik2 = 0
          Ruch = 0
        End If
        Gosub E_max
 
      Case 2:
        Kierunek = 0
        Sstart = 0
        Incr Licznik2
        If Licznik2 = 5 Then
          Licznik2 = 0
          Ruch = 0
        End If
        Gosub E_min
 
      Case 3:
        Kierunek = 1
        Sstart = 0
        Gosub E_max
 
      Case 4:
        Kierunek = 0
        Sstart = 0
        Gosub E_min
 
    End Select
 
  If P_kierunek <> Kierunek Then P_kierunek = Kierunek
  If P_start <> Sstart Then P_start = Sstart
 
  End If
Loop
End
'****************************
'Przerwanie timer0  co 250us
'****************************
Przerwanie0:
  Incr Licznik
  If Licznik = 40 Then
    Licznik = 0
    Set Flaga
  End If
Return
'****************************
      'Inne Etykiety
'****************************
E_max:
 If Edge_max = 0 Then
   Ruch = 0
   Kierunek = 1
   Sstart = 1
   Set Sygnal
 End If
 If Edge_max_e = 0 Then
   Ruch = 0
   Kierunek = 1
   Sstart = 1
   Flaga2 = 0
   Set Sygnal_e
 End If
Return
 
E_min:
 If Edge_min = 0 Then
   Ruch = 0
   Kierunek = 1
   Sstart = 1
   Set Sygnal
 End If
 If Edge_min_e = 0 Then
   Ruch = 0
   Kierunek = 1
   Sstart = 1
   Flaga2 = 0
   Set Sygnal_e
 End If
Return
'****************************

Zdjęcia Projektu:

ZałącznikWielkość
Sterownik Schemat76.34 KB
Sterownik Płytka11.44 KB
Sterownik Płytka (odbicie lustrzane)11.47 KB
Sterownik Płytka (6 na stronie)56.5 KB
Sterownik Montowanie15.04 KB
Czujniki Schemat3.36 KB
Czujniki Płytka3.41 KB
Czujniki Płytka (odbicie lustrzane)3.43 KB
Czujniki Płytka (15 na stronie)15.93 KB
Czujniki Montowanie4.33 KB
Kod źródłowy4.66 KB
Program po kompilacji (BIN)1.1 KB
Program po kompilacji (HEX)3.13 KB



Portret użytkownika ziomus124

Witam

witam chciałbym wykonać sobie taki układ lecz z oddzielną klawiaturą przy grilu czy jest taka możliwość??
jeśli tak to jak to zrobić

albo jeszcze lepiej gdyby ruszt można było podnosić na pilota:)

Portret użytkownika mirley

Re: Ruszt

Klawiaturę możesz dać w dowolne miejsce, to poprostu 3 najzwyklejsze przyciski. Odnośnie sterowania na pilota to dało by radę to wykonać ale to całkowita przeróbka programu albo przynajmniej znacznaj jego części, teraz brak mi czasu aby to wykonać.

-

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 IMEX

Dlacyego sa po dwa przyciski

Dlacyego sa po dwa przyciski krańcowe - dodatkowe zabezpieczenie gdyby pierwszy nie zadziałał

Portret użytkownika mirley

Re: Podnoszenie rusztu grilowego

Dokładnie tak, pierwsze krańcówki działają przy normalnej pracy, dalsze dwie jeśli zostaną zwarte to procesor nie pozwoli ruszyć rusztem w którąkolwiek stronę, bo znaczy to że jest awaria krańcówek. Aby dało się dalej korzystać z urządzenia wymagana jest ręczna ingerencja w mechanizm

-

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 grek1209

Zmiana procesora na ATTiny2313

Witam chciałem wykorzystać sterowanie do bramy wjazdowej i mam parę pytań.1:czy jest możliwe wykorzystanie ATTiny2313 i jak bardzo trzeba zmienić program.2:czy trzeba zmieniać coś na płytce drukowanej.3:czy po jednokrotnym naciśnięciu przycisku układ działa do momentu wyłączenia przez wyłącznik krańcowy.

Portret użytkownika mirley

Re: Ruszt grilowy

1. Da się zrobić to na ATTINY2313
2. Nic nie trzeba zmieniać na płytce
3. Po jednokrotnym naciśnięciu "strzałek" układ działa tylko na chwilę, po naciśnięciu na stop + strzałka działa do krańcówki

-

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 grek1209

Zmiana procesora na ATTiny2313

Dzięki za odpowiedz.Mirek co oprócz nazw wyprowadzeń i nazwy procesora trzeba zmienić w programie.Czytałem różne tematy i było coś wspomniane o konfiguracji timera ale nie jestem pewien.Jak byś mógł wskazać które fragmenty kodu trzeba zmienić aby działało z Attiny2313 oraz po naciśnięciu przycisku układ pracował do wyłączenia go przez krańcówki bez konieczności naciskania dwóch przycisków.Wim że jesteś zajęty poważniejszymi rzeczami ale jak byś znalazł chwilę był bym wdzięczny.

Portret użytkownika mirley

Re: Podnoszenie grila

Wcale to nie jest takie proste do zrobienia.. musisz:
1. Napisać całą konfigurację procesora (lepiej wklej z jakiegoś mojego projektu z attiny i pozmieniaj), ustawiając typ wyprowadzeń (wejścia/wyjścia)
2. Konfiguracja timera jest inna, musisz tak dobrać ustawienia aby zmienna flaga była ustawiana co ten sam odcinek czasu co w programie dla 2051.
3. Zamieniać nazwy pinów

-

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 grek1209

Zmiana procesora na ATTiny2313

Mirek dzięki za odpowiedz płytkę mam już wykonaną teraz pozmieniam program tak jak napisałeś i będę testował