Autor Wątek:  Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.  (Przeczytany 633676 razy)

0 użytkowników i 2 Gości przegląda ten wątek.

Offline barman_2000

  • Wiadomości: 151
    • Zobacz profil
  • Otrzymane polubienia: 121
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1080 dnia: 12 Czerwca 2022, 21:46:57 »
Na ten moment nie kupił nikt. Byli, oglądali, ale jak stały tak stoją. Za to dużo wagonów nareszcie poszło na złom.

Online lcddisplay

  • Deweloper
  • Wiadomości: 207
    • Zobacz profil
  • Otrzymane polubienia: 429
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1081 dnia: 13 Czerwca 2022, 13:51:13 »
Dzwoniłem wszędzie. Nigdzie nic nie załatwiłem. Może coś będzie w ZNKT do modernizacji, ale mam dzwonić w wakacje.
Uśmiechnij się :)

Offline Rafal1624

  • Wiadomości: 6
    • Zobacz profil
  • Otrzymane polubienia: 7
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1082 dnia: 15 Czerwca 2022, 13:42:22 »
Niestety temat tabu części trzeba mieć trochę szczęścia i znajomego Pana Zenka od palnika ponieważ ani spółki ani Olmet nie sprzedają osobom prywatnym

Online jakisrandomowynoob

  • Betatester
  • Wiadomości: 179
  • Hehe bo wiecie, avatar
    • Zobacz profil
  • Otrzymane polubienia: 152
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1083 dnia: 15 Czerwca 2022, 20:39:35 »
Olmet ogólnie nie jest zainteresowany sprzedażą detaliczną. Na moim lokalnym wąskim torze podobno chcieli coś do rumuna kupić (podobno ST43, SP32 i Lxd2 mają parę podobnych części) i się nie dało. Chyba tylko na tony do huty.
Zadziwiające jest, ile rzeczy w plikach MaSzyny można zmienić korzystając tylko z notatnika.

Offline pociagiwroclaw

  • Wiadomości: 16
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1084 dnia: 06 Lipca 2022, 21:35:30 »
Jak połączyliście swóje Arduino z maszyną? Jaki port? COM5? Potrzebuję pomocy w tym temacie podłączenia.

Online lcddisplay

  • Deweloper
  • Wiadomości: 207
    • Zobacz profil
  • Otrzymane polubienia: 429
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1085 dnia: 14 Lipca 2022, 14:59:26 »
Jakie potencjometry najlepiej wykorzystać do hamulców?
Uśmiechnij się :)

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1086 dnia: 14 Lipca 2022, 19:09:00 »
Jakie potencjometry najlepiej wykorzystać do hamulców?
Liniowe 10K
Historia budowy pulpitu lokomotywy serii EU07.

Offline pociagiwroclaw

  • Wiadomości: 16
    • Zobacz profil
  • Otrzymane polubienia: 1
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1087 dnia: 14 Lipca 2022, 20:16:15 »
Ponawiam pytanie:
Jak połączyliście swoje Arduino z maszyną? Jaki port? COM5? Potrzebuję pomocy w tym temacie podłączenia.

Online lcddisplay

  • Deweloper
  • Wiadomości: 207
    • Zobacz profil
  • Otrzymane polubienia: 429
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1088 dnia: 15 Lipca 2022, 08:36:09 »
Jakie potencjometry najlepiej wykorzystać do hamulców?
Liniowe 10K

Dzięki za pomoc.

A teraz mam jeszcze pytanie do ekspertów Arduino.

Do wysterowania wskazówek manometrów chciałbym wykorzystać silniki krokowe x27.168.

Podłączyłem wszystko poprzez sterownik AX1201728SG:

https://guy.carpenter.id.au/gaugette/resources/2017-04-29/AX1201728SG_bb.png

No i teraz autor rozwiązania proponuje taki kod, żeby wskazówki się poruszały:

Cytuj
#include <SwitecX12.h>

const int STEPS = 315 * 12;
const int A_STEP = 8;
const int A_DIR = 9;
const int RESET = 10;

SwitecX12 motor1(STEPS, A_STEP, A_DIR);


void setup() {
  digitalWrite(RESET, HIGH);
  Serial.begin(9600);
  motor1.zero();
  motor1.setPosition(STEPS/2);
}

void loop() {
  static bool forward = true;
  static int position1 = STEPS * 3/4;
  static int position2 = STEPS * 1/4;
  if (motor1.stopped) {
    motor1.setPosition(forward ? position1 : position2);
    forward = !forward;
  }
  motor1.update();
}

Nie znam się kompletnie na programowaniu. Jak to przerobić, żeby ten silnik reagował na ciśnienie w przewodzie głównym?
« Ostatnia zmiana: 15 Lipca 2022, 10:09:25 wysłana przez matek123 »
Uśmiechnij się :)

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1089 dnia: 21 Lipca 2022, 11:27:38 »
No jeśli się kompletnie nie znasz na programowaniu to będzie trudno. Coś można podpowiedzieć ale raczej gotowca nie dostaniesz, w którym nic nie trzeba będzie dostosować/zmienić/poprawić.
Jeśli podłączyłeś wszystko i na testowym programie od Guy'a Ci działa ten silniczek to teraz musisz pobrać dane dla wskazań, które przychodzą z EXE po UART (to są bajty od 11 do 16) i użyć je do sterowania silniczkami.
motorX.setPosition(wartość_z_exe)Nie wiem jak u Ciebie ale ja miałem chyba rozdzielczość co 1/3 stopnia, więc 315*3 w stałej STEPS.
Dla 3 manometrów podpiąć trzeba 7 pinów (po 2 dla każdego manometru STEP i DIR) oraz jeden RESET. Kod z przykładu uwzględnia jeden silniczek więc kolejne dwa trzeba rozmnożyć w kodzie dodając dodatkowe zmienne i linie obsługi tych silniczków.
To co jest w loop'ie trzeba zamienić kodem wykorzystującym dane z exe na kąt obrotu silniczka (zmienne BrakePress, PipePress, TankPress w moim przypadku).
Tu przykładowa funkcja obsługi 3 silniczków:
void manometry_x25()  {
  motor1.setPosition(map(BrakePress, 0, 1023, 0, 3126));  // przewod glowny X * 3780 / 1023
  motor1.update();
  motor2.setPosition(map(PipePress, 0, 1023, 0, 3126));   // przewod glowny X * 3780 / 1023
  motor2.update();
  motor3.setPosition(map(TankPress, 0, 1023, 0, 3318));   // przewod glowny X * 3780 / 1023
  motor3.update();
}
map jest po to, żeby dopasować wartość z exe (od 0 do 1023) do użytecznego zakresu wskazań na skali manometrów (od 0 do 3xxx zależnie od manometru).
« Ostatnia zmiana: 21 Lipca 2022, 11:38:33 wysłana przez mac310 »
Historia budowy pulpitu lokomotywy serii EU07.

Offline Mariusz1970

  • Zasłużony dla Symulatora
  • Wiadomości: 3925
    • Zobacz profil
  • Otrzymane polubienia: 277
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1090 dnia: 21 Lipca 2022, 11:59:11 »
Ale też nie ma się czym zrażać, jeśli nawet programowanie dla kogoś, to czarna magia. Przykładem jest tutaj kolega powyżej i pamiętam, jak budował swój pierwszy pulpit i zarzekał się, że elektronika oraz programowanie, to raczej czarna magia. Obserwując kolegi działalność, jestem pod wrażeniem.
Gratuluję!

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1091 dnia: 21 Lipca 2022, 15:02:05 »
A dziękuję. Oczywiście, że nie można się zrażać ale trzeba chcieć. Ja nie miałem formalnych podstaw. Nie byłem w żadnej szkole elektronicznej czy informatycznej ale bardzo chciałem mieć działający pulpit. Dzisiejszy efekt to w sumie jakieś 10 lat prób i modyfikacji. Jak patrzyłem na wcześniejsze rozwiązania na bazie klawiatur czy innych układów to mnie to trochę przerażało. PoKeys dał łagodny start i coś udało się budować. Później wpadło mi w oko Arduino i różne filmy na YT np. Elektroprzewodnik. Tak zacząłem się tym bawić i robić jakieś małe projekty nie związane z pulpitem. Trochę się oswoiłem z płytką i sposobem programowania. Jak zacząłem myśleć o przesiadce z PoKeys na Arduino to coś tam już wiedziałem i mogłem eksperymentować. Na początek z pająkami na biurku podłączając wyjście na lampki sygnalizacyjne w postaci samych diod. Bez podpowiedzi Kolegów z tego forum byłoby ciężko dlatego też staram się dzielić swoimi doświadczeniami i tutaj, i na swojej stronie. Myślę jednak, że trzeba spróbować się nauczyć pewnych podstaw, żeby dało się jakoś komunikować. Tak jak pisałem wyżej nikt nie wrzuci tu raczej gotowego kodu w całości. Raz, żeby nie oddawać tak po prostu miesięcy lub lat pracy, a po drugie to każdy z projektów jest inny i zawsze trzeba dostosowywać rozwiązania do swoich potrzeb i możliwości.
Dlatego lcddisplay nie powinien się zniechęcać ale też trochę zaznajomić ze środowiskiem Arduino. Warto pooglądać różne poradniki jakich wiele na YT i pobawić się na przykładach zwykle dostarczanych z bibliotekami. Sam korzystałem, w przypadku prób z napędem manometrów z projektu Guy'a i najpierw pobawiłem się przykładami dołączonymi do biblioteki obsługującej te silniczki krokowe.
« Ostatnia zmiana: 21 Lipca 2022, 15:04:18 wysłana przez mac310 »
Historia budowy pulpitu lokomotywy serii EU07.

Online lcddisplay

  • Deweloper
  • Wiadomości: 207
    • Zobacz profil
  • Otrzymane polubienia: 429
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1092 dnia: 23 Lipca 2022, 12:53:18 »
Dziękuje za naprowadzenie. Elektronikę ogarniam, zrobię PCB, polutuję. Natomiast Arduino dopiero się uczę na potrzeby budowy pulpitu.

Widzę, że masz rozdzielczość 10 bitową. Maszyna obsługuje 8 bitową tylko, tak?

Odnośnie tego:

Cytuj
map jest po to, żeby dopasować wartość z exe (od 0 do 1023) do użytecznego zakresu wskazań na skali manometrów (od 0 do 3xxx zależnie od manometru).

U mnie to wygląda tak:

- użyteczny zakres silnika krokowego to 315 stopni
- 12 kroków na stopień = 315 * 12 = 3780

Jeśli ciśnienie maksymalne w zbiorniku głównym na manometrze to 1,6Mpa, a maksymalne wskazanie w symulatorze kiedy zbiornik jest pełny to 0,8Mpa to skaluję z proporcji:

3780 = 1,6
x = 0,8

x= 1890

Wobec tego:

motor1.setPosition(map(zPC[11], 0, 255, 0, 1890));
motor1.update();

I takie właśnie rozwiązanie u mnie funkcjonuje prawidłowo.

Bo w sumie skąd mam wziąć informację o maksymalnym ciśnieniu dla wartości bitowej 255?

Teraz mam tą informację z obserwacji i dopasowania pracy fizycznej wskazówki silniczka do wskazania manometru na symulatorze.

No bo 255 to raczej nie jest 1,6Mpa w głównym zbiorniku, prawda?
« Ostatnia zmiana: 24 Lipca 2022, 16:59:14 wysłana przez lcddisplay »
Uśmiechnij się :)

Offline CTL

  • Zasłużony dla Symulatora
  • Wiadomości: 381
    • Zobacz profil
  • Otrzymane polubienia: 56
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1093 dnia: 24 Lipca 2022, 19:52:27 »
Ponieważ poprzedni kupujący się rozmyślił mam do sprzedania prędkościomierz wskazujący RT9 z napędem na linkę. Prędkościomierz już zapakowany. Cena to 150zł + KW ok. 25zł.

Online lcddisplay

  • Deweloper
  • Wiadomości: 207
    • Zobacz profil
  • Otrzymane polubienia: 429
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1094 dnia: 25 Lipca 2022, 12:32:25 »
Którego exe mam używać, żeby wysterować manometry 10 bitami? Na standardowym działa tylko 8 bitowe sterowanie.
Uśmiechnij się :)

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1095 dnia: 01 Sierpnia 2022, 22:53:37 »
Wyjście z exe jest na dwóch bajtach więc można wykorzystać 10 bitów co też zrobiłem w tym teście. Liczyłem na płynniejszą pracę ale jednak widać delikatne skoki wskazówki.
Twoje obliczenia nie do końca są poprawne bo nie uwzględniasz skalowania do wartości ciśnienia tylko do kąta, który wskaże wskazówka przy maksymalnym ciśnieniu. W tym przypadku mając 3780 kroków to dla maksymalnego wskazania wyszło mi 3318, co masz w moim przykładzie dla zbiornika głównego. Ja robiłem o ile pamiętam dla 1/3 stopnia. Musiałbym sobie przypomnieć jak to liczyłem ale generalnie działało mi to jak możesz zobaczyć na moim nagraniu z YT. No ale jak działa to nie trza psuć. Jak weźmiesz dane z jednego bajtu to będziesz miał rozdzielczość 8 bitową, a jak z dwóch to więcej, ale nie wiem czy to coś wnosi na płynność wskazań. Jakoś nie zauważyłem za bardzo.
Historia budowy pulpitu lokomotywy serii EU07.

Online lcddisplay

  • Deweloper
  • Wiadomości: 207
    • Zobacz profil
  • Otrzymane polubienia: 429
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1096 dnia: 05 Sierpnia 2022, 14:08:24 »
Dziękuję za rzeczową odpowiedź. Natomiast jeśli ustawię wartość maksymalnego wychylenia w stosunku do maksymalnego wskazania na manometrze to wtedy wskazówka pokazuje bzdury.
Dlatego moje pytanie brzmi, czy maksymalna wartość w bitach, tudzież 255 dla zbiornika głównego to 1,6 Mpa czy raczej 0,8 Mpa według symulatora?

« Ostatnia zmiana: 05 Sierpnia 2022, 16:39:34 wysłana przez matek123 »
Uśmiechnij się :)

Offline Hirek

  • Wiadomości: 296
  • ugułem to siemens fajne wozy robi
    • Zobacz profil
    • Kanał YT
  • Otrzymane polubienia: 212
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1097 dnia: 05 Sierpnia 2022, 20:07:57 »
Śledzę sobie ten wątek od dłuższego czasu. W ciągu ostatnich dni, dzięki uprzejmości dyrektora jednego z zakładów udało mi się uzbierać dużo elementów pod budowę pulpitu ET22. Wczoraj odebrałem z paczkomatu swojego klona Arduino Mega (niestety na konwerterze CH340). Na ten moment udało mi się pobawić trochę woltomierzami, amperomierzami, hebelkami. Dziś ruszyłem trochę dalej i zamontowałem lampki CA/SHP do ich właściwego miejsca. Na razie prowizorka ale zawsze jakiś początek musi być.

Lampki to najzwyklejsze LEDy na 12V. Zasilane z zasilacza ATX z linii 12V i sterowanie zasilaniem lampek przez płytkę przekaźnikową. Sam zasilacz jest załączany w momencie gdy zostanie nawiązana komunikacja między arduino a symulatorem. Na dniach chciałbym zacząć ogarniać blat pod pulpit i tu też moje pytanie. Czy miałby ktoś z was podrzucić jakieś wymiary blatu ET22? Pozdrawiam i miłego.
Z maszyną od PC 08.13
Tak, to ten furas co wydał MaSzynę xD

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1098 dnia: 08 Sierpnia 2022, 13:51:20 »
Dziękuję za rzeczową odpowiedź. Natomiast jeśli ustawię wartość maksymalnego wychylenia w stosunku do maksymalnego wskazania na manometrze to wtedy wskazówka pokazuje bzdury.
Dlatego moje pytanie brzmi, czy maksymalna wartość w bitach, tudzież 255 dla zbiornika głównego to 1,6 Mpa czy raczej 0,8 Mpa według symulatora?
Patrząc na to co mam w kodzie testowym, gdy sobie ćwiczyłem zastosowanie tych silniczków to mam tak jak pisałem wcześniej:
motor3.setPosition(map(TankPress, 0, 1023, 0, 3318));gdzie TankPress to wartość z exe, a konkretnie ciśnienie w zbiorniku głównym z obu bajtów 15 i 16, żeby mieć zakres 10 bitowy (do 1023).
zPC_TankPress = zPC[15];
zPC_TankPress1 = zPC[16];
TankPress = (zPC_TankPress << 0) | (zPC_TankPress1 << 8);
Jeśli chcesz na jednym bajcie to po prostu bierzesz sobie tylko bajt 15 i robisz mapowanie nie do 1023 tylko do 255.
Odpowiadając na pytanie, to ciśnienie z exe chyba jest w barach i max czyli 255 (lub 1023) to jest max na skali manometru. Ja to sobie robiłem tak, że odpalałem ten program testujący od @maciek001. Tam ustawiam rozdzielczość, którą wykorzystuje (8 lub 10 bitów) i suwakiem od danego manometru szukam maksymalnej wartości wskazywanej na skali manometru. To oczywiście gdy w kodzie dla silnika jest pełen zakres i mapowanie wtedy jest 0, 1023, 0, 3780. Wtedy wychodzi, że maksymalne wskazanie nie jest oczywiście na końcu zakresu silniczka tylko wcześniej i ograniczam wtedy zakres pracy silniczka (liczbę kroków) tak aby mapowanie zakresu 0-1023 (lub jak wolisz 0-255) odpowiadało zakresowi kroków 0-X, gdzie X będzie maksymalną wartością na skali manometru (1,6 dla ZG lub 1,0 dla PG i CH) dlatego w moim przypadku zakres dla ZG to 0-3318 i takie mapowanie mam w finalnym kodzie. Oczywiście użyteczny zakres pracy musisz podać w eu07.ini w linii uarttune, gdzie podaje się wartości ciśnienia i odpowiadające im wartości przesyłane po UART. Dla 10 bitów i ZG powinno tam być 1.6 1023 (lub dla 8 bitów 1.6 255). To powoduje, że exe wysyła wartość z podanego w ini zakresu 0-1023 lub 0-255 i tę wartość wykorzystujesz w kodzie, żeby przemapować na kroki silniczka w zakresie od 0 do wartości odpowiadającej maksimum na skali. Po tym wszystkim bawiąc się suwaczkiem w programie diagnostycznym powinieneś mieć wskazania od 0 do maksimum skali. Zatem zakres tego co wysyła exe zależy od wpisu uarttune w eu07.exe.

Edit1: Policzyłem sobie jeszcze jak to wszystko działa i wyszło mi, że użyteczny kąt dla pełnych skali manometrów to około 276°. Jeśli użyjemy 10 bitów to wychodzi ok 0,3° na bit co daje 3 kroki na 1°. W związku z tym Używając tego specjalizowanego układu AX1201728SG i 10 bitów z exe to i tak wracamy do rozdzielczości podstawowej zamiast 12 kroków na 1°. Ten 1° na ok. 50 mm długości wskazówki daje prawie 0,9 mm na jej końcu. Przy pewnej bezwładności silniczka to raczej nie daje szans na płynne wskazania. Niby 1 bit powoduje przesunięcie liniowe ok 0,3 mm na końcu wskazówki i to powinno nie być bardzo widoczne jednak dane z exe zanim trafią do silnika to pewnie chwilę trwa i on nie wskazuje wartości co 1 bit tylko skokowo co kilka i stąd drgający ruch wskazówek. Muszę się jeszcze pobawić parametrami w bibliotece Switec i może to coś poprawi.

Edit2: Pobawiłem się jeszcze raz tymi silniczkami i zaktualizowałem swój opis na https://baur.pl/manometry-naped-alternatywny/ Może komuś się przyda.
« Ostatnia zmiana: 16 Sierpnia 2022, 15:35:08 wysłana przez mac310 »
Historia budowy pulpitu lokomotywy serii EU07.

Offline CTL

  • Zasłużony dla Symulatora
  • Wiadomości: 381
    • Zobacz profil
  • Otrzymane polubienia: 56
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1099 dnia: 12 Sierpnia 2022, 19:48:01 »
Posiadam szybkościomierz rejestrujący RT13 (wpuszczany w pulpit jak niegdyś na EP09, lub T448p), szybkościomierz w pełni sprawny i kompletny o zakresie do 210km/h. Zainteresowanych zapraszam na PW.

Online lcddisplay

  • Deweloper
  • Wiadomości: 207
    • Zobacz profil
  • Otrzymane polubienia: 429
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1100 dnia: 16 Sierpnia 2022, 23:30:37 »
Dziękuję za rzeczową odpowiedź. Natomiast jeśli ustawię wartość maksymalnego wychylenia w stosunku do maksymalnego wskazania na manometrze to wtedy wskazówka pokazuje bzdury.
Dlatego moje pytanie brzmi, czy maksymalna wartość w bitach, tudzież 255 dla zbiornika głównego to 1,6 Mpa czy raczej 0,8 Mpa według symulatora?
Patrząc na to co mam w kodzie testowym, gdy sobie ćwiczyłem zastosowanie tych silniczków to mam tak jak pisałem wcześniej:
motor3.setPosition(map(TankPress, 0, 1023, 0, 3318));gdzie TankPress to wartość z exe, a konkretnie ciśnienie w zbiorniku głównym z obu bajtów 15 i 16, żeby mieć zakres 10 bitowy (do 1023).
zPC_TankPress = zPC[15];
zPC_TankPress1 = zPC[16];
TankPress = (zPC_TankPress << 0) | (zPC_TankPress1 << 8);
Jeśli chcesz na jednym bajcie to po prostu bierzesz sobie tylko bajt 15 i robisz mapowanie nie do 1023 tylko do 255.
Odpowiadając na pytanie, to ciśnienie z exe chyba jest w barach i max czyli 255 (lub 1023) to jest max na skali manometru. Ja to sobie robiłem tak, że odpalałem ten program testujący od @maciek001. Tam ustawiam rozdzielczość, którą wykorzystuje (8 lub 10 bitów) i suwakiem od danego manometru szukam maksymalnej wartości wskazywanej na skali manometru. To oczywiście gdy w kodzie dla silnika jest pełen zakres i mapowanie wtedy jest 0, 1023, 0, 3780. Wtedy wychodzi, że maksymalne wskazanie nie jest oczywiście na końcu zakresu silniczka tylko wcześniej i ograniczam wtedy zakres pracy silniczka (liczbę kroków) tak aby mapowanie zakresu 0-1023 (lub jak wolisz 0-255) odpowiadało zakresowi kroków 0-X, gdzie X będzie maksymalną wartością na skali manometru (1,6 dla ZG lub 1,0 dla PG i CH) dlatego w moim przypadku zakres dla ZG to 0-3318 i takie mapowanie mam w finalnym kodzie. Oczywiście użyteczny zakres pracy musisz podać w eu07.ini w linii uarttune, gdzie podaje się wartości ciśnienia i odpowiadające im wartości przesyłane po UART. Dla 10 bitów i ZG powinno tam być 1.6 1023 (lub dla 8 bitów 1.6 255). To powoduje, że exe wysyła wartość z podanego w ini zakresu 0-1023 lub 0-255 i tę wartość wykorzystujesz w kodzie, żeby przemapować na kroki silniczka w zakresie od 0 do wartości odpowiadającej maksimum na skali. Po tym wszystkim bawiąc się suwaczkiem w programie diagnostycznym powinieneś mieć wskazania od 0 do maksimum skali. Zatem zakres tego co wysyła exe zależy od wpisu uarttune w eu07.exe.

Edit1: Policzyłem sobie jeszcze jak to wszystko działa i wyszło mi, że użyteczny kąt dla pełnych skali manometrów to około 276°. Jeśli użyjemy 10 bitów to wychodzi ok 0,3° na bit co daje 3 kroki na 1°. W związku z tym Używając tego specjalizowanego układu AX1201728SG i 10 bitów z exe to i tak wracamy do rozdzielczości podstawowej zamiast 12 kroków na 1°. Ten 1° na ok. 50 mm długości wskazówki daje prawie 0,9 mm na jej końcu. Przy pewnej bezwładności silniczka to raczej nie daje szans na płynne wskazania. Niby 1 bit powoduje przesunięcie liniowe ok 0,3 mm na końcu wskazówki i to powinno nie być bardzo widoczne jednak dane z exe zanim trafią do silnika to pewnie chwilę trwa i on nie wskazuje wartości co 1 bit tylko skokowo co kilka i stąd drgający ruch wskazówek. Muszę się jeszcze pobawić parametrami w bibliotece Switec i może to coś poprawi.

Edit2: Pobawiłem się jeszcze raz tymi silniczkami i zaktualizowałem swój opis na https://baur.pl/manometry-naped-alternatywny/ Może komuś się przyda.

Wyczerpałeś temat, dziękuję Ci bardzo. Naprowadziłeś mnie po raz kolejny. Zakres pracy definiuje kod Arduino, ale również plik INI.

Ja również spróbuję pobawić się płynnością wskazań i dam znać co mi wyszło.

Jeszcze trochę z innej beczki, próbuję podłączyć przycisk pod kasowanie CA/SHP. Pomiędzy PIN52 i GND mam obwód, który jest zamykany poprzez naciśnięcie przycisku.

Dlaczego mimo tego, że obwód jest otwarty to w symulatorze mam wciśnięty przycisk?

Oto kod:

bitWrite(doPC[4], 7, digitalRead(52));
Kiedy natomiast zastouję taki kod:

    if(digitalRead(52) == LOW)
    {
      bitWrite(doPC[4], 7, 1);
    }
    else{
      bitWrite(doPC[4], 7, 0);
    }

wtedy wszystko działa jak należy. Ale dlaczego tak jest?
« Ostatnia zmiana: 17 Sierpnia 2022, 22:16:24 wysłana przez lcddisplay »
Uśmiechnij się :)

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1101 dnia: 17 Sierpnia 2022, 23:11:24 »
A jak masz zdefiniowany w setupie pinMode dla tego przycisku? Jeśli chcesz sterować stanem niskim to powinien być podciągnięty do zasilania (INPUT_PULLUP).
Historia budowy pulpitu lokomotywy serii EU07.

Offline deletet

  • Wiadomości: 11
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1102 dnia: 17 Sierpnia 2022, 23:12:01 »
 
   if(digitalRead(52) == LOW)
    {
      bitWrite(doPC[4], 7, 1);
    }
    else{
      bitWrite(doPC[4], 7, 0);
    } 
Masz sterowanie masą, czyli GND. Podając GND na pin uC odczytuje to jako stan niski, czyli LOW i wykonuje się pierwszy warunek.
Każdy inny stan na pinie jest odczytywany jako HIGH.

Najprościej jest ustawić pinmode jako INPUT_PULLUP. W takim przypadku trzeba użyć negacji przy digitalWrite, czyli w twoim przypadku :
bitWrite(doPC[4], 7, !digitalRead(52));
U mnie działa :)

Online lcddisplay

  • Deweloper
  • Wiadomości: 207
    • Zobacz profil
  • Otrzymane polubienia: 429
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1103 dnia: 17 Sierpnia 2022, 23:22:55 »
Dobra Panowie to teraz tak, miałem to wpięte do GND i PIN52 i sterowałem stanem niskim. Teraz przepiąłem do +5V i PIN52 i dodatkowo PIN52 puściłem przez rezystor do GND. W ten sposób działa prawidłowo. W takiej konfiguracji mam PULLDOWN.

Pytanie czy Wy się bawicie w rezystory czy korzystacie właśnie z funkcji PULLUP?
Uśmiechnij się :)

Offline deletet

  • Wiadomości: 11
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1104 dnia: 17 Sierpnia 2022, 23:26:54 »
Ja korzystam z funkcji PULLUP, żadnych rezystorów. Moim zdaniem zmniejsza ryzyko ewentualnej usterki i zmniejsza ilość elementów w układzie.
« Ostatnia zmiana: 17 Sierpnia 2022, 23:34:47 wysłana przez deletet »

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1105 dnia: 17 Sierpnia 2022, 23:32:12 »
Zdecydowanie wszystkie wejścia jako INPUT_PULLUP. Żadnych dodatkowych rezystorów podciągających. Po to to jest, żeby sobie życie i projekty ułatwiać.
« Ostatnia zmiana: 17 Sierpnia 2022, 23:33:26 wysłana przez mac310 »
Historia budowy pulpitu lokomotywy serii EU07.

Online lcddisplay

  • Deweloper
  • Wiadomości: 207
    • Zobacz profil
  • Otrzymane polubienia: 429
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1106 dnia: 17 Sierpnia 2022, 23:42:07 »
Dobra, no to jestem w domu z przyciskami impulsowymi.

To teraz kolejne pytanie do Was jak mają być kodowane przyciski, które mają kilka pozycji, np. takie od kanału radia?

Uśmiechnij się :)

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1107 dnia: 18 Sierpnia 2022, 00:03:09 »
Uuuu Paaanie. Z radiem to inna sprawa. Czekam,  aż kiedyś może uda się, żeby taki przełącznik dało się obsłużyć jak nastawnik, wysyłając do exe konkretny numer kanału. Niestety nie wiem kiedy to się stanie więc na razie zrobiłem sobie tak, że przełączenie w prawo wysyła impuls zwiększający numer kanału, a w lewo, zmniejszający. Działa choć nie można za szybko kręcić bo się zgubi.
Ale to jedyny przypadek, jeszcze tylko podobnie działa przełącznik głośności w Radmorze. Inne orzełączniki na pulpicie działają jak hebelki za wyjątkiem przełącznika rodzaju hamulca, który ma 3 pozycje (podobnie jak nastawnik kierunkowy) ale można rozpoznawać tylko dwie skrajne pozycje, a trzecia (środkowa) będzie wtedy gdy skrajne nie są rozpoznane.
Historia budowy pulpitu lokomotywy serii EU07.

Online lcddisplay

  • Deweloper
  • Wiadomości: 207
    • Zobacz profil
  • Otrzymane polubienia: 429
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1108 dnia: 18 Sierpnia 2022, 00:08:57 »
Dobra, a z tym nastawnikiem to jak najlepiej? Odczytaną określoną oporność z kolumny nastawnika stosować jako numer pozycji? Jeżeli np. Arduino odczyta oporność 1K to ustawi pozycję 21?
Uśmiechnij się :)

Offline mac310

  • Zasłużony dla Symulatora
  • Wiadomości: 518
    • Zobacz profil
    • Moim Okiem...
  • Otrzymane polubienia: 73
Odp: Nastawnik/Pulpit do komputera - Wskazówki i gotowe projekty.
« Odpowiedź #1109 dnia: 18 Sierpnia 2022, 00:25:57 »
A to już jak tam chcesz. Można na drabince rezystorów i odczytywać analogowym pinem napięcia. Podobno tak niektórzy robią. Dobre bo potrzebujesz tylko jednego analogowego pinu na wejściu. Ja zrobiłem to bezpośrednio podpinając styki nastawnika pod piny expanderów i zbieram odczyty z podłączonych krzywek w postaci liczby 32 bitowej. Później porownuję taką liczbę ze wzorcem i wiem na jakiej pozycji jest nastawnik. U mnie działa ale musiałem zrobić dedykowaną płytkę z expanderami, żeby nie zabierać pinów z samego arduino.
Może prościej Ci będzie z rezystorami spróbować. Poeksperymentuj najpierw z bocznikiem, bo ma mniej pozycji i szybciej zobaczysz efekty.
Historia budowy pulpitu lokomotywy serii EU07.