Skocz do zawartości

Arduino w modelarstwie kolejowym


Pomocna odpowiedź

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 

 

(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 przez prezesedi

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

(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 przez farmaceuta

@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...

 

(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 przez farmaceuta
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)

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

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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...