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 - lcddisplay

Strony: [1] 2
1
Diody nie migają wolniej. Ale jest mocno zauważalna różnica w pracy tych silników krokowych od manometrów. Interwał mam 100ms, prędkość transmisji mam 9600.

2
Coś musisz mieć nie tak z tym expanderem bo u mnie jest 13 8-bitowych podłączonych do MEGA i jeden 16-bitowy do NANO w Radmorze i wszystko działa. Piny expanderów w zasadzie obsługuje się tak samo jak piny lokalne tylko dodając ich obsługę odwołujesz się do nazwy expandera i numeru pinu na nim np. exp0.digitalRead(0). Wszystkie piny wejściowe mam podciągnięte wewnętrznie np. exp0.pinMode(0, INPUT_PULLUP). Korzystam z tej biblioteki zarówno dla 8- jak i 16-bitowych wersji.

Ogólnie to w Maszynie wszystko gra, ale kiedy odpalam program MaSzynaSerialTest 1.2.2 i daje suwaki od manometrów na maksa to wskazówki zapierdzielają równo do końca. Natomiast jak podepnę ekspander PCF8575 pod I2C i uruchomię go w kodzie Arduino, żeby np. załączał przekaźniki od jakichś tam LEDów i znowu dam suwaki do końca to wskazówki przesuwają się zauważalnie wolniej. Coś dzieje się z prędkością transmisji, może tak ma być?

3
Macie jakieś pomysły dlaczego Arduino zaczyna lagować po podłączeniu 16 bitowego expandera do I2C? Jeśli wyłączę w kodzie użycie I2C to wszystko działa ok. Czy ta komunikacja nie może odbywać się jednocześnie w LOOPie i muszę mieć specjalnie wydzielony fragment kodu dla I2C?

4
Czy na potencjometry dajecie jakieś filtry lowpass? Może jakiś kondensator? Np. wartości 1uF? Bo sieje mi na inne wtyki Analog Input.

5
Mam klona Arduino Mega z CH340, i to chyba jakiegoś lichego

A spróbuj tych sterowników, które Ci podlinkowałem.

7
Ściągnąłem izolacje z cienkiego przewodu, włożyłem ją na trzpień silnika i na to dopiero wskazówkę. Jest ciasno, ale ciagle da się regulować punkt zerowy. Na filmiku widać, że ta izolacja delikatnie wystaje nad wskazówkę.

8
Dzień dobry,

wklejam filmik jak działają manometry na silniczkach krokowych x27.168.

https://youtu.be/c0938PIoBo0

9
Ma ktoś może wymiary pulpitu ET22?

10
Poszukuję, chcę zrobić / ET22 DTR
« dnia: 20 Sierpnia 2022, 21:19:53 »
Czesć, poszukuję DTR dla ET22.

11
Na warsztacie / Odp: Drawinowo od nowa (rozmowy RT).
« dnia: 18 Sierpnia 2022, 13:32:21 »
Kiedy będą realizowane pozostałe nagrania? Mam kwestię w misji 13, nagrałbym już dziś, ale nie ma wszystkich danych.

12
Super! Teraz działa wszystko jak należy. Bardzo Ci dziękuję i jestem Ci winny duże piwo ;)

Nie cytuj ostatniego postu w całości.
Matek123

13
Wg. pliku excel, który mi podlinkowałeś nie mogę uruchomić przełączenia kanału radia.

bitWrite(doPC[9], 1, digitalRead(52));
Nic się nie dzieje. Niektóre przełączniki np, światła, wyłącznik szybki - działają dobrze. Natomiast radio nie.

Domyślam się, że mogę korzystać z 8-bitowej tablicy, a sterowanie radiem będzie się odbywało w 16-bitowej?

14
Większość informacji i narzędzi znajdziesz w tym wątku.
Ja sobie zrobiłem jeszcze takie zestawienie.

O dziękuję Ci bardzo za ten plik. Natomiast w podlinkowanym wątku nie ma wszystkich informacji. Plik excel, który udostępnił maciek001 zawiera tylko odwołania do grup przełączników, nie ma tam wyszczególnionych konkretnie jaki bit za co odpowiada przy komunikacji doPC.

15
Ale o jakie adresy Ci chodzi? Szukasz opisu bitów w ramkach komunikacyjnych doPC i zPC, czy coś innego masz na myśli?

Tak, szukam opisów doPC.

16
Dobra tak zrobię, pobawię się bocznikiem najpierw. Będę próbował z odczytami oporności.

Jeszcze tylko zapytam, skąd wziąć aktualną tablicę jeśli chce wiedzieć, którymi adresami wysterować konkretnie przełączniki?

17
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?

18
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?


19
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?

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.

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?

21
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?


22
Którego exe mam używać, żeby wysterować manometry 10 bitami? Na standardowym działa tylko 8 bitowe sterowanie.

23
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?

24
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?

25
Jakie potencjometry najlepiej wykorzystać do hamulców?

26
Dzwoniłem wszędzie. Nigdzie nic nie załatwiłem. Może coś będzie w ZNKT do modernizacji, ale mam dzwonić w wakacje.

27
No to będę jutro dzwonił. Zobaczymy co załatwię.

28
Dziękuję, napiszę kilka maili i podzwonię. Dam znać jak mi poszło.

29
Koledzy,

możecie doradzić skąd zdobyć kolumnę nastawnika od siódemki?

Próbowałem kontaktować się z firmą Olmet, która złomuje lokomotywy, ale oni nie odsprzedają takich rzeczy, w ogóle nic od nich nie idzie odkupić do prywatnego zastosowania.

Na OLX i Allegro to raczej jakaś drobnica, typu krany, haslery i tak dalej.

Doradźcie coś proszę.

30
Widok z okna na Bałtyku.

Strony: [1] 2