logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Załączanie oświetlenia z opóźnieniem w sygnalizacji

bearq 11 Sty 2018 15:40 591 15
REKLAMA
  • #1 16952504
    bearq
    Poziom 39  
    Posty: 4883
    Pomógł: 414
    Ocena: 1608
    Witam,

    mam dość nietypowy problem związany z opóźnieniem załączania oświetlenia.
    Posiadam sygnalizację świetlną składającą się z 3 świateł czerwonych i 3 świateł białych. Sygnalizacja załączana jest z trzech różnych miejsc gdzie mamy do wyboru albo zapalenie koloru czerwonego albo białego.
    Potrzebuje ją tak przerobić aby załączanie świateł występowało w jednym momencie nie zależnie od tego w jakim odstępie czasowym zostaną przyciśnięte przyciski załączające odpowiedni kolor a gasły po pewnym ustalonym czasie.
  • REKLAMA
  • #2 16952573
    Wojciech.
    Poziom 37  
    Posty: 3593
    Pomógł: 319
    Ocena: 467
    bearq napisał:
    Potrzebuje ją tak przerobić aby załączanie świateł występowało w jednym momencie nie zależnie od tego w jakim odstępie czasowym zostaną przyciśnięte przyciski załączające odpowiedni kolor a gasły po pewnym ustalonym czasie.




    Mógłbyś rozjaśnić?
  • REKLAMA
  • #3 16952613
    bearq
    Poziom 39  
    Posty: 4883
    Pomógł: 414
    Ocena: 1608
    Sprawa dość prosta.
    Osoba A daje sygnał do zapalenia żarówki X ale ta się nie zapala
    Osoba B daje sygnał do zapalenia żarówki X ale ta się nie zapala
    Osoba C daje sygnał do zapalenia żarówki X i w tym momencie zapalają się żarówki wybrane przez osobę A, B oraz C.
    Czyli dopóki "coś" nie dostanie sygnału z trzech różnych źródeł dopóty nie załączy sygnalizacji czyli nie zapali żarówek.
  • #4 16952745
    Wojciech.
    Poziom 37  
    Posty: 3593
    Pomógł: 319
    Ocena: 467
    A co ze sytuacją gdy A wybierze inną opcję niż B? Albo osoba C naciśnie wcześniej niż osoby A B? Sprawa wygląda prosto tylko co z tymi opcjami?
  • #5 16952818
    _jta_
    Specjalista elektronik
    Posty: 48957
    Pomógł: 3205
    Ocena: 4226
    Czy tu chodzi o to, że każda osoba wybiera kolor jednej żarówki, ale zapalają się wszystkie wybrane dopiero kiedy wszystkie osoby wybiorą? Na przykład po to, żeby nikt za wcześnie nie wiedział, co wybierają inni - byłoby to pożądane choćby przy grze w marynarza.
  • REKLAMA
  • #6 16953708
    bearq
    Poziom 39  
    Posty: 4883
    Pomógł: 414
    Ocena: 1608
    _jta_ napisał:
    Czy tu chodzi o to, że każda osoba wybiera kolor jednej żarówki, ale zapalają się wszystkie wybrane dopiero kiedy wszystkie osoby wybiorą? Na przykład po to, żeby nikt za wcześnie nie wiedział, co wybierają inni - byłoby to pożądane choćby przy grze w marynarza.

    Dokładnie o to mi chodzi, brakowało mi słów do ujęcia tego tak prosto ;)
  • Pomocny post
    #7 16953936
    _jta_
    Specjalista elektronik
    Posty: 48957
    Pomógł: 3205
    Ocena: 4226
    Można spróbować to zrobić na bramkach i ewentualnie przerzutnikach 'RS', albo 'D'. Tylko tego trochę dużo wyjdzie.

    Bramki: myślę, że z 2 bramek 2-wejściowych i 2 bramek 3-wejściowych można zbudować układ 2 przerzutników 'RS', do którego podłączy się 2 przyciski, i on zapamięta wciśnięcie przycisku i który to był; 3 takie układy, i do tego trzeba dodać dekodowanie, czy już wszystkie dostały sygnał (wciśnięcie któregoś przycisku) - na to wyjdą 3 bramki 2-wejściowe i 1 3-wejściowa, albo bramka and2-or4-inwert; i na koniec jeszcze 6 bramek 2-wejściowych, które pozwolą przekazać sygnały do włączenia żarówek, kiedy wszyscy już wcisną swoje przyciski. Razem: 12 bramek 2-wejściowych (4 kości), 6 bramek 3-wejściowych (2 kości), 1 bramka and2-or4-inwert (1 kość), czyli 7 kości.

    Z przerzutnikami RS: pewnie nie ma takich, które by zawierały bramki 3-wejściowe, więc potrzebne będą dodatkowe bramki, żeby po wciśnięciu przycisku nie dało się zmienić wyboru; 2 kości z RS-ami, 6 bramek na wejściach, i jak poprzednio bramka and2-or4-inwert i 6 bramek 2-wejściowych na wyjściach - znowu 7 kości.

    Z przerzutnikami D: takie, które by pasowały, są po 2 w jednej kości, więc 3 kości, i dekodowanie: bramka and2-or4-inwert i 6 bramek 2-wejściowych na wyjściach - teraz 6 kości. Można tych 6 bramek zastąpić 6-krotnym przerzutnikiem D (jak 74LS174), wtedy będzie 5 kości.

    A może z użyciem pamięci PROM/EPROM z 8-bitowym słowem (tylko trzeba ją odpowiednio zaprogramować): na linie adresowe podłączyć przyciski (6), sygnał resetujący (1), wyjścia podające wybrane kolory żarówek (6), czyli trzeba 13 linii adresowych, pamięć 8kB = 64kb (np. 2764). Do tego 6-krotny przerzutnik D, albo np. 8-krotny bufor 3-stanowy, żeby sygnały do żarówek przepuścić dopiero, kiedy wszyscy wybiorą (odpowiedni sygnał, który tym będzie sterować, poda (E)PROM). 2 kości, ale z programowaniem (E)PROM-u, i dużo pinów (2764 ma 28).

    I w tym wszystkim nie ma jeszcze odmierzania czasu do zgaszenia żarówek. To może być dość proste, np. jakiś NE555, albo CD4541 załatwi sprawę w każdej z tych wersji.

    Pod względem ilości lutowań lepiej wypadłby mikrokontroler: jakiś 20-pinowy (ATtiny2313?) wystarczy z zapasem, i odmierzy czas do zgaszenia żarówek. Ale trzeba zaprogramować.
  • #8 16955861
    bearq
    Poziom 39  
    Posty: 4883
    Pomógł: 414
    Ocena: 1608
    Dziękuje za bardzo profesjonalne podejście do tematu, masz rację że w przypadku bramek jest to dość rozległy temat dlatego nie pozostaje mi nic innego jak zrobienie tego na procesorze.
    W tym przypadku albo Attiny/Atmega albo pójście na łatwiznę i zrobienie tego blokowo za pomocą Arduino i gotowych modułów przekaźnikowych.
  • REKLAMA
  • #9 16955881
    Konto nie istnieje
    Konto nie istnieje  
  • #10 16956306
    _jta_
    Specjalista elektronik
    Posty: 48957
    Pomógł: 3205
    Ocena: 4226
    Jak się chce pójść na łatwiznę, to jakikolwiek minikomputer z gniazdem LPT, na którym pójdzie DOS (bardziej zaawansowane systemy utrudniają dostęp do portów, i mają większe wymagania sprzętowe - DOS ładnie chodził na komputerach z RAM-em 256kB, stary Linux z trudem na 4MB, a nowszy raczej wymaga więcej - do sprawdzenia, ile trzeba na TinyCore Linux). Jakiegoś starego TurboC, albo TurboPascal-a można używać za darmo, a one miały dostęp do portów.

    Jakkolwiek, jeśli ma się pod ręką scalaki z bramkami, płytkę uniwersalną, lutownicę, cynę i nieco kabelków, to chyba tak wyjdzie najszybciej - myślę, że zlutowanie układu zajmie mniej czasu, niż zapoznanie się z instrukcją od przekaźnika programowalnego.
  • #11 16956391
    bearq
    Poziom 39  
    Posty: 4883
    Pomógł: 414
    Ocena: 1608
    Tylko teraz trzeba było by szukać takiego komputera, nauczyć się tego obsługiwać itp...
    Chyba pomysł padnie na złożenie tego na arduino z gotowymi modułami przekaźnikowymi, najszybciej, biblioteki dostępne, programowanie łatwe a same moduły za grosze. Wszystko wejdzie w małą skrzynkę i nie będzie wadzić a w przypadku jakiejś rozbudowy czy korekty nie będzie problemu z przerobieniem tego.
  • Pomocny post
    #12 16956445
    Konto nie istnieje
    Konto nie istnieje  
  • #13 16956703
    bearq
    Poziom 39  
    Posty: 4883
    Pomógł: 414
    Ocena: 1608
    Przeszukałem popularne serwisy w poszukiwania przekaźnika programowalnego i wszystko większe i sensowe kosztuje 300zł+ a największy problem jest taki że duża część ma wyjścia nisko prądowe do sterowania tranzystorami wiec prawdopodobnie i blok przekaźników będzie potrzebny.

    Całe to urządzenie nie jest stosowane nigdzie w przemyśle i również nigdzie nie będzie sprzedawane, jest robione dla siebie także ważne abym ja wiedział jak to działa ;)
  • #14 16956749
    _jta_
    Specjalista elektronik
    Posty: 48957
    Pomógł: 3205
    Ocena: 4226
    Minikomputer PC-to-podobny obsługuje się tak, jak PC - a pewnie PC umiesz obsługiwać, bo raczej go używasz do pisania na forum. ;)

    Najtańsze są na Allegro w cenach około 20 zł (T5710, 256MB RAM, 256MB flash, na tym chodzi Windows XPe, DOS, Slitaz, pewnie pójdzie TinyCore, ale nie próbowałem, jakkolwiek według FAQ TC minimum to 28MB). Z tego T5710 i T5720 (te drugie chodzą dużo szybciej) mają port LPT, wyższe modele już nie, więc do tego się nie nadają.

    W tej chwili najtańszy jest T5530 - 10zł (+8.6zł wysyłka), ma port LPT. Trzeba by poszukać informacji na stronie producenta, na ile to jest kompatybilne z PC, czy jakiś DOS z PC na tym pójdzie. Ma flash 64MB, RAM 128MB - TinyCore by na tym poszedł (jakkolwiek Firefox pod nim już nie, i może nie być miejsca na kompilator C).

    Port LPT ma 8 linii danych (zwykle działają jako wyjścia), 4 linie sterujące, 5 linii statusu. Można linie sterujące wykorzystywać jako wejścia - ustawić na nich stan wysoki, one mają wyjścia OC z opornikami do +5V, i odczytywanie stanu - w stanie wysokim można wymusić niski przez zwarcie do masy i to można odczytać.

    Był jeszcze jakiś minikomputer Pi Zero, miał być w cenie 5$. Ale na pewno w tej cenie szybko się go nie kupi - nie nadążają z produkcją, jest długa kolejka chętnych. I mało podobny do PC, za to dużo pinów I/O, i prawie wszystkie można dowolnie (i wygodnie) programować. System: Linux na ARM (DOS nie pójdzie).

    Ale najtańszy będzie układ na bramkach... I nie trzeba się uczyć żadnego języka programowania, "programuje się" go lutownicą (albo wtykanymi kabelkami).
  • #15 16956751
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2816
    Zawsze można pokusić się o wykonanie własnego urządzenia z wykorzystaniem procesora.
  • #16 19824638
    bearq
    Poziom 39  
    Posty: 4883
    Pomógł: 414
    Ocena: 1608
    Ostatecznie problem sygnalizacji zmienił całkowicie swoją koncepcję. Dziękuje za pomoc[/align]

Podsumowanie tematu

✨ Użytkownik zgłosił problem związany z opóźnieniem w załączaniu oświetlenia w sygnalizacji świetlnej, która składa się z trzech świateł czerwonych i trzech białych, aktywowanych z trzech różnych miejsc. Celem jest, aby wszystkie światła zapalały się jednocześnie, niezależnie od kolejności naciśnięcia przycisków. W odpowiedziach zaproponowano różne rozwiązania, w tym użycie bramek logicznych i przerzutników RS lub D, a także zastosowanie procesorów, takich jak Attiny/Atmega lub Arduino, co pozwoli na łatwe programowanie i modyfikacje. Wskazano również na możliwość użycia programowalnych przekaźników, które mogą być tańszą alternatywą. Ostatecznie użytkownik zdecydował się na rozwiązanie oparte na Arduino z gotowymi modułami przekaźnikowymi.
REKLAMA