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

Strony: [1] 2
1
Pin analogowy deklaruj jako INPUT, a nie INPUT_PULLUP.
Bajt w ramce danych doPC dla hamulca zespolonego to jest 12, a nie 15, a dla pomocniczego jest 14.

Użyj funkcji map do przeskalowania wartości odczytanej z pinu analogowego (potencjometr działą jako dzielnik napięcia i daje poprzez konwerter analogowo-cyfrowy wartości od 0 do 1023, a chcemy to przekształcić na wartość 8 bitową z zakresu od 0 do 255 i taką wartość przesłać do symulatora na określonym bajcie.

doPC[12] = map(analogRead(A15), 0, 1023, 0, 255);
Użyłeś kodu dla stanu pinu cyfrowego i dlatego przyjmował on tylko dwa stany minimum i maksimum.
Swoją drogą nie wiem jak Ci działało przekazywanie wartości poprzez bajt 15.

2
Pomoc doraźna / Odp: MaSzyna 23.04 - problemy
« dnia: 23 Maja 2023, 20:58:44 »
Dysk to dysk. Może być i pendrive zwłaszcza, że MaSzyny się nie instaluje tylko kopiuje do katalogu. Problemem może być tylko wydajność nośnika. Może jednak lepiej pomyśleć o zewnętrznym dysku ssd jeśli chcesz mieć na czymś przenośnym.

3
Pomoc doraźna / Odp: MaSzyna 23.04 - problemy
« dnia: 07 Maja 2023, 21:16:09 »
Maćku, które? Mógłbyś wypisać tarcze to w wolnych chwili poprawię. Na etapie pisania scenerii poprawiałem wszystkie rezonatory, i być może w wyniku literówki czy przeoczeń nie wszystko prawidłowo przypisałem.
Jadąc EIE8310 zaczynając od Wolicy widzę takie problemy z SHP. Lampki zapalają się dopiero za tarczą, a nie porzy przejeżdżaniu nad rezonatorem.
  • Opóźniona reakcja przed tarczą ToB na wjeździe do Nurca.
  • Opóźniona reakcja przed tarczą ToE przed posterunkiem odgałęźnym Nowa Ruda.
  • Opóźniona reakcja przed tarczą ToX na wjeździe do Rycin.
  • Opóźniona reakcja przed tarczą ToB na wjeździe do Dębicy. Przed semaforem wjazdowym B w ogóle nie ma rezonatora.
  • Na wjeździe na posterunek odgałęźny Krapikowik mam wrażenie jakby były 3 rezonatory. Poza reakcją przed tarczą oraz semaforem, SHP aktywuje się także pomiędzy, tzn zaraz za tarczą, a przed rezonatorem odnoszącym się do semafora.
Nie miałem okazji sprawdzić jak jest z rezonatorami w przeciwnym kierunku.

4
Pomoc doraźna / Odp: MaSzyna 23.04 - problemy
« dnia: 05 Maja 2023, 10:13:56 »
A SHP przed niektórymi tarczami na Wrzosach nadal nie poprawione...

6
Ja używam oryginalnych rozłączników podłączonych do Arduino poprzez expandery.

7
Symulator / Odp: Programy na użytek symulatora. [szczawik]
« dnia: 14 Listopada 2022, 11:12:54 »
  • UART- rozbudowa o nowe parametry (zachowana kompatybilność wsteczna- obsługiwane po wykryciu),
Wygląda na to, że ustawienia yes/no już nie są aktualne i wraz z nowymi funkcjami, które finalnie trafiły do exe Milka (niestety nie ma go w aktualizacji 22.11) zmieniło się sterowanie z eu07.ini.
Teraz wygląda to tak, gdy wszystkie opcje są włączone:
uartfeature main|scnd|train|local|radiovolume|radiochannelWyłączenie danej funkcji odbywa się poprzez usunięcie wpisu znajdującego się między pionowymi liniami. Nie będzie zatem wstecznej kompatybilności bo zmienił się zupełnie sposób konfigurowania zarówno dotychczasowych jak i dwóch nowych funkcji.
Muszę więc poprosić o kolejną zmianę w starterze. Zmiany wprowadzał @marcinn więc może coś skomentuje, ale wydaje mi się, że tak to powinno działać. Przynajmniej tak to działa u mnie jak wprowadzam ręcznie.

8
Ja u siebie w Arduino mam na końcu asekuracyjne "delay(100)", bo wcześniej też się różne dziwne rzeczy działy.
Ja mam klona MEGA z 16U2, w kodzie bez deley'ów, a w eu07.ini mam takie wartości, więc chyba dość szybka wymiana danych jest. Żadnych problemów z gubieniem synchronizacji.
uart COM3 115200 0.05 0.05Osobiście miałem jedno MEGA z CH340 i w ogóle nie chciało działać, więc nawet nie próbowałem z pulpitem. Mam kilka klonów NANO z CH340 i jedne działają dobrze po USB, a inne nie bardzo. NANO mam wszczepione do manipulatora Radmora, ale tam nie korzystam w ogóle z USB. Programowanie wyciągnąłem sobie z ISP na DB9 do podpięcia USBasp gdy coś tam sobie chcę poprawić w kodzie, a samo NANO gada z MEGA po COMie, więc nie czuję problemu z USB.

9
To dodaj warunek, żeby przy wartości < 0 wysyłał zawsze 0. Nie bawiłem się z potencjometrem do takiego zastosowania więc tak z głowy podrzucam.
Nie wiem jakie wartości powinny się pojawiać na wyjściu, bo rozumiem, że najpierw rośnie pozycja nastawnika od 0 do 10, a później co, zostaje na 10 i zaczyna rosnąć hamowanie od 0 do 100?
Jeśli tak to może coś takiego:
    odczytanaPozycjaNastawnika = analogRead(A5);  //Odczytujemy wartość napięcia
   
    if (odczytanaPozycjaNastawnika > 500) {
      pozycjaNastawnika = map(odczytanaPozycjaNastawnika, 1023, 500, 0, 10);
    } else {
      pozycjaNastawnika = 10;
    }

    if (odczytanaPozycjaNastawnika <= 500) {
      pozycjaHamulca = map(odczytanaPozycjaNastawnika, 500, 0, 0, 100);
    } else {
      pozycjaHamulca = 0;
    }
Chociaż wydaje mi się,  że nastawnik działa od pozycji środkowej i do przodu rosną pozycje jazdy, a do tyłu hamowanie. Jeśli tak to raczej przy 500 oba są na 0 i kręcąc w jedną stronę rosną pozycje nastawnika, później wracamy do zera i kręcąc w drugą stronę rosną pozycje hamowania ED. Jeśli tak to powyższy kod trzeba trochę zmodyfikować.

10
Pozycja nastawnika to liczba całkowita więc po prostu jest przekazywana przez bajt, a nie wybrany bit jak przycisk czy przełącznik. Ja mając styki na krzywkach odczytuję konkretną wartość ze wszystkich  styków i poprzez case wyznacza mi to numer pozycji nastawnika. Tę liczbę przesyłam doPC w konkretnym bajcie. Przykładowo:
doPC[10] = pozycjaNastawnika

11
Ja mam kilka NANO właśnie z CH340 i różnie z nimi bywa. Generalnie dałem sobie spokój z programowaniem po USB i używam USBasp przez złącze ICSP. Poza tym nie używam ich do stałej komunikacji z PC po USB więc nie czuję problemu. Zamówiłem sobie klona MEGA z Ali i on był też na CH340 i w zasadzie w ogóle nie chciał gadać po USB. To co mam w pulpicie jest na 16U2 i nigdy nie miałem problemów z komunikacją po USB. Oczywiście mój przypadek nie musi być miarodajny ale kilka razy miałem kontakt z ludźmi robiącymi pulpity gdzie wymiana MEGA na wersję z 16U2 rozwiązywała problemy komunikacyjne. Teraz to jest kłopot z płytkami i to w jakiejś przyzwoitej cenie ale ja jeszcze kupowałem je w Nettigo jak były w rozsądnych cenach i w ogóle były na stanie.

12
Ciekawe jakie masz Arduino. Czy nie jest to wersja z CH340? Miałem kilka przypadków, że ten chip jakoś tak niekoniecznie dobrze dogaduje się w komunikacji po USB, nie zawsze działa to stabilnie. Klony z ATmega16U2 nigdy nie stwarzały problemów.

13
Do uart.ini dodajesz wpisy odpowiadające przyciskom i przełącznikom, jako analogia do wpisów w keyboard.ini. Te wpisy w eu07.ini w linii uartfeature dotyczą obsługi bezpośredniej nastawników i hamulców. Czyli gdy exe ma czytać odpowiedni bajt z ramki doPC, któy zawiera dane dla nastawników i hamulców. Jeśli chcesz działać jak z klawiatury (nastawnik do góry lub do dołu) to musisz wyłączyć go w uartfeature i zrobić wpis w uart.ini, żeby powiązać sygnały z przycisków z funkcjami jakby klawiatury. Widzę, że tak zrobiłeś dla 36 i 37 ale wydaje mi się, że reakcję blokuje yes w uartfeature, który powoduje chęć odebrania konkretnej pozycji nastawnika z bajtu 10. Dalej bocznik to bajt 11, hamulec zespolony - 12 i hamulec pomocniczy - 14.
Spróbuj z uartfeature ustawionym na no dla każdej funkcji.

14
Symulator / Odp: Programy na użytek symulatora. [szczawik]
« dnia: 04 Października 2022, 14:17:04 »
Na akceptację oczekuje zmiana od @marcinn dotycząca przekazywania informacji po UART o numerze kanału radiowego i poziomu głośności. Jest to również związane do dodatkowymi ustawieniami w eu07.ini w zmiennej uartfeature. Teraz są tam 4 parametry (dla nastawników i hamulców) ustawiane yes/no, ale po wprowadzeniu tych dodatkowych dwóch, będzie trzeba je uwzględnić w okienku "Konfiguracja COM", bo teraz dopisane ręcznie w eu07.ini są usuwane przez starter. Także piąty yes/no to będzie radiovolumeenable, a szósty to radiochannelenable. Poproszę zatem o uwzględnienie tego w wydaniu startera. Nowe funkcje przeszły pozytywnie testy z moim pulpitem więc mam nadzieję, że pojawią się wkrótce na stałe w exe. Teraz wszystko w rękach @Milek7.

15
Nie podłączałem nastawnika przez potencjometr. Nastawnik robiłem początkowo na enkoderze szczelinowym, który wysyłał impulsy zwiększające lub zmniejszające pozycje nastawnika. Odkąd mam oryginalny nastawnik to zbieram sygnały że styków i analizuję je wszystkie jaką jedną liczbę i poprzez case rozpoznaję na jakiej jest pozycji. Pozycja jest wysyłana do exe bezpośrednio jako cały bajt.
W tzw. międzyczasie miałem koło że stykami dla każdej pozycji i też rozpoznawałem bezpośrednio pozycję. Można pozycje poprzez styki puścić na drabinkę rezystorów i odczytywać wartość napięcia. To jeśli chce się zaoszczędzić na pinach wejściowych. Wtedy wystarczy jeden analogowy jako woltomierz. Tego Nie próbowałem w praktyce. W sumie to i pewnie dałoby radę to zrobić przez potencjometr ale nie wiem jak byłoby z precyzją rozpoznania pozycji.
Potencjometr za to jak najbardziej dobry do kranu hamulca. Tu się przydaje funkcja map() i odczyt z pojedynczego pinu analogowego.

16
W eu07_input-uart.ini dla syreny są dwa wpisy bo to działa jak dwa przyciski (niski i wysoki ton oddzielnie)
22 impulse hornhighactivate
23 impulse hornlowactivate
dla czuwaka jest oczywiście jeden wpis bo to jeden przycisk
7 impulse alerteracknowledge
Patrząc na Twój kod wygląda to w zasadzie OK, więc sprawdź wpis do uart.ini
Ja bym nie używał pinów 0 i 1 bo one są do obsługi uart'a (RX/TX) dla komunikacji po USB z PC. Możliwe, że zakłócasz tym przyciskiem na pinie 0 całą komunikację z exe.

Spróbuj przepiąć przycisk na pin 4 i sprawdź ten 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(3, OUTPUT);     //ustawienie pinu 3 jako wyjście cyfrowe
    pinMode(4, INPUT_PULLUP); //ust pinu 4 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() {

    bitWrite(doPC[4], 7, !digitalRead(4));   //syrena ton wysoki

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

    digitalWrite(2, (bitRead(zPC[8], 6)));     //czuwak
    digitalWrite(3, (bitRead(zPC[8], 7)));     //shp

  }

17
Ramka doPC ma obecnie 20 bajtów, a jaj zawartość można sobie zdefiniować edytując plik eu07_input-uart.ini
Moje ustawienia wrzucałem kiedyś w tym zestawieniu
Ramka zPC ma obecnie 52 bajty i to co jest obecnie oprogramowane jest w tym zestawieniu

18
No piszesz, że wylicytowałeś nastawnik i jednocześnie pytasz o to jak zdobyć to co jest jego integralną częścią.

19
Poszukuję, chcę zrobić / Odp: Rozbiórka zaworów FD1 i FV4a
« dnia: 19 Sierpnia 2022, 15:50:30 »
Ja to ostatecznie zrobiłem tak FD1 i FV4a i działa od ładnych paru lat. Jedyne co zmieniłem to w tym drewnianym klocku z dziura dla FV4a wbiłem kawałek łamanego ostrza z noża do tapet, żeby wchodził w wycięcie trzpienia potencjometru bo miałem wrażenie, że potrafił się ślizgać po pewnym czasie w samym otworze w drewnie. Teraz nie ma siły i wszystko chodzi stabilnie.

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

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

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

23
Pomoc doraźna / Odp: MaSzyna 22.03 - problemy
« dnia: 11 Lipca 2022, 11:35:25 »
Jakiś czas temu zwróciło moją uwagę to, że komunikacja przez radio chyba nie do końca tak powinna brzmieć. Chodzi mi o to, że tekst wypowiadany przez mechanika nie powinien brzmieć jak odtwarzany przez radiotelefon, bo on w końcu mówi z kabiny więc powinno go być słychać normalnie, a jedynie tekst KP czy DR powinny brzmieć przez radiotelefon.

24
Dobry klon MEGA można za niecałe 80 zł dostać w Nettigo. https://www.nettigo.pl/products/klon-arduino-mega-2560-r3-atmega16u2
Mniejszego nie ma co brać bo pinów sporo potrzeba. Jeśli peryferia mogą być pod 3,3V to może być też szybsze DUE. Ja jednak polecam MEGA. Tylko lepiej nie z CH340 tylko z atmega16u2 do obsługi USB bo CH340 potrafi robić problemy.

25
Na warsztacie / Odp: Wrzosy - otwarte testy
« dnia: 30 Stycznia 2022, 22:00:56 »
Słuchajcie, kod eventów spadku zasilania to parę linijek, mogę teraz zrobić prawdopodobieństwo 0%, a później jak poprawione zostanie zachowanie AI to można prawdopodobieństwo zwiększyć do 1-3%. To w mojej  ocenie będzie najlepsze rozwiązanie.
Generalnie spadki napięcia nie są problemem jeśli nie uniemożliwiają kontynuowania jazdy. Raz miałem sytuację zaraz na starcie wrzosy_ic8310, które mocno eksploatuję, że spadek napięcia był jeszcze przed ruszeniem z Wolicy, a jak już napięcie wróciło to semafor wygasł i nie można było wyjechać na szlak.

26
Bieżące kolejowe / Trakcja podwójna lub popych
« dnia: 02 Stycznia 2022, 14:44:59 »
Zawsze mnie zastanawiało jak to jest z synchronizacją prędkości dwóch lokomotyw ciągnących ale bez stosowania połączenia przewodami ukrotnienia. Podobna sytuacja gdy jedną ciągnie, a druga popycha. Przecież nie da się idealnie zsynchronizować prędkości i wtedy albo rozciągają sprzęgi lub cały skład (przy popychu) albo go ściskają przez różnicę prędkości.
W dawnych instrukcjach czytałem o sygnałach dawanych gwizdawką, żeby maszyniści wiedzieli kiedy zacząć/skończyć popychanie ale to nic nie mówi o prędkości. Myśląc analogią samochodów dochodzi chyba do szarpania ja te prędkości się zmieniają.
A może za bardzo kombinuję ;)

27
Symulator / Odp: Pomoc w doborze karty graficznej do Maszyny
« dnia: 26 Listopada 2021, 20:04:55 »
Ja podszedłem do sprawy budżetowo i bez planów na inne gry. Wczesniej korzystałem z laptopa, który jest dość dobrze wyposażony (i7, 32GB RAM i 512GB SSD) ale ma tylko GeForce MX130. Na takim sprzęcie miałem około 20-30 fps. Generalnie dało się jechać ale bez szaleństw. W związku z tym, że mam fizyczny pulpit to postanowiłem wbudować płytę główną z i5 (z odzysku) i zastosować w miarę budżetową kartę GTX1050Ti z 4GB. Dla mnie to i tak skok jakościowy bo w zasadzie mam zwykle stabilne 60 fps (włączyłem sobie ograniczenie w starterze, żeby nie katować jej na 100%). Przy testach bez ograniczenia miałem między 50, a 150 fps przy dość wysokich ustawieniach grafiki w starterze.
Dla mnie to wystarczająco dobra opcja jest.

28
Gotowy moduł przekaźnikowy jest bardzo fajny jeśli nie trzeba nic kombinować tylko po prostu załączać. Takowy użyłem sobie do sterowania rysikami haslera gdzie potrzebowałem 5 kanałów. Zasilanie lampek zrobiłem na specjalizowanej płytce bo chciałem mieć modułową budowę (indywidualne małe płytki wtykane w główną płytę podstawy), a przy okazji zrobiłem sobie możliwość indywidualnej konfiguracji przyciemniania każdej z lampek (zworką na tej małej płytce). No i jak już robiłem dedykowany sterownik to zrobiłem go na expanderach więc cały sterownik (jak widziałeś) jest podłączany przez I2C do Arduino, więc nie ciągnę przewodów z pinów Arduino. Także tego... dla każdego coś miłego.

29
Na warsztacie / Odp: Exe - zmiany w stosie graficznym i dźwiękowym
« dnia: 06 Września 2021, 14:40:17 »
To może jak coś się ruszyło w exe to ja odświeżę majowy temat obsługi radiotelefonu...
https://eu07.pl/forum/index.php/topic,29423.msg542931.html#msg542931
Byłaby szansa?

30
Z rezystorem można na dwa sposoby. Wstawiasz potencjometr 10K i przy wysyłaniu maksymalnej wartości PWM czyli 255 przy 8 bitach kręcisz potencjometrem, żeby wskazówka pokazywała maksymalną wartość na skali np. 4000A. Jak już to masz to albo zostawiasz potencjometr (ja tak zrobiłem z tymi montażowymi wieloobrotowymi bo precyzja mi wystarcza) albo mierzysz na tym potencjometrze ile Ci wyszło i dobierasz najdokładnieszy rezystor np. 1% najbliższej wartości jaka Ci wyszła z pomiaru (tak robiłem kiedyś przy PoKeys). Ja wstawiałem rezystor/potencjometr przy pinie PWM, ale pewnie wstawienie od masy niczego istotnego nie zmieni.
Pin oczywiście trzeba zdefiniować ale myślałem, że to masz ogarnięte.
Ja mam to na pinie 5 więc mam tak:
const byte pinHVoltage = 5;i jeszcze:
pinMode(pinHVoltage, OUTPUT);
digitalWrite(pinHVoltage, LOW);
Zmienną też warto zdefiniować. Jako, że korzystam tylko z jednego bajtu (czyli 8 bitowego kodowania wartości napięcia dla woltomierza) to wystarczy typ byte:
byte zPC_HVoltage = 0;Polecam też skorzystanie z testowego programu MWD_SerialPort_tester od @maciek001 bo to Ci znacznie ułatwi testowanie. Jak będziesz potrzebował policzyć współczynniki korekcji nieliniowości to możesz spróbować też mojego arkusza.

Strony: [1] 2