farmaceuta Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 Powielając kod który teraz mamy o kolejne semafory/tarcze i biorąc pod uwagę ilość kombinacji swiecenia kod miałby około 1000linii(sprawdzałem😜)...taki makaron switch-case, więc na razie się z tym nie wyrywam bo kolega @ethanak by mnie po pysku wytrzaskał😜hihi Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 @farmaceuta ten kod należy schować głęboko pod dywan i zapomnieć o jego istnieniu 🙂 Proponowałem rozpoczęcie od pulpitu kontrolnego, bo jego obsługa to najdłuższa część programu... Cytuj Link do komentarza Share on other sites More sharing options...
prezesedi Czerwiec 12, 2023 Autor tematu Udostępnij Czerwiec 12, 2023 (edytowany) 21 minut temu, ethanak napisał: Co do tych sygnałów - to nieco komplikuje sterowanie (a właściwie sam układ klawiszy na panelu), bo do zapalenia jednej z 5 diod wystarczy 5 przycisków, jeśli mają być jakieś pary czy migania to już jest gorzej. Obecnie mogę zapalić 10 różnych sygnałów na jednym semaforze złożonym z 5 diod (3mm). Raczej przy tym pozostanę - łatwa wymiana w przypadku zwarcia i przepalenia (chodzi o diody 3mm). Dlatego w jednym z wcześniejszych wpisów pisałem o użyciu kombinacji A0-A9 na klawiaturze. Edytowano Czerwiec 12, 2023 przez prezesedi Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 A co ma piernik do wiatraka? diody są na semaforze, klawisze na pulpicie. Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
ethanak Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 @farmaceuta void loop() { uint32_t cmd=getCommand(); if (cmd) { semafor[SEM_NUM(cmd)].set(SEM_CMD(cmd)); } for (int i=0;i<SEM_COUNT;i++) { semafor[i].update(); } } Taka moja propozycja na funkcję loop 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Santiago Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 Miałem w szkole zawodowej przedmiot związany z tym tematem Przypomniałem sobie , że 1 i 2 semafor są ze sobą 'powiązane' , sprawdziłem i tek jest. To wbrew pozorom upraszcza sytuacja. W tym miesiącu muszę remontować mieszkanie bo szwagierka przyjeżdża. Urlopu nie mam i czasu niezawiele z tego powodu nie mogę pomóc. jednak spróbuję, bo czas na myślenie mam w pracy. Potrzebuję jedynie konkretnego planu i co ma być robione i w jaki sposób. Jeżeli klawiatura to co ma ona robic, czy też zmieniać komunktu czy tylko światła ? Poza tym jeżeli semafor pokaże STOP lokomotywa sama lub ze składem powinna się zatrzymać. Jeżeli mam prędkość Max a drugi semafor nakazuje 100 ,40 to pojazd trakcyjny na makiecie powinien respektować to. W przeciwnym wypadku makieta straci nieco na uroku. Chętnie pomogę w miarę możliwości dlatego że zbyt wiele lat pracowałem przy tym. Czasami nawet jechałem Tamarą czy Škodą TEM 102 itp Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 @Santiago proponowałbym jednak zacząć od najprostszej wersji. Soft zawsze można zmienić... Cytuj Link do komentarza Share on other sites More sharing options...
farmaceuta Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 (edytowany) @ethanak Ty Jesteś artysta to ogarniesz...gorzej ze mną 😁 Jak by miało być esp-now i wyjaśniło się że semafory mają występować parami, tzw. 5led-2led, to ja bym zrobił tak...Pozostał bym przy tej klawiaturze membranowej, tak jak autor wspominał, pierwsza liczba była by nr semafora, a druga kombinacją, łączył bym je jako liczbę i wysyłał np. 25...na czterech odbiornikach miałbym tablice bajtów dla wszystkich kombinacji swiecenia, potem w odbiorniku jakiś prosty warunek żeby aktualnie działał tylko jeden semafor... //dla semafora 1 if (data >= 10 && data <= 19) { switch (data) { case 17: ledset(data); break; //etc //etc //etc } void ledset(byte dane) { pcf.write(pin, (tab[data] >> 4)&1); pcf.write(pin, (tab[data] >> 3)&1); pcf.write(pin, (tab[data] >> 2)&1); pcf.write(pin, (tab[data] >> 1)&1); pcf.write(pin, (tab[data] >> 0)&1); W sumie wyszły by dwa switch odpowiednio po 10 i 3 case co było by do przeżycia...jedynie dla migania trzeba by jeszcze dopisać osobno parę bajtów, no ale to już nie byłby taki makaron jak te wcześniejsze wypociny 😜 No ale ja się chętnie przypatrzę temu nad czym już zacząłeś rozmyślać Edytowano Czerwiec 12, 2023 przez farmaceuta Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 @farmaceuta po tym co tu napisano też jednak wsadziłbym zwykłą klawiaturę 16 klawiszy. Potrzebny byłby wyświetlacz 7seg żeby nie wciskać klawiszy na ślepo. Tu jest możliwość 14 urzadzeń i 14 możliwych programów na każdym. BTW pcf-y ustawia się wysyłając stan całego portu. Poszukam czy mam jakąś klawiaturę, bo wyświetlacz gdzieś mi się pałęta w szufladzie. Pcf8574 chyba mam... Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 @prezesedi a możesz powiedzieć, co oznaczają te A0..A9? Będzie łatwiej coś zaproponować wiedząc o co chodzi... Cytuj Link do komentarza Share on other sites More sharing options...
farmaceuta Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 (edytowany) 22 minuty temu, ethanak napisał: @farmaceuta BTW pcf-y ustawia się wysyłając stan całego portu. To już od Libsa zależy bo widziałem i write(pin) i write16(data)...chociaż z tym wpisaniem całego portu to nie tak hop siup bo o ile włączenie odpowiednich LED proste to o tyle zgaszenie już nie takie oczywiste, załóżmy... B00000101 //zapalenie ledow B00000001 // zgaszenie więc podczas migania (a takie przypadki ma autor) do gaszenia nie mogę już wykorzystać zapisu data = read16() & ~(kombinacja); write16 (data); znów trzeba kombinować jakoś z pojedynczymi bitami... Edytowano Czerwiec 12, 2023 przez farmaceuta Cytuj Link do komentarza Share on other sites More sharing options...
farmaceuta Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 15 minut temu, ethanak napisał: @prezesedi a możesz powiedzieć, co oznaczają te A0..A9? Będzie łatwiej coś zaproponować wiedząc o co chodzi... Litera oznacza indeks semafora a liczba za nią indeks kombinacji swiecenia...(semafory 5-ledowe mają po 10 kombinacji, a semafory 2-ledowe po 3 kombinacje) Cytuj Link do komentarza Share on other sites More sharing options...
prezesedi Czerwiec 12, 2023 Autor tematu Udostępnij Czerwiec 12, 2023 27 minut temu, ethanak napisał: @prezesedi a możesz powiedzieć, co oznaczają te A0..A9? Będzie łatwiej coś zaproponować wiedząc o co chodzi Tak jak @farmaceuta napisał. Litera oznacza urządzenie a cyfra wyświetlany sygnał. Dlatego miałem pod jednym ESP dwa semafory i kombinacje A0-A9; B0-B9 na drugim 4 tarcze A0-A2 do D0-D2 Cytuj Link do komentarza Share on other sites More sharing options...
ethanak Czerwiec 12, 2023 Udostępnij Czerwiec 12, 2023 (edytowany) @prezesedi Dalej nie wiem o co chodzi... co robi np. A0, co robi A1, co robi A2... i tak dalej do A9. Coś tam miga podobno? Edytowano Czerwiec 12, 2023 przez ethanak Cytuj Link do komentarza Share on other sites More sharing options...
prezesedi Czerwiec 12, 2023 Autor tematu Udostępnij Czerwiec 12, 2023 2 minuty temu, ethanak napisał: prezesedi Dalej nie wiem o co chodzi... co robi np. A0, co robi A1, co robi A2... i tak dalej do A9. Coś tam miga podobno A0 zapala sygnał S1 czyli czerwony. A1 zapala S2 czyli zielony. A3 zapala s3 czyli migający zielony. Kolejny zielony z dolnym pomarańczowym. Kolejny dwa pomarańczowe. Kolejny pomarańczowy migający górny i stały dolny. Aż do czerwonego z migającym białym Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!