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

Sterowanie sygnalizatorami na skrzyżowaniu

16 Sty 2010 18:05 1326 3
  • Poziom 9  
    Witam,
    Mam taki oto problem: Układam sobie sterowanie do prostego skrzyżowania (projekt na zajęcia) i w momencie kiedy mam przełączanie między dwoma sygnalizatorami nie jestem w stanie tego zsynchronizować. Wygląda to tak, że jak mam sterowanie clockiem, to
    - częstotliwość clocka - 0,5s (co tyle będzie migało światło na przejściu dla pieszych)
    - później przerzutnikami D zwiększam sobie czas dwukrotnie
    - więc mam do dyspozycji 0,5s, 1s, 2s, 4s, 8s, 16s, i 32s
    - światło zielone dla samochodów będzie świecić 32s
    - więc na drugim pasie światło czerwone musi świecić 39s (32s kiedy na drugim jest zielone+1s+3s kiedy na drugim jest żółte+ 2*2s kiedy na całym skrzyżowaniu jest czerwone)
    Niestety nie mogę ustawić takiego czasu, bo nie mam takiego taktu zegara.
    I nie mam pomysłu co w związku z tym zrobić.
  • Poziom 19  
    A masz narysowany schemat całości? Dołącz go i opisz raz jeszcze dokładnie problem bo coś ta podana suma czasów się nie zgadza
  • Pomocny dla użytkowników
    Tak prosto to się nie da. Musisz zrobić tak:

    1. Pełny cykl licznika zmieniającego się co sekundę, określa pełny cykl zmian świateł na całym skrzyżowaniu.

    2. Na wyjściu licznika jest dekoder z tyloma wyjściami ile jest lamp na skrzyżowaniu (przy założeniu pełnej niezależności sterowania światłami czyli bez uproszczeń typu, że jak na jednym kierunku zielone to na drugim z automatu czerwone i odwrotnie.)

    3. Dla każdego wyjścia musisz napisać funkcję logiczną dającą na wyjściu 1 dla tych stanów licznika sekundowego dla których ma się świecić dana lampa czyli przykładowo:
    światło zielone ma się się świecić na kierunku A od 3 do 15 sekundy pełnego 64 sekundowego cyklu co określa, że dekoder musi dać 1 dla stanów 2,3,4,5,6,7,8,9,10,11,12,13,14 licznika (stany są o 1 niższe, bo licznik liczy od 0 do 63 a nie od 1 do 64)

    Problem z powyższym rozwiązaniem jest taki, że minimalizacja funkcji powyżej 5 zmiennych (a z licznika 64 stanowego masz już 6 smiennych) jest zajęciem niewdzięcznym i skłaniającym do zastosowania jakiego programu do minimalizacji funkcji.

    Inne możliwe rozwiązania:

    1. Licznik adresuje pamięć EPROM pracującą jako dekoder

    Odpada wtedy problem minimalizacji funkcji, po prostu w odpowiednich komórkach pamięci wpisujesz 0 lub 1. Najprostsze rozwiązanie pozwala sterować 8 niezależnymi lampami.

    Do powyższego potrzebny jest programator pamięci EPROM i jakiś program (np. Excell) do stworzenia zawartości pamięci

    2. Łańcuch układów monostabilnych (np. 555) wyzwalających się na wzajem i wyznaczających czasy trwania poszczególnych faz.

    Zalety: nie trzeba nic programować, jest płynna regulacja czasów faz

    3. Zastosowanie mikroprocesora np. Atmega8 i zaprogramowanie go w języku Bascom

    Rozwiązanie uniwersalne, najprostszy układ, możliwość realizowania profesjonalnego cyklu pracy (od startu gdzie jest narzucona kolejność włączania świateł poprzez cykl główny i żółte migające)
    Do Bascoma jest książka po polsku (Autor Marcin Wiązania) a sam kompilator jest dostępny w wersji demo, umożliwiającej zrealizowanie projektu. Dodatkowo trzeba sobi zrobić (opisany w książce) lub kupić programatorek pozwalający programować Atmegę w na płytce. Całość można zmontować na płytce uniwersalnej.
  • VIP Zasłużony dla elektroda
    Wyczerpująca porada, reszta (wykonanie konkretnego projektu) należy do autora, temat zamykam (regulamin p.16).