Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - erap2

Strony: [1] 2 3 4
1
Posiadam na sprzedaż komplet - 2 szybkościomierze: 1 rejestrujący RT-9, a drugi wskazujący typ A16. Oba w pełni sprawne, na rejestrującym założona taśma, a wskazujący zaplombowany. Jak coś to zapraszam na PW.

2
Na 39 stronie masz odpowiedź w moich postach


Zamiast numeru strony podaj numer odpowiedzi. Każdy może mieć inaczej. Ja mam np. 26 stron w tym wątku.
Matek123.  :)



Zgodnie z zaleceniami - w poście: Odpowiedź #1165 dnia: 21 Października 2022, 09:34:05 masz odpowiedź na nastawnik i hamulec w jednym potencjometrze

Link bezpośredni: https://eu07.pl/forum/index.php/topic,13529.msg561053.html#msg561053

3
No i w końcu wszystko zaczęło działać - wystarczyło kupić klona Arduino MEGA z Atmegą 16U2 :)

Działa mi wszystko, no prawie, bo robię sobie jeszcze buczek czuwaka :D

4
Przyznam szczerze, że ostatnie kilka dni nawet nie ruszałem Arduino po tym jak przez 3 dni z rzędu przy jakiejkolwiek próbie wgrania programu tylko jedna na 10 prób kończyła się wgraniem, a pozostałe powodowały błąd komunikacji. I nawet reset płytki przyciskiem nie pomaga. Cóż, widać taka przypadłość klonów z Aliexpress. Tak czy siak jak na spokojnie policzyłem to co chcę zrobić to Uno okazało się za małe i muszę kupić Mega, więc po 10 się zaopatrzę i wracam do działania. Tylko jak tak szukam wśród tych klonów to już kilka razy natknąłem się na oferty, gdzie w opisie jak byk było 16U2, a w opisie nagle CH340. Albo absolutnie brak informacji nt. temat. Nie chcę teraz kupić jakiegoś szajsu.

5
Ja chyba wczoraj byłem mocno zmęczony, mam przecież klona Arduino Uno z CH340...

6
Mam klona Arduino Uno z CH340, i to chyba jakiegoś lichego

7
Spróbuję z tym opóźnieniem i zobaczymy czy da jakichś efekt. Może faktycznie to poprawi sytuację, chociaż zauważyłem, że moja płytka ma teraz problemy nawet przy zwykłym wgrywaniu programu i po kilka razy trzeba wgrywać.

8
Już sam to opanowałem, wszystko działałoby dobrze - gdyby nie klon Arduino. Ścina się coraz mocniej. Zamawiam na dniach klona MEGA na 16U2 i zobaczymy jak będzie to wtedy działało

9
Faktycznie, wrzuciłem tutaj wersję roboczą. Sprawdzałem taki kod - czyli potencjometr w górnym zakresie działa za nastawnik, a w dolnej za hamulec pomocniczy
    odczytanaPozycjaNastawnika = analogRead(A5);  //Odczytujemy wartość napięcia
    pozycjaNastawnika = map(odczytanaPozycjaNastawnika, 1023, 501, 0, 10);
    pozycjaHamulca = map(odczytanaPozycjaNastawnika, 500, 0, 0, 100);
    doPC[10] = pozycjaNastawnika;
    doPC[14] = pozycjaHamulca;

10
Dobra, wszystko poza tymi problemami z komunikacją działa. Kupię niedługo klona MEGA z 16U2 i mam nadzieję, że będzie dobrze.

Teraz jedyne zadanie które sobie postawiłem to zrobienie nastawnika zintegrowanego z hamulcem ED - tak jak w Impulsie. Próbowałem rozwiązać to w taki sposób:
    odczytanaPozycjaNastawnika = analogRead(A5);  //Odczytujemy wartość napięcia
    pozycjaNastawnika = map(odczytanaPozycjaNastawnika, 1023, 501, 0, 10);
    pozycjaHamulcaED = map(odczytanaPozycjaNastawnika, 500, 1023, 0, 100);
    doPC[10] = pozycjaNastawnika;
    doPC[14] = pozycjaHamulcaED;
Oczywiście pojawił się problem - gdy potencjometr wchodzi np. na 300 to pozycja nastawnika jest ujemna i zastanawiam się jak to rozwiązać. W ostateczności zawsze mogę zostać przy pojeździe bez zintegrowanego nastawnika :D

11
Wychodzi na to, że muszę potwierdzić te problemy. Płytkę kupiłem na Aliexpress za jakieś 30 zł, więc mimo iż w opisie są wpisane oba chipy to na pewno jest tutaj CH340.

Ustawiłem teraz rzadszą transmisję danych + w eu07.ini jako "update time" dałem 0.05 i mam wrażenie, że jest okej. Ponad 4 tysiące pakietów i nic, żadnych problemów z synchronizacją.

EDIT. Pochwaliłem dzień przed zachodem słońca. Chyba muszę zainwestować w płytkę z 16U2. I w sumie to muszę chyba wziąć Arduino Mega. Polecilibyście dobre MEGA z 16U2?

Próbuję teraz zrobić w końcu hamulec lub nastawnik - @mac310 napisałeś, że
Cytuj
odebrania konkretnej pozycji nastawnika z bajtu 10. Dalej bocznik to bajt 11, hamulec zespolony - 12 i hamulec pomocniczy - 14.
ale przecież każdy bajt ma 8 bitów - skąd mam wiedzieć w którym konkretnie bicie mam dać pozycję?

12
Jest lepiej, bo faktycznie komunikacja trwa cały czas - ale miewa ścinki. Jak obserwuję na F12 UART to w pewnym momencie staje na jednej przesłanej paczce, stoi 0,2 sekundy około i leci dalej. I tak z 5 razy pod rząd, potem działa wszystko okej przez 2/3 minuty i znowu. Powoduje to ścięcia się MaSzyny.

Pojawiły się w logu takie problemy jak "uart: bad sync" oraz "uart: synced, skipping one packet.." i "uart: tired of trying"

Log wygląda teraz często tak:
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0F 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C C7 0B 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0E 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C D5 0B 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0E 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C E8 0B 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0E 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C F9 0B 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0D 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 0B 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0D 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 22 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0D 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 2C 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0C 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 3A 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0C 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 47 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0C 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 51 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: bad sync
uart: read byte: 239
uart: read byte: 239
uart: read byte: 239
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 239
uart: read byte: 239
uart: read byte: 239
uart: read byte: 239
uart: synced, skipping one packet..
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0B 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 79 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0B 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 87 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0B 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 95 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0A 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C A4 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0A 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C B4 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0A 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C C3 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 0A 00 A5 01 00 00 00 00 00 00 00 00 C5 5E 76 5C D5 0C 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EF
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 02 00 A3 01 00 00 00 00 00 00 00 00 C5 5E 76 5C D3 10 00 00 00 00 00 00 01 68 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: bad sync
uart: read byte: 239
uart: read byte: 239
uart: read byte: 239
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: read byte: 0
uart: tired of trying
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C D3 14 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C E4 14 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 03 15 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 18 15 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 28 15 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 43 15 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 63 15 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 80 15 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C 91 15 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C AC 15 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C BD 15 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C D9 15 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: sync ok
uart: rx: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
uart: tx: EF EF EF EF 00 00 00 20 00 00 08 EE 02 00 00 A1 01 00 00 00 00 00 00 00 00 C5 5E 76 5C F8 15 00 00 00 00 00 00 01 67 00 00 00 00 00 00 00 00 00 00 00 00 00

13
Co do drugiej twojej odpowiedzi - właśnie problem leży w tym, że wystarczyło odkomentować Serial.available() i przyciski znowu reagują poprawnie. Teoretycznie bez tego kodu powinno nadawać pakiety, mimo iż nie zawsze otrzymuje odpowiedź z EXE?

14
Wychodzi na to, że jest dokładnie tak jak piszesz. Odbiera i wysyła np. 3000 pakietów i nagle przestaje. Jak wywaliłem Serial.available() to leci cały czas, ale za to w ogóle nie reaguje na wciśnięcie przycisku. Tylko co może być przyczyną utraty synchronizacji?
Załączam dodatkowo log z wywalonym Serial.available(), a z racji wielkości pliku załącznika z pozostawionym Serial.available() nie mogę dodać, bo doszedłem tym razem do 25 tysięcy przesłanych pakietów

15
Faktycznie miałeś rację, zaczęło to działać.

Teraz mam za to problem z samym działaniem Arduino - po pewnym czasie przestaje reagować na komunikację przez UART. Raz wystarcza ok. 1 minuta, innym razem po 3-4 przestaje komunikować się poprawnie. Specjalnie do testu dałem sobie taki kod:
volatile uint8_t zPC[52] = {0}; // standardowe bajty przekazywane do kodu Arduino
volatile uint8_t doPC[20] = {0xEF, 0xEF, 0xEF, 0xEF}; // standardowe bajty przyjmowane z kodu Arduino
         
void setup() {
    pinMode(2, OUTPUT);     //ustawienie pinu 2 jako wyjście cyfrowe
    pinMode(4, INPUT_PULLUP); //ust pinu 4 jako wejscie
    pinMode(6, INPUT_PULLUP); //ust pinu 6 jako wejscie

    digitalWrite(2, LOW);     //ustawienie stanu niskiego na pinie 2

    Serial.begin(115200);     //nawiązanie komunikacji z prędkością 115200b/s
    Serial.setTimeout(10);
    while(!Serial){};     //czekanie do nawiązania komunikacji z komputerem
  }
 
void loop() {

    bitWrite(doPC[8], 4, !digitalRead(4));   //nastawnik +
    bitWrite(doPC[8], 5, !digitalRead(6));   //nastawnik -
    if(digitalRead(4) == LOW)
    {
      digitalWrite(2, HIGH);
    }
    else if(digitalRead(4) == LOW)
    {
      digitalWrite(2, HIGH);
    }
    else
    {
      digitalWrite(2, LOW);
    }

   

    while (!Serial.available()) {};
    Serial.readBytes((char*)zPC, 52);
    Serial.write((char*)doPC, 20);

  }

Działanie programu zakończyło się po ok. 3 minutach, dioda została w stanie wysokim, a przyciski przestają zmieniać pozycję nastawnika. Możliwe jest jakieś przepełnienie bufora? Bo oczywiście po restarcie MaSzyny wszystko znowu zaczyna działać.

16
Próbuję w jakikolwiek sposób ugryźć tak hamulec jak i nastawnik, ale od kilku dni kompletnie stoję w miejscu. W żaden sposób nie potrafię przesłać do MaSzyny żądania zwiększenia pozycji nastawnika czy hamulca. Na początek próbuję zrobić chociaż zwiększanie pozycji przyciskiem - emulację klawiszy num+ i num- na Arduino. Do pliku eu07_input-uart.ini dodałem takie linijki:
0
1 impulse linebreakeropen
2 impulse linebreakerclose
3 impulse motoroverloadrelayreset
4 impulse compressoroverloadrelayreset
5 impulse converteroverloadrelayreset
6 impulse motorconnectorsopen
7 impulse alerteracknowledge
8 toggle batteryenable batterydisable
9 toggle converterenable converterdisable
10 toggle compressorenable compressordisable
11 impulse sandboxactivate
12 toggle heatingenable heatingdisable
13 impulse pantographcompressoractivate
14 toggle pantographcompressorvalveenable pantographcompressorvalvedisable
15 toggle motoroverloadrelaythresholdsetlow motoroverloadrelaythresholdsethigh
16 toggle pantographraisefront pantographlowerfront
17 toggle pantographraiserear pantographlowerrear
18 impulse wheelspinbrakeactivate
19 toggle headlightsdimenable headlightsdimdisable
20 toggle interiorlightdimenable interiorlightdimdisable
21 impulse independentbrakebailoff
22 impulse hornhighactivate
23 impulse hornlowactivate
24
25 toggle headlightenableleft headlightdisableleft
26 toggle headlightenableupper headlightdisableupper
27 toggle headlightenableright headlightdisableright
28 toggle redmarkerenableleft redmarkerdisableleft
29 toggle redmarkerenableright redmarkerdisableright
30 toggle interiorlightenable interiorlightdisable
31 toggle alarmchaintoggle
32 toggle reverserforward
33 toggle reverserneutral
34 toggle reverserbackward
35
36 impulse mastercontrollerincrease
37 impulse mastercontrollerdecrease
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

W pliku eu07.ini mam dodane takie linijki - włączyłem obsługę nastawnika:
uart COM3 115200 0.01 0.1
uarttune 0 0 0 0 1 1023 0.7 1023 0.6 1023 1 255 4000 1023 800 1023 150 1023
uartfeature yes no no no
uarttachoscale 1
uartdebug no

Niestety oczywiście nie działa to. Kod arduino do testów dałem najprostszy jaki się da:
volatile uint8_t zPC[52] = {0}; // standardowe bajty przekazywane do kodu Arduino
volatile uint8_t doPC[20] = {0xEF, 0xEF, 0xEF, 0xEF}; // standardowe bajty przyjmowane z kodu Arduino
         
void setup() {
    pinMode(2, OUTPUT);     //ustawienie pinu 2 jako wyjście cyfrowe
    pinMode(4, INPUT_PULLUP); //ust pinu 4 jako wejscie
    pinMode(6, INPUT_PULLUP); //ust pinu 6 jako wejscie

    digitalWrite(2, LOW);     //ustawienie stanu niskiego na pinie 2

    Serial.begin(115200);     //nawiązanie komunikacji z prędkością 115200b/s
    Serial.setTimeout(10);
    while(!Serial){};     //czekanie do nawiązania komunikacji z komputerem
  }
 
void loop() {

    bitWrite(doPC[8], 4, !digitalRead(4));   //nastawnik +
    bitWrite(doPC[8], 5, !digitalRead(6));   //nastawnik -
    digitalWrite(2, (bitRead(zPC[7], 6)));     //dioda baterii

    while (!Serial.available()) {};
    Serial.readBytes((char*)zPC, 52);
    Serial.write((char*)doPC, 20);

  }

Mam wrażenie, że potężnie błądzę, i nie wiem kompletnie co teraz.

Oczywiście w momencie gdy używam zwyczajnych diód czy przycisków wszystko działa prawidłowo - ten kod działa poprawnie:
volatile uint8_t zPC[52] = {0}; // standardowe bajty przekazywane do kodu Arduino
volatile uint8_t doPC[20] = {0xEF, 0xEF, 0xEF, 0xEF}; // standardowe bajty przyjmowane z kodu Arduino
         
void setup() {
    pinMode(2, OUTPUT);     //ustawienie pinu 2 jako wyjście cyfrowe
    pinMode(4, INPUT_PULLUP); //ust pinu 4 jako wejscie
    pinMode(6, INPUT_PULLUP); //ust pinu 6 jako wejscie

    digitalWrite(2, LOW);     //ustawienie stanu niskiego na pinie 2

    Serial.begin(115200);     //nawiązanie komunikacji z prędkością 115200b/s
    Serial.setTimeout(10);
    while(!Serial){};     //czekanie do nawiązania komunikacji z komputerem
  }
 
void loop() {

    bitWrite(doPC[6], 6, !digitalRead(4));   //ton wysoki
    bitWrite(doPC[6], 7, !digitalRead(6));   //ton niski
    digitalWrite(2, (bitRead(zPC[8], 6)));     //lampka CA

    while (!Serial.available()) {};
    Serial.readBytes((char*)zPC, 52);
    Serial.write((char*)doPC, 20);

  }

Czy użycie "mastercontrollerincrease" i odwrotnej w przypadku uart nie będzie działać? Czy popełniam błąd gdzie indziej?

17
Faktycznie, przepięcie przycisku na pin 4 naprawiło wszelkie problemy.

Teraz zostało mi tylko pytanie jak działać z nastawnikiem czy hamulcem? Mam potencjometr liniowy, i obrotowy. Z samym potencjometrem sobie radzę, ale nie mam pojęcia jak ustawić komunikację z exe? Uzywać: "mastercontrollerdecrease" i "mastercontrollerincrease"? Czy jest jakaś lepsza metoda?

EDIT. Sprawdziłem jeszcze i po pewnym czasie Arduino przestaje mi wysyłać dane do PCta. Nie wiem co z tym robić.

18
W eu07-input-uart wrzuciłem to co ma @mac310 i działa to właśnie tak jak pisałem wcześniej
Podłączyłem diody SHP/Czuwaka i dodałem przycisk który początkowo miał robić za syrenę, a następnie zmieniłem jego działanie na zbicie czuwaka. Diody działają, ale miewają momenty gdy przestają świecić prawidłowo. Ale za to większy problem mam z przyciskiem. W przypadku syreny działa tak, że po wciśnięciu z niewielkim opóźnieniem zaczyna trąbić, ale by przestał muszę nacisnąć drugi raz. A po podłączeniu czuwaka zbić mogę, ale gdy chcę przytrzymać, aby sprawdzić jego działanie okazuje się, że od razu naciska i puszcza. Myślałem, że chodzi o zmianę wpisu w pliku .ini z impulse na toggle, ale chyba błądzę

19
W kodzie nie zmieniłem dużo, stwierdziłem, że chcę najpierw dojść do prawidłowego działania podstawy.
volatile uint8_t zPC[52] = {0}; // standardowe bajty przekazywane do kodu Arduino
volatile uint8_t doPC[20] = {0xEF, 0xEF, 0xEF, 0xEF, 0}; // standardowe bajty przyjmowane z kodu Arduino
         
void setup() {
    pinMode(2, OUTPUT);     //ustawienie pinu 2 jako wyjście cyfrowe
    pinMode(3, OUTPUT);     //ustawienie pinu 3 jako wyjście cyfrowe
    pinMode(0, INPUT_PULLUP); //ust pinu 0 jako wejscie

    digitalWrite(2, LOW);     //ustawienie stanu niskiego na pinie 2
    digitalWrite(3, LOW);     //ustawienie stanu niskiego na pinie 3

    Serial.begin(115200);     //nawiązanie komunikacji z prędkością 115200b/s
    Serial.setTimeout(10);
    while(!Serial){};     //czekanie do nawiązania komunikacji z komputerem
  }
 
void loop() {

    digitalWrite(2, (bitRead(zPC[8], 6)));     //czuwak
    digitalWrite(3, (bitRead(zPC[8], 7)));     //shp
    bitWrite(doPC[4], 7, !digitalRead(0));   //syrena ton wysoki

    while (!Serial.available()) {};
    Serial.readBytes((char*)zPC, 52);
    Serial.write((char*)doPC, 20);

  }

Dodatkowo taki fragment dodałem do eu07.ini:
uart COM5 115200 0.01 0.1
uarttune 0 0 0 0 1 1023 0.7 1023 0.6 1023 1 255 4000 1023 800 1023 150 1023
uartfeature no no no no
uarttachoscale 1
uartdebug no

20
Podłączyłem diody SHP/Czuwaka i dodałem przycisk który początkowo miał robić za syrenę, a następnie zmieniłem jego działanie na zbicie czuwaka. Diody działają, ale miewają momenty gdy przestają świecić prawidłowo. Ale za to większy problem mam z przyciskiem. W przypadku syreny działa tak, że po wciśnięciu z niewielkim opóźnieniem zaczyna trąbić, ale by przestał muszę nacisnąć drugi raz. A po podłączeniu czuwaka zbić mogę, ale gdy chcę przytrzymać, aby sprawdzić jego działanie okazuje się, że od razu naciska i puszcza. Myślałem, że chodzi o zmianę wpisu w pliku .ini z impulse na toggle, ale chyba błądzę

21
Jeżeli dobrze zrozumiałem to ten kod razem z odpowiednimi linijkami w eu07.ini spowoduje działanie na pulpicie diody shp, diody czuwaka i 1 amperomierza?  Tablica zPC i do PC mają stały kształt na podstawie ramki? Czy źle rozumiem?

22
Od kilku tygodni uczę się Arduino i opanowałem już sporą część (kilka lat temu programowałem w C++), ale próbuję teraz zrozumieć jak sama Maszyna ma się komunikować z Arduino. W Arduino mam dodać elementy pulpitu, ale jak nawiązać samą komunikację z MaSzyną? Przejrzałem wątek, oraz zaglądałem w wątek gdzie jest m.in. MWD Serial Port Tester i szczerze powiedziawszy niewiele jestem w stanie z tego zrozumieć. Gdy próbowałem użyć biblioteki Maszynaduino - za każdym razem błąd kompilacji dla Arduino Uno. Mogę liczyć na jakąś pomoc?

23
Pomoc doraźna / Mini-pulpit do Elfa na Arduino
« dnia: 18 Września 2021, 17:10:12 »
Cześć,
od kilku lat posiadam zrobiony przez kolegę mini-pulpit do Elfa (zdjęcia w załączniku). Pulpit posiada nastawnik jazdy/hamowania, manipulator hamulca pneumatycznego, dwa przyciski - jeden do czuwaka, drugi do jednego tonu syreny oraz dwie diody - jedna do ogólnej informacji o działaniu, druga do czuwaka/shp. Pulpit jest oparty na płytce która jest zgodna z Arduino Uno.

Problem polega na tym, że ze słów kolegi zrozumiałem, iż jakichś czas temu został zmieniony protokół i pulpit nie działa, a ja próbuję go jakoś uruchomić, tylko nie mam pojęcia jak. Może ktoś tutaj jest w stanie mi pomóc?

Wcześniej gdy wszystko działało poprawnie dostałem od kolegi plik .exe który dodawał do pliku eu07.ini takie linijki:
uart COM3 9600 0.1 0.05 //
uarttune 0 215 175.0 874.0 0.9 1023.0 0.7 1023.0 0.5 1023.0 4000.0 1023.0 800.0 1023.0 //
uartfeature yes yes yes no //
uartdebug no //

Z góry dziękuję za wszelką pomoc

24
Bieżące kolejowe / Odp: Tempomat w praktyce
« dnia: 05 Lutego 2020, 22:17:08 »
Jak nie wierzysz to sprawdź nawet na samochodzie - przy jeździe na tempomacie spalisz więcej paliwa niż jadąc samodzielnie. Np. z górki odpuścisz gaz. Taki tempomat Lokela potrafi na lekkich wzniesieniach świrować i zadawać moc, a następnie przyhamowywać, i tak na zmianę.

25
Bieżące kolejowe / Odp: Tempomat w praktyce
« dnia: 04 Lutego 2020, 13:13:20 »
W takim Intercity instruktorzy często każą jechać na wyłączonym tempomacie lub ustawionym na maksymalną prędkość eksploatacyjną. W PRach widziałem różne praktyki. Ale raczej korzystają. A w takich Niemczech w ogóle nie używają, bo tempomat nie jest eko...

26
Poszukuję, chcę zrobić / Odp: ED160 i EN75
« dnia: 22 Grudnia 2019, 12:18:37 »
Mam trochę różnych zdjęć z ED160, ale głównie to zdjęcia szczegółów o które ktoś mnie kiedyś prosił - może coś z tego wykorzystasz.
https://eu07.pl/userfiles/21538/foto_Flirt_ED160.7z

27
W tym roku nie braknie Dwururek? Sporo na Gorzów jeździ, niby z Krakowa SM42-3002 i z Gdyni SM42-3001 będą też jeździć, ale mimo wszystko trochę mało chyba?

28
Tabor kolejowy / Odp: Zdjęcia taboru na tekstury
« dnia: 29 Listopada 2018, 22:19:34 »
Zdjęcia na teksturę i/lub model Linka SA139-006
http://eu07.pl/userfiles/21538/foto-Nowy_folder.7z

29
Bieżące kolejowe / Odp: Pytania o zawód maszynisty
« dnia: 05 Listopada 2018, 17:46:26 »
To raczej się odpowiedzi nie spodziewaj, bo już dawno po spotkaniach. Rozmowy odbywały się od 9 października. 18 chyba było ostatnie w Warszawie.

30
Bieżące kolejowe / Odp: Porównanie Elfa, Darta i Flirta 3 PKP IC
« dnia: 07 Września 2018, 21:28:07 »
Fotele w Pendolino wygodne? Jestem szczupły i są dla mnie zbyt wąskie, osoba szersza nie ma szans na wygodną podróż w drugiej klasie (ew. w przedziale matki z dzieckiem).

Strony: [1] 2 3 4