Forum Miłośników Symulatorów Lotniczych
Zaplecze => Software & Hardware => Sprzęt wykonany samodzielnie => Wątek zaczęty przez: Marcin_B w Stycznia 28, 2015, 22:17:11
-
Witam wszystkich.
Poniżej opis moich kokpitowych zmagań z pragnieniem urealistycznienia domowej symulacji ;)
Kokpit powstaje od 2,5 roku. Od początku założyłem, że będę wzorował się na A-10C z kilku powodów: 2 przepustnice (pozwalają także swobodnie sterować śmigłowcami), 2 wyświetlacze MFD, dużo przełączników, itd. Sumując – pozwala to na obsłużenie każdej wojskowej konstrukcji (może poza B-52 :evil:) bez większej potrzeby dokładania dodatkowych paneli. Dodatkowym impulsem był zestaw Thrustmaster Warthog – jedyna chyba replika jaka jest normalnie dostępna na rynku (w miarę przystępnej cenie).
Kokpit na chwilę obecną obsługują 3 świetne płytki od Damosa – DMKeys8. Po jednej na lewą i prawą konsolę oraz osobna na centralną. Pozwala to na zmniejszenie okablowania i ewentualny demontaż – każda konsola jest podłączona poprzez hub aktywny do PC.
Wspiera mnie soft: HELIOS – wyświetla przyrządy na dolnym monitorze, oraz iDisplay – przez niego idzie połączenie na komórkę na lewej konsoli: wyświetlam na niej ekran CDU, docelowo będzie oczywiście zabudowana.
Monitory – górny 24”, dolny 17” (trochę wypalonych pikseli akurat nie przeszkadza do moich zastosowań ) – docelowo planuję 4 x 24”. Ramki to Thrustmaster Cougar, pedały Saitek Pro Flight.
Ponieważ stopień ukompletowania kokpitu pozwala na latanie bez udziału klawiatury a myszkę jest problem wygodnie używać, zamontowałem trackballa Trackman Marble Logitecha. Trochę na ukos – ale ergonomia jest dużo lepsza.
Podpieram się klawiaturą G13 Logitecha – obsługuje komunikaty głosowe i najbardziej upierdliwe klawisze w innych simach.
Poniżej kilka fotek:
(http://fotozrzut.pl/zdjecia/9f7c1bfda2.jpg) (http://fotozrzut.pl/)
(http://fotozrzut.pl/zdjecia/e788302684.jpg) (http://fotozrzut.pl/)
http://fotozrzut.pl/zdjecia/178a54615d.jpg
http://fotozrzut.pl/zdjecia/533750f778.jpg
http://fotozrzut.pl/zdjecia/313c67c54a.jpg
http://fotozrzut.pl/zdjecia/006469a5e0.jpg
http://fotozrzut.pl/zdjecia/a44d5ec0d1.jpg
http://fotozrzut.pl/zdjecia/e91a58ffb8.jpg
http://fotozrzut.pl/zdjecia/74848b5318.jpg
http://fotozrzut.pl/zdjecia/fa00e5eec0.jpg
-
Gratulacje. Fajnie wygląda, widać masę włożonej pracy (i nie tylko). Ale najważniejsze, że z pewnością wygodnie się lata :-)
-
Dzięki za inf., bardzo mi się podoba Twoje rozwiązanie. Kiedyś też rozważałem zrobienie uniwersalnego kokpitu pod różne maszyny, ale w końcu zwyciężył F16. Widać w Twoim rozwiązaniu ergonomię z punktu widzenia pilota. Co do DMKeys8 to trafny wybór oraz tzw. dekompozycja. Ja mam podobnie jeden DMKeys8 na lewą burtę, drugi na środek CP,. ICP itp. inny na prawą burtę i jeszcze jeden wspierający. Redukuje to liczbę połączeń i umożliwia zrobienie modułowego kokpitu. Jeszcze raz gratuluję kokpitu i życzę powodzenia w jego rozwoju.
-
No to poszalałeś - świetna robota :D
-
Dawno nie odświeżałem tego wątku. A trochę się pozmieniało :)
W tym roku skupiam się na uruchomieniu CDU, CMSP (wyświetlacza), diód LED (caution panel, podwozie, różne kontrolki). Potem mam w planach wyświetlacze 7-segmentowe.
Na dziś działa CDU, dzisiaj odpaliłem CMSP (I2C / Arduino Uno) a kilka dni temu skończyłem lutować Caution Panel (64 x LED) - sterowany też przez Arduino tyle że Mega 2560.
Mój pomysł na kokpit to możliwość latania na różnych modułach w oparciu o te same przyrządy. Dlatego odstąpiłem od robienia przedniego panela jako odwzorowania A-10C i wstawiłem dotykowy monitor 24". Jakość obrazu wyświetlanego w ramkach MFD jest OK (512 klatek) i pozwala na zrezygnowanie z ramek Cougara. Dzięki temu latam na wszystkim bez przeróbek. A-10 ma bogate wyposażenie: ILS, TACAN VHF Am, VHF FM, UHF plus sporo hebelków - w większości pokrywają się one przynajmniej w pewnym stopniu z wyposażeniem innych maszyn.
Poniżej kilka fotek:
(https://naforum.zapodaj.net/thumbs/7b552fc7a0fe.jpg) (https://naforum.zapodaj.net/7b552fc7a0fe.jpg.html)
(https://naforum.zapodaj.net/thumbs/6936995734c2.jpg) (https://naforum.zapodaj.net/6936995734c2.jpg.html)(https://naforum.zapodaj.net/thumbs/b17a6156d43b.jpg) (https://naforum.zapodaj.net/b17a6156d43b.jpg.html) (https://naforum.zapodaj.net/thumbs/4a728467b319.jpg) (https://naforum.zapodaj.net/4a728467b319.jpg.html)(https://naforum.zapodaj.net/thumbs/9933afbd08e9.jpg) (https://naforum.zapodaj.net/9933afbd08e9.jpg.html)(https://naforum.zapodaj.net/thumbs/971b8086e4b9.jpg) (https://naforum.zapodaj.net/971b8086e4b9.jpg.html)(https://naforum.zapodaj.net/thumbs/be0fce17f556.jpg) (https://naforum.zapodaj.net/be0fce17f556.jpg.html)(https://naforum.zapodaj.net/thumbs/7900c2b45da9.jpg) (https://naforum.zapodaj.net/7900c2b45da9.jpg.html)
Ponieważ do MiGa-21 brakowało mi pokręteł pod uzbrojenie i nawigację - dodałem nadplanowy panel z kilkoma enkoderami i hebelkami.
(https://naforum.zapodaj.net/thumbs/76970f71f322.jpg) (https://naforum.zapodaj.net/76970f71f322.jpg.html);
Najgorsze jest to, że budowa (choć daje sporo frajdy) zabiera czas na latanie. Może w końcu jednak znajdę go na tyle żeby podłączyć się pod OPSa :)
-
Super, ja mam zrobione projekty w Corelu moich paneli. Niebawem oddaje do grawerki :)
Zapraszam na loty :evil:
-
A może na dolny monitor wrzucić Helios (http://forums.eagle.ru/showthread.php?t=137068) ;)
Capt Zeen ma kilka gotowych profili.
-
Piękna robota, gratulacje. Ja też poznaję możliwości Arduino.Chcę ten kontroler zaimplementować w kokpicie.
-
Super to wygląda. Bardzo mi się podoba Twoje rozwiązanie kokpitu. Chyba muszę sobie przemyśleć swoje podejście z wykorzystaniem tradycyjnego biurka. Chyba wyrzucę biurko i wstawię sobie taką wąska szafkę jak u Ciebie. Tylko nie wiem czy żona mnie nie wyrzuci z M4 i będę musiał zmienić nazwę swojego wątku... :) Ale może coś wykombinuję.
Masz fajny fotel. Ja też myślę o wstawieniu jakiegoś fotela samochodowego, bo mój wzbudza tylko śmiech jak pokazuję swój kokpit i dodatkowo nie jest zbyt ergonomiczny. Po 3-godzinnym locie plecy bolą jak diabli. :evil:
-
Kilka nowinek:
1. CMSP - wreszcie wszystko działa. Hebelki i LCD podłaczone pod Arduino Mega 2560. Ponieważ oryginalny wyświetlacz ma 19 znaków a zastosowany (dla zachowania proporcji - szersze znaki) tylko 16, musiałem go zmusić żeby opuścił 3 literki :)
W oryginale wygląda to dużo lepiej niż na fotce :)
(https://naforum.zapodaj.net/thumbs/2a46e1269076.jpg) (https://naforum.zapodaj.net/2a46e1269076.jpg.html)
2. wyświetlacze 7-segmentowe: po kilkunastu dniach dzięki Ianowi z ED forum, doszedłem wreszcie do prawidłowego kodu. Mogę teraz podłączyć jeden lub kilka wyświetlaczy do jednej płytki - na fotce jest wskazanie z ILSa.
(https://naforum.zapodaj.net/thumbs/71d468908e0e.jpg) (https://naforum.zapodaj.net/71d468908e0e.jpg.html)
-
Super, mnie brak miejsca pozbawia takich problemów, ale jest z kogo brać przykład 8) .
-
Gratuluję postępów.
-
Najbardziej mnie urzekają te "pająki" z kabelków. Słitasnie to wygląda :D. Wiadomo trzeba sobie radzić ;).
-
To tylko płytka stykowa do testów :)
-
Nie ważne! Mi się podoba, bo to prawdziwe rzemiosło niczym rura od nagrzewnicy od Poldasa.
-
Super!
-
Rewelacja! Widać kawał dobrej roboty, no i tempo prac robi na mnie wrażenie.
-
Mała aktualizacja:
TACAN i ILS podłączone za pomocą dwóch osobnych modułów Arduino Nano. Chciałem podłaczyć wszystko do jednego (1x4-seg, 1x3-seg, 1x2-seg) ale okazało się że zaczyna całość migotać. Podejrzewam że Nano jest po prostu za słabe. Ale cena (18,- PLN) decyduje. Tylko mnożą mi się kable USB...
(https://naforum.zapodaj.net/thumbs/9be73a45ab16.jpg) (https://naforum.zapodaj.net/9be73a45ab16.jpg.html)(https://naforum.zapodaj.net/thumbs/a7a98140043f.jpg) (https://naforum.zapodaj.net/a7a98140043f.jpg.html)
-
Gratulacje. Masz rację cena ma też znaczenie. SimOUT ma 6 wyjść 7segLED, ale jest droższy.
-
Super, ja nie mam miejsca na taką zabawkę... :(
-
Marcin - świetna robota :)
A miejsce, to ostatni problem jaki trzeba rozwiązać. ;)
-
A miejsce, to ostatni problem jaki trzeba rozwiązać. ;)
Święte słowa!
A poza tym GRATULACJE :D
-
Mały update: VHF AM ma wreszcie podłączone LEDy. Obsługuje je Arduino Nano. Został jeszcze VHF FM i UHF.
(https://naforum.zapodaj.net/thumbs/97cb0d3961ea.jpg) (https://naforum.zapodaj.net/97cb0d3961ea.jpg.html)
-
Fajny, tylko czemu czerwony ?
-
Wszystkie LEDy mam czerwone. W oryginale są mechaniczne wskaźniki.
-
http://dogfightboss.com/
Nie wiedziałem gdzie to umieścić. Ciekawa sprawa...
-
Te wyświetlacze led to są ze wspólną elektrodą - anodą czy katodą ?
-
Katoda i zgodność z HD44780 (można użyć dodatkowej płytki żeby połączyć go z Arduino tylko 4 kabelkami):
https://botland.com.pl/wyswietlacze-alfanumeryczne/223-wyswietlacz-lcd-2x16-znakow.html
Konwerter (do niego potrzebna ta zgodność z HD44780):
https://botland.com.pl/konwertery-pozostale/2352-konwerter-i2c-dla-wyswietlacza-lcd-hd44780.html?search_query=lcd+sterownik&results=107
-
Marcinie, chodzi mi o te 7-ledowe 3 i 2 polowe, które masz w TAKAN i ILS i w radiu.
-
Wspólna anoda. Przykładowy moduł:
https://drive.google.com/open?id=0B8FqLBipEB9TbHNvVGVqZVBCN0E
-
Marcinie, chodzi mi o te 7-ledowe 3 i 2 polowe, które masz w TAKAN i ILS i w radiu.
http://akademia.nettigo.pl/starter_kit_131/
Jak podłączyć za dużo modułów LED to pojawi się migotanie. U mnie jeden Arduino obsługuje ILS a drugi TACAN.
Podobnie COMM - każdy obsługuje osobny Arduino.
Z racji małej liczby potrzebnych wejść wystarczy do tego takie coś:
http://allegro.pl/modul-arduino-nano-3-0-atmega328-usb-avr-i5890524486.html
-
Może jak byś dał Arduino Uno i dodatkowe zasilanie to migotanie by ustało. Wszystko niby proste tylko kod to wrzucenia i powiązania z DCS-biosem to już dla mnie nie.
-
Właśnie na Uno tego próbowałem. Trzeba by dać płytkę z mocniejszym układem.
-
Mała aktualizacja:
TACAN i ILS podłączone za pomocą dwóch osobnych modułów Arduino Nano. Chciałem podłaczyć wszystko do jednego (1x4-seg, 1x3-seg, 1x2-seg) ale okazało się że zaczyna całość migotać. Podejrzewam że Nano jest po prostu za słabe. Ale cena (18,- PLN) decyduje. Tylko mnożą mi się kable USB...
Oj chyba na NANO, tak z tego wynika.
-
Oj chyba na NANO, tak z tego wynika.
Na Uno też próbowałem
Wysłane z mojego E2303 przy użyciu Tapatalka
-
TACAN
#define DCSBIOS_IRQ_SERIAL
#include <SevenSeg.h>
#include <DcsBios.h>
SevenSeg disp1(A0, A1, A2, A3, A4, A5, 12);
const int numOfDigits1 = 4;
int digitPins1[] = {2,3,4,5};
DcsBios::StringBuffer<4> tacanChannelBuffer(0x1162, NULL);
void setup() {
DcsBios::setup();
disp1.setDigitPins(numOfDigits1, digitPins1);
}
void loop() {
DcsBios::loop();
disp1.write(tacanChannelBuffer.getData());
disp1.clearDisp();
}
ILS
#define DCSBIOS_IRQ_SERIAL
#include <SevenSeg.h>
#include <DcsBios.h>
SevenSeg disp2(A0, A1, A2, A3, A4, A5, 12);
SevenSeg disp3(A0, A1, A2, A3, A4, A5, 12);
const int numOfDigits2 = 3;
const int numOfDigits3 = 2;
int digitPins2[] = {2,3,4};
int digitPins3[] = {9,10};
DcsBios::StringBuffer<3> ilsKhzStrBuffer(0x116e, NULL);
DcsBios::StringBuffer<2> ilsMhzStrBuffer(0x1172, NULL);
void setup() {
DcsBios::setup();
disp2.setDigitPins(numOfDigits2, digitPins2);
disp3.setDigitPins(numOfDigits3, digitPins3);
}
void loop() {
DcsBios::loop();
disp2.write(ilsKhzStrBuffer.getData());
disp2.clearDisp();
disp3.write(ilsMhzStrBuffer.getData());
disp3.clearDisp();
}
Piny (A0, A1, A2, A3, A4, A5, 12) - odpowiadają za wyswietlanie poszczególnych segmentów wyświetlaczy, oczywiście możesz je zmienić
const int numOfDigits1 = 4; - wybierasz tutaj liczbę segmentów (7-segmentowych wyświetlaczy) które chcesz użyć - w ILS jest u mnie jeden 2 i jeden 3-segmentowy wyswietlacz a w TACANie jeden 4-segmentowy
-
A ty robiłeś z tym układem scalonym czy bez ?
-
Bez scalaków - tylko Arduino, rezystory i wyświetlacze :)
-
Czyli widzę, że podłączenie alfanumerycznego wyświetlacza jest takie same, zwyczajnie wybieram sobie tylko potrzebne mi ledy. Chyba troszkę przerobię mój projekt, Będzie TAKAN i ILS, zaś LIGHTS PANEL zostanie tylko do świateł zewnętrznych ... Brak miejsca. Ciekawe czy Arduino MEGA to uciągnie ?
-
Tak patrzę i tam chyba jest tylko kod do wyświetlaczy, rozumiem, że resztę przełączników i enkoderów robiłeś na czymś innym ? Nadal nie rozumiem, w jaki sposób Arduino wie które włączać ledy. Chyba, że to nie całość.
-
DCS Bios daje Arduino informacje co ma włączać a co nie. Faktycznie - tylko LEDy są podłączone pod Arduino, reszta pod DMK8. Po części dlatego że jak budowałem te panele to nie miałem jeszcze bladego pojęcia jak uruchomić LEDy, a po części bo wykorzystuję je także pod innymi modułami.
-
No tak ale podpięcie pod piny (A0, A1, A2, A3, A4, A5, 12 ) określonych diodek z wyświetlacza ma chyba jakieś znaczenie, czy tam kolejność. Inna kolejność podpięcia i będzie wyświetlane jakieś coś tam a nie cyferka. Zwyczajnie jakoś nie czaję, skąd Arduino wie które diody i na którym wyświetlaczu odpalać dla określonej pozycji przełącznika czy enkodera. Rozumiem, że podaje to DCS-bios do Arduino ale co dalej ?
-
http://marianlonga.com/7-segment-led-display/
Tu masz schemat - zgodnie z nim:
segment A - podłączasz pod np. A0
segment B - A1
itd.
To jakie piny użyjesz na Arduino - twój wybór.
DCS bios przekazuje komunikat że na tym wyświetlaczu należy taki segment zapalić a taki zgasić.
Potestuj to na 1 module. Jak na powyższym linku - rezystory 220 om.
https://www.youtube.com/watch?v=yWwvUUZ4-Xs
-
A czyli kolejność jest ważna. To znaczy, że mogę tak dobrać piny i kolejność podłączania, by wyświetlacz alfanumeryczny pokazywal mi X i Y. Bo numeryczny będzie pokazywał pewnie H zamiast X i taką 9-kę bez górnego poziomego leda zamiast Y.
-
Nie wiem tylko skąd jest ta część kodu zaznaczona na czerwono, no i zapewne , jak będę chciał w TACAn zastosować dwa wyświetlacze to inaczej będzie wyglądać wpis. Jeszcze wpisy
"DcsBios::StringBuffer<4> tacanChannelBuffer(0x1162, NULL);"
i
" DcsBios::StringBuffer<3> ilsKhzStrBuffer(0x116e, NULL);
DcsBios::StringBuffer<2> ilsMhzStrBuffer(0x1172, NULL); "
to odnalazłem za pomocą przeglądarki w DCS-bios, ale reszta to magia :)
TACAN:
DcsBios::StringBuffer<4> tacanChannelBuffer(0x1162, NULL);
void setup() {
DcsBios::setup();
disp1.setDigitPins(numOfDigits1, digitPins1);
}
void loop() {
DcsBios::loop();
disp1.write(tacanChannelBuffer.getData());
disp1.clearDisp();
}
ILS:
DcsBios::StringBuffer<3> ilsKhzStrBuffer(0x116e, NULL);
DcsBios::StringBuffer<2> ilsMhzStrBuffer(0x1172, NULL);
void setup() {
DcsBios::setup();
disp2.setDigitPins(numOfDigits2, digitPins2);
disp3.setDigitPins(numOfDigits3, digitPins3);
}
void loop() {
DcsBios::loop();
disp2.write(ilsKhzStrBuffer.getData());
disp2.clearDisp();
disp3.write(ilsMhzStrBuffer.getData());
disp3.clearDisp();
}
-
DcsBios::StringBuffer<4> tacanChannelBuffer(0x1162, NULL);
<4> to liczba 7-segm. modułów - u mnie w TACAN jest jeden 4-cyfrowy wyświetlacz
disp1.setDigitPins(numOfDigits1, digitPins1);
disp1 - numer wyswietlacza nadany przeze mnie
setDigitPins(numer cyfry od której zaczyna się wyświetlanie na tym wyświetlaczu - u mnie 1 z lewej, pin1)
disp1.write(tacanChannelBuffer.getData());
disp1.clearDisp();
pierwsza linia pobiera dane z DCSbios i je wyświetla a druga czyści wyświetlacz; pozwala to na "odświezanie" danych na wyświetlaczu
ILS- tak samo tylko dla 2 modułów 7-segm.: 2 i 3-cyfrowego
Podłączenie większej ilości modułów 7-segm. powoduje dociążenie Arduino i pojawia się migotanie. W modułach COMM mam po 5 2-cyfrowych modułów i to dla płytki NANO uznałem za maks.
-
Czy takie enkodery to już są dobre ?
z przyciskiem http://www.tme.eu/pl/details/ec11b15242af/enkodery-inkrementalne/alps/
zwykły http://www.tme.eu/pl/details/ec11b15202/enkodery-inkrementalne/alps/ec11b15202aa/
-
Ale szeroko poszedłeś :) Sam nie wiem - wysyłam pytanko do Vito.
-
No jeden z przyciskiem drugi bez, są jeszcze takie po 80zł i takie za 6-7 zł . Mówiłeś by tanich nie brać, wybrałem średnie ale nie wiem czy takie sa OK czy nie.
-
Zgadza się, te tanie co mam to połowa ma przebicia. A były coś po 3,50.
-
Tacan i ILS będę robił z takimi wyświetlaczami jak u ciebie, nie będę się bawił w alfanumeryczne, jedynie zamienię je na żółte. Takie 60mc max, by nie oślepiały.
-
Myślę, że jedne i drugie są dobre chociaż nie ma gwarancji, że nie będą sporadycznie przekłamywać. Sprawdziłem na TME, jest teraz bardzo duży wybór. Mam u siebie te za 4 zł i biorę poprawkę, że trochę przekłamują. Zależy gdzie je stosujemy w kokpicie (w niektórych miejscach nie jest to zauważalne). Te płytki od 3.14ter są rewelacyjne, można zapytać oficjalnie na forum o cenę. Ja dostałem do testów płytkę i dokupiłem tani za 4 zł enkoder, działa bez błędów. Dziwię się, że w TME jest tak duża rozbieżność cenowa. Chcąc ocenić ich wartość trzeba je mieć i sprawdzić jak się zachowują a to już kosztuje.
Gdybym budował od nowa swój kokpit to w newralgicznych miejscach umieścił bym płytki 3,14ter z tanimi enkoderami a w pozostałych te tańsze, ale po wstępnej selekcji (niestety).
-
U mnie będą pracować z Arduino, kupię te po 13 zł, tylko ten z przyciskiem jest sporo droższy. No ale jest też tej firmy z przyciskiem i w cenie tego pierwszego.
-
Po ostatniej aktualizacji Windowsa 10 udało mi się uruchomić soft Damosa do konfiguracji DMK8. Nie wiem tylko czy wcześniej coś pomyliłem czy to ta aktualizacja :-))
-
Myślę, że to aktualizacja, ciekawe czy następna tego nie sp....i ?
-
Mam problem z podwójnym wyświetlaczem. Mianowicie nie ma on wspólnych nóżek dla diodek i 2 wyjść DIG ( 10nóżek) tak jak to jest w wyświetlaczy podwójnym i poczwórnym. Ma on 18 nóżek, każda dioda oddzielnie, czy wystarczy je odpowiednio zmostkować by było dobrze ( A z A, B z B itd.) ? Tak by wynikało ze schematu... http://www.tme.eu/pl/Document/ccc0cdaf1f00fc64006374dccbaba7b1/OPD-D5630LY-BW.pdf
-
Katody segmentów łączymy razem, tak jak się domyśliłeś, A+A, B+B itd.
-
OK zrobiłem tak i mam parę pytań bo perzy wgraniu wyskakuje mi taki błąd.
"exit status 1
Błąd kompilacji dla płytki Arduino/Genuino Mega or Mega 2560."
-------------------------------------------------------------------------------
/* use '#define DCSBIOS_DEFAULT_SERIAL' instead if your Arduino board
* does not feature an ATMega328 or ATMega2650 controller.
*/
#define DCSBIOS_IRQ_SERIAL
#include <SevenSeg.h>
#include <DcsBios.h>
SevenSeg disp1(41, 43, 45, 47, 49, 51, 53);
SevenSeg disp2(25, 27, 29, 31, 33, 35, 37);
SevenSeg disp3(14, 15, 16, 17, 18, 19, 20);
const int numOfDigits1 = 4;
const int numOfDigits2 = 3;
const int numOfDigits3 = 2;
int digitPins1[] = {2,3,4,5};
int digitPins2[] = {8,9,10};
int digitPins3[] = {6,7};
DcsBios::StringBuffer<4> tacanChannelBuffer(0x1162, NULL);
DcsBios::StringBuffer<3> ilsKhzStrBuffer(0x116e, NULL);
DcsBios::StringBuffer<2> ilsMhzStrBuffer(0x1172, NULL);
void setup() {
DcsBios::setup();
disp1.setDigitPins(numOfDigits1, digitPins1);
disp2.setDigitPins(numOfDigits2, digitPins2);
disp3.setDigitPins(numOfDigits3, digitPins3);
}
void loop() {
DcsBios::loop();
disp1.write(tacanChannelBuffer.getData());
disp1.clearDisp();
disp2.write(ilsKhzStrBuffer.getData());
disp2.clearDisp();
disp3.write(ilsMhzStrBuffer.getData());
disp3.clearDisp();
}
---------------------------------------------------------------
Czy w linijce:
#include <SevenSeg.h>
#include <DcsBios.h>
Nie powinno być ?
#include "SevenSeg.h"
#include "DcsBios.h"
Następne pytanie, to o bibliotekę SevenSeg.h, chyba powinno się ją wgrać do bibliotek Arduino, bo chyba tam takiej nie mam. Może właśnie dlatego wyskakuje taki błąd ?
Ta chyba jest najnowsza-odpowiednia ?
-
Akurat to sama końcówka komunikatów o błedzie i nie mówi nic konkretnego. Wklej całość.
Biblioteka SevenSeg powinna być wkopiowana do katalogu, gdzie jest cała reszta bibliotek. Potem trzeba przeładować Arduino.
Odnośnie #include <> vs ""
http://cpp0x.pl/dokumentacja/preprocesor/include/1120
W przypadku zainstalowanych bibliotek używamy <>.
-
OK po wgraniu biblioteki wszystko poszło.
-
Marcin, w tym układzie masz diody z 2 wyświetlaczy podłączone pod te same styki, ile zastosowałeś oporników 7 na każde złącze czy 14 przed każdą diodą ? Czy nie lepiej każdy wyświetlacz oddzielnie ?
ILS
#define DCSBIOS_IRQ_SERIAL
#include <SevenSeg.h>
#include <DcsBios.h>
SevenSeg disp2(A0, A1, A2, A3, A4, A5, 12);
SevenSeg disp3(A0, A1, A2, A3, A4, A5, 12);
const int numOfDigits2 = 3;
const int numOfDigits3 = 2;
int digitPins2[] = {2,3,4};
int digitPins3[] = {9,10};
DcsBios::StringBuffer<3> ilsKhzStrBuffer(0x116e, NULL);
DcsBios::StringBuffer<2> ilsMhzStrBuffer(0x1172, NULL);
void setup() {
DcsBios::setup();
disp2.setDigitPins(numOfDigits2, digitPins2);
disp3.setDigitPins(numOfDigits3, digitPins3);
}
void loop() {
DcsBios::loop();
disp2.write(ilsKhzStrBuffer.getData());
disp2.clearDisp();
disp3.write(ilsMhzStrBuffer.getData());
disp3.clearDisp();
}
-
Z tego co pamiętam to każdy z dwóch wyświetlaczy ma osobno do siedmiu segmentów własny rezystor - czyli w sumie 14.
-
Jak widzisz ja zrobiłem tak, że każdy wyświetlacz ma swoje piny.
-
Ale blokujesz większą liczbę wejść na Arduino - mi zależało na zmieszczeniu się w określonej ich liczbie.
-
No ja ma Arduino Mega na ten cały panel, wyjść mi nie brakuje.
-
Podłączyłem pierwszy wyświetlacz do Arduino Mega, tylko ten 4 polowy. Niestety już on sam strasznie miga, pulsuje.
-
Rozdział 3.6 manuala do biblioteki:
http://sim.marebakken.com/SevenSeg.pdf
Oprócz przypisania pinów trzeba obliczyć i ręcznie ustawić opóźnienia dla kaźdego z wyświetlaczy. Może brak tego ustawienia powoduje, że miga.
-
Rozdział 3.6 manuala do biblioteki:
http://sim.marebakken.com/SevenSeg.pdf
Oprócz przypisania pinów trzeba obliczyć i ręcznie ustawić opóźnienia dla kaźdego z wyświetlaczy. Może brak tego ustawienia powoduje, że miga.
Jesteś WIELKI ;D !!!
U mnie razem jest aż 3 wyświetlacz, razem 9 cyfr.
Na podstawie tego wzoru, 9 # 100Hz = 900Hz . 1 podzielić przez 900Hz dało mi opóźnienie 1111 micro sekundy.
Dopisałem do kodu:
void setup() {
DcsBios::setup();
disp1.setDigitPins(numOfDigits1, digitPins1);
disp1.setDigitDelay(1111);
disp2.setDigitPins(numOfDigits2, digitPins2);
disp2.setDigitDelay(1111);
disp3.setDigitPins(numOfDigits3, digitPins3);
disp3.setDigitDelay(1111);
}
Teraz migotanie przeszło w drobne pływanie ale nie powoduje to już problemów z patrzeniem na wyświetlacz.
Chętnie bym postawił browara, ludzie są tu ZAJEFAJNI .
Jeszcze jedno pytanko, dałem do tego wyświetlacza oporniki 220 oma, czy jak dam 330 oma ( by zmniejszyć ich jasność ) to nic się nie stanie, tak jak w przypadku z normalnymi diodami ?
-
Spróbuj pobawić się jeszcze wartością opóźnienia, może uda się wyeliminować nawet to pływanie.
Segmenty w wyświetlaczu to nic innego jak zwykłe LEDy, możesz regulować ich jasność wartością rezystorów.
Albo zanim chwycisz lutownicę, jeszcze raz do manuala i spróbuje ustawić jasność programowo - strona 14, ostatni akapit, np.:
disp1.setDutyCycle(50);
Nie wiem tylko, czy to działa w przypadku kilku osobnych wyświetlaczy, jak u Ciebie. Pewnie trzeba to ustawić dla wszystkich 3 szt.
-
To też zdaje egzamin, zatem nie będę zmieniał rezystorów. Wielkie dzięki :564: .
-
Teraz mam inny problemik, nie mogę uruchomić poprawnie jednego przełącznika dźwigniowego.
Anticollision Lights
Input Interface: action Message: LCP_ANTICOLLISION PUSH Description: push and hold the switch in the ON position
DcsBios::ActionButton lcpAnticollisionPush("LCP_ANTICOLLISION", "PUSH", PIN);
Input Interface: action Message: LCP_ANTICOLLISION RELEASE Description: release the switch
DcsBios::ActionButton lcpAnticollisionRelease("LCP_ANTICOLLISION", "RELEASE", PIN);
Input Interface: action Message: LCP_ANTICOLLISION OFF Description: put the switch in the OFF position
DcsBios::ActionButton lcpAnticollisionOff("LCP_ANTICOLLISION", "OFF", PIN);
Output Type: integer Address: 0x1144 Mask: 0x0080 Shift By: 7 Max. Value: 1 Description: switch position -- 0 = off, 1 = on
void onLcpAnticollisionChange(unsigned int newValue) {
/* your code here */
}
DcsBios::IntegerBuffer lcpAnticollisionBuffer(0x1144, 0x0080, 7, onLcpAnticollisionChange);
DcsBios::LED lcpAnticollision(0x1144, 0x0080, PIN);
Na wpisie DcsBios::ActionButton lcpAnticollisionPush("LCP_ANTICOLLISION", "PUSH", PIN); owszem działa ale jakośdziwnie ( jak SWITCH (ON))
Zaś na wpisach :
DcsBios::ActionButton lcpAnticollisionRelease("LCP_ANTICOLLISION", "RELEASE", PIN);
DcsBios::ActionButton lcpAnticollisionOff("LCP_ANTICOLLISION", "OFF", PIN);
Nie chce działać wcale.
Próbowałem jeszcze przerobić ActionButton na Switch2Pos bo taki dokładnie tam jest przełącznik ale nic to też nie dało.
-
Udało mi się zmusić do działania właściwego.
Dałem:
DcsBios::ActionButton lcpAnticollisionPush("LCP_ANTICOLLISION", "PUSH", PIN); co włącza mi przełącznik i :
DcsBios::ActionButton lcpAnticollisionOff("LCP_ANTICOLLISION", "OFF", PIN); co go wyłącza.
Niestety kosztem kolejnego pinu na Arduino, troszkę na około ale dział :) .
-
Czy może ktoś się wie jak to zrobić ?
Chcę odpalić więcej diodek z jednej linijki.
DcsBios::LED mcLed(0x1012, 0x0800, 12);
Miałem nadzieję, że jak wpiszę więcej wejść w kod to zadziała np.:
DcsBios::LED mcLed(0x1012, 0x0800, 12, 13, 11);
Niestety nie udało się, zatem wykonałem parę wpisów takich samych ale z różnymi numerami:
DcsBios::LED mcLed(0x1012, 0x0800, 12);
DcsBios::LED mcLed(0x1012, 0x0800, 13);
DcsBios::LED mcLed(0x1012, 0x0800, 11);
Niestety to też nie zadziałało :( wyskakuje błąd a po wgraniu w Arduino i tak świeci tylko dioda z pierwszej linijki.
Czy zostaje mi tylko przekaźnik do Arduino i 12V diody ? Tak mam zrobione3 cięgna przeciwpożarowe.
Ps. Przepraszam Marcin_B , że pytam ciągle o te rzeczy w twoim wątku ale jest tu już tyle istotnych i pomocnych informacji, że nie chcę już tego rozbijać...
-
W Arduino nie możesz więcej niż 1x podać odniesienia do konkretnej funkcji - w tym przypadku 0x0800. Ja próbowałem to ugryźć przy innej okazji - kontrolki podwozia w Ka-50 i MiGu-21 mają takie same nazwy funkcji. Jak na razie nie udało mi się tego obejść.
Pozostaje Ci podłączyć te 3 ledy razem i dać do jednego pina.
-
Trzy ledy to za wiele szeregowo, równolegle chyba też, obciążenie 1 pin-u w Arduino to chyba 40mA ? Mogę podłączyć dwie równolegle z jakimś opornikiem typu 66-100oma .
-
Gdzie chcesz je wstawić?
-
Pod przycisk MASTER CAUTION na UFC. Najwyżej oprę się na przekaźniku, przy okazji będę miał dodatkowy sygnał dźwiękowy :)
-
Ja dałem 2 ledy fi 5 - żółte
-
Wydaje mi się, że tycio mało, to znaczy nie równe podświetlenie, myślałem o min 4 szt. No ale może dwie starczą, takie 140 stopni, 2100mcd.
http://www.tme.eu/pl/details/os5ypm57e1a-lm/diody-led-tht-5mm/optosupply/
-
Kwestia gustu :)
-
Hmmmmm marudny jestem i upierdliwy - lubię jak coś wygląda i cieszy oko 8) .
-
Może w końcu się sprężę i wrzucę kilka fotek
Wysłane z mojego E2303 przy użyciu Tapatalka
-
No to dawaj.
U mnie już Radio i UFC zaplanowane i narysowane, projekt jeszcze tylko dopieszczam. Części w TME już zamówiłem, gałki, encodery, wyświetlacze, switch tact itp. Tylko te diody mi zostały. Myślę, że wpierw złożę do kupy UFC, zrobię testy i dopiero nabędę diody.
-
Za radą Wolfa pokuszę się na zastosowanie układu z tranzystorem MPS2222A NPN, tu jest dobry opis tego podłączenia.
http://starter-kit.nettigo.pl/2009/12/gdy-pradu-brakuje/
Podłączenie 4 diód nie stanowi problemu, z tego co rozumiem to i 6-8 też nie będzie problemu.
W TME nie ma takiego tranzystora ale są inne bipolarne NPN, ten http://www.tme.eu/pl/details/2n2222a-dio/tranzystory-npn-tht/diotec-semiconductor/2n2222a/ mam nadzieję, żebędziedobrym zamiennikiem ?
-
Sposób na podłączenie żarówek - mocne źródło światła do np. podświetlania kontrolek:
http://bildr.org/?s=mosfet
-
Marcin miałeś te fotki wstawić, zwłaszcza interesuje mnie ten wskaźnik klap. Troszkę późno ale może jakimś swędem zrobię go jakoś u siebie...
-
Mały update postępu prac.
Ponieważ od jakiegoś czasu zacząłem zmierzać w kierunku "multi kokpitu" obsługującego wszystkie moduły DCS, pojawiła się konieczność dołożenia dodatkowych przełączników. Ponieważ A-10C na którym kokpit bazuje ma bogaty zestaw oprzyrządowania, konieczność zmian nie jest powalająca. DOlny monitor jest dotykowy co ułatwia latanie na różnych maszynach bez potrzeby dotykania klawiatury.
Od początku roku wgryzam się w Arduino. Na chwilę obecną mam 7 modułów (3 Mega 2560 plus 4x Nano). Dodatkowo 3 płytki DMK8.
Czwarta jest przygotowana pod CDU, tylko nie mam kiedy tego skończyć :cry:
Przewaga DMK8 to brak ograniczeń przy użytkowaniu pod różnymi modułami. Arduino wymaga DCS BIOS co ogranicza jego zastosowanie do A-10C, UH-1, Ka-50 i MiG-21. W ograniczonym zakresie jest też soft na M2000 tworzony przez kolegów z Żabolandii.
Aktualny wygląd kokpitu - dodatkowe panele z nadprogramowymi przyciskami są w fazie koncepcyjnej więc wyglądają jak wyglądają :evil:
(https://naforum.zapodaj.net/thumbs/8f1c336b4d1c.jpg) (https://naforum.zapodaj.net/8f1c336b4d1c.jpg.html)(https://naforum.zapodaj.net/thumbs/24dcd2cb2976.jpg) (https://naforum.zapodaj.net/24dcd2cb2976.jpg.html)(https://naforum.zapodaj.net/thumbs/62770526729e.jpg) (https://naforum.zapodaj.net/62770526729e.jpg.html)(https://naforum.zapodaj.net/thumbs/f3fcef6cb3db.jpg) (https://naforum.zapodaj.net/f3fcef6cb3db.jpg.html)(https://naforum.zapodaj.net/thumbs/64cea8429cd4.jpg) (https://naforum.zapodaj.net/64cea8429cd4.jpg.html)(https://naforum.zapodaj.net/thumbs/85874544221a.jpg) (https://naforum.zapodaj.net/85874544221a.jpg.html)
Diody LED kontrolek podwozia działają obecnie na A-10C, Ka-50 i MiG-21. Zastosowałem LEDy czerwono-zielone (Ka-50 i MiG-21).
(https://naforum.zapodaj.net/thumbs/4317e79ba2d1.jpg) (https://naforum.zapodaj.net/4317e79ba2d1.jpg.html)(https://naforum.zapodaj.net/thumbs/8546053e884b.jpg) (https://naforum.zapodaj.net/8546053e884b.jpg.html)
Oczywiście pod A-10C dzięki koledze z forum jest także podświetlana dźwignia podwozia :)
(https://naforum.zapodaj.net/thumbs/f74747905057.jpg) (https://naforum.zapodaj.net/f74747905057.jpg.html)
Prototypy kontrolek - walczę z jasnością (żarówki zamiast LEDów?)
(https://naforum.zapodaj.net/thumbs/6f42483a4a42.jpg) (https://naforum.zapodaj.net/6f42483a4a42.jpg.html)
MiG-21: RWR
(https://naforum.zapodaj.net/thumbs/28294b298184.jpg) (https://naforum.zapodaj.net/28294b298184.jpg.html)
Ka-50: licznik flar. Do wykorzystania także pod M2000 jako wskaźnik % ciągu.
(https://naforum.zapodaj.net/thumbs/cefa7b078686.jpg) (https://naforum.zapodaj.net/cefa7b078686.jpg.html)
-
Krótkie filmiki:
Caution panel - https://www.youtube.com/watch?v=ADLHSKF9pkQ
A-10C kontrolki podwozia - https://www.youtube.com/watch?v=L-qMCDG9Qss
-
No to widzę koncepcja się tycio zmienia, będzie więcej roboty.
A gdzie wskaźnik flap, ten z serwem ? :( Kiedyś gdzieś pisałeś, że walczysz z kierunkiem obrotu serwa, teraz nie mogę tego zlokalizować.
-
https://www.youtube.com/watch?v=OzQQrSIFDvo
#define DCSBIOS_IRQ_SERIAL
#include <Servo.h>
#include <DcsBios.h>
DcsBios::ServoOutput flapPos(0x10a0, 13, 900, 1550);
void setup() {
DcsBios::setup();
}
void loop() {
DcsBios::loop();
}
Mam mały problem - na płytce Mega do której mam podłączone LEDy, serwo nie działa, Jeśli je odłączę - jest OK.
Daj znać jak będzie u Ciebie.
Serwo to Redax S90
Dodatkowo musiałem dać takie coś: http://abc-rc.pl/rewerser-serwomechanizmow#axzz4VrhaVBXH
Inacze serwo działało w przeciwnym kierunku :)
-
A jak podłączałeś serwo do Arduino ?
-
http://library.isr.ist.utl.pt/docs/roswiki/rosserial_arduino(2f)Tutorials(2f)Servo(20)Controller.html
u mnie pin 13
-
Próbowałeś dać na serwo oddzielne zasilanie ?
-
Nie
-
Znalazłem coś takiego.
http://forbot.pl/blog/artykuly/programowanie/kurs-arduino-cz-5-silnikipwm-zewnetrzne-biblioteki-id3913
Najważniejsze dwie zasady korzystania z serwomechanizmów:
1.Bez potrzeby nie przekręcamy ręcznie położenia wału. Może to uszkodzić stosunkowo delikatne, plastikowe koła zębate, z których zbudowano przekładne.
2.Nie zasilamy serw bezpośrednio ze źródła, którym zasilana jest reszta układu. Każdy silnik pobiera stosunkowo duży prąd. Szczególnie na początku ruchu. Może to zakłócić pracę pozostałych układów, a w skrajnych przypadkach doprowadzić do ich uszkodzenia.
-
Takie zasilanie Uno z baterii 9V stosowałem - bez efektu.
-
A całkiem oddzielne, tak jak tu ? http://akademia.nettigo.pl/serwomechanizm/ Do Arduino dajesz tylko sygnał i masę.
Można jeszcze sprawdzić nowszą bibliotekę https://github.com/dcs-bios/dcs-bios-arduino-library/releases/tag/v0.2.8 , jest tam jakaś funkcja ServoOutput dodana. Może to cos da ?
-
Tego nie próbowałem.
-
Ok, serwo, rewerser oraz stabilizator napięcia na 5V nabyłem. Jak przydzie zacznę testować to ustrojstwo.
W linii:
DcsBios::ServoOutput flapPos(0x10a0, 13, 900, 1550);
Wartość 900 i 1550 dobieram sobie sam, to zakres wychylenia serwa ?
-
Marcin zrobiłem u siebie testy na Arduino Uno, serwo i diody działają bez problemu na zasilaniu z USB, mimo to i tak będę dawał osobne zasilanie do serwo. Może twoje serwo bierze za dużo prądu lub USB daje za mało? U mnie działa wszystko poprawnie.
-
Czy orientujesz się, czy podobnie jak w Arduino UNO, w Arduino MEGA można pod piny analogowe podłączyć wyświetlacze czy encodery ?
-
Tak z ciekawości, zrobiłem sobie pomiary 2 diodek żółtych pod jedno wyjście Arduino.
Spadek napięcia na diodzie żółtej to jakieś 2,4V zatem:
5V - 2,4V = 2,6V
Przy zastosowanych rezystorach 220oma:
2,6V : 220oma = 0,011818mA
Mam dwie diody równolegle, zatem pobór prądu powinien być to 0,02363mA. Oczywiście to tylko wyliczenia, jednak wynika z nich, że mogę podłączyć więcej diodek pod jedno wyjście z Arduino.
Dla pewności zrobiłem pomiar miernikiem, wynik to 17,9mA. Troszkę odbiega od wyliczeń, ale daje nam pewność, że podłączenie 2-3 diodek równolegle pod jedno wyjście Arduino ( max 40mA ) nie powinno być problemem dla wyjścia.
-
Padonis - bezpieczniej byłoby użycie tranzystora do sterowania tymi diodami - pamiętaj, tranzystor NPN czy PNP kosztuje grosze w porównaniu z arduino :) potrzebne jest oczywiście zewnętrzne źródło zasilania lecz domyślam się, że masz takowe (ładowarka etc.)
-
Do 4 szt diodek zrobiłem na tranzystorku (zasilanie z gniazda 5V Arduino), do 3 zostawiłem tak ( 3 diody po pomiarze dają mi 24,5mA ) . Diody te nie działają ciągle, to kontrolka otwarcia kabiny oraz dwie kontrolki podejcia do lądowania. Niestety by przerobić to na tranzystorki potrzebne mi jest więcej kabelków których w tej chwili mi zabrakło. Do serwo używam zewnętrznego zasilania 5V.
Tak się zastanawiam, czy diody muszą być umieszczone koniecznie po stronie kolektora, jak na tym schemacie, Czy mogę je też umieścić po stronie emitera. (w takim układzie bym miał dużo łatwiej to przerobić i nie muszę ciągnąć dodatkowych kabelków.
(http://starter-kit.nettigo.pl/wp-content/uploads/2009/12/tranzistor_schem.png)
-
No i jak mądre głowy, czy te diody muszą być koniecznie po stronie kolektora, czy mogą być po stronie emitera ? W zasadzie jeśli tranzystor robi za wyłącznik to wydawać by się mogło, że to bez znaczenia, ale mogę się oczywiście bardzo mylić...? I zapewne tak jest, bo to nie jest taki zwykły wyłącznik...
-
Jeżeli chcesz je od strony emitera to musisz dać tranzystor typu PNP – wtedy będzie działać pod warunkiem że wyjście D3 daje +5V w stanie wysokim (ja nie wiem bo nie znam Arduino). Wtedy załączysz je jak na D3 dasz „0”, a wyłączysz jak na D3 dasz „+5V”.
Edit: I żeby poprawnie było - wtedy też diody będą od strony kolektora, tyle że kolektor w PNP jest "po drugiej stronie" więc diody będą pomiędzy masą a tranzystorem. Bo rozumiem że o to Ci chodziło.
-
Tak, właśnie o to :) .
-
Marcin_B daj dane jak połączyłęś wyświetlacz do CMSP, wklej plik wsadowy do Arduino. Wcześniej napisałęś, że oryginalnie wyświetlacz ma 19 znaków, ty zastosowałeś 16 ( w sprzedaży widziałem tylko jeszcze 2x20), z jakiego powodu ? No i czy zastosowałeś tą płytkę dodatkową do wyświetlacza czy nie, od tego wiele zależy przy wpisywaniu do pliku wsadowego do Arduino...?
-
U mnie wyświetlacz 16x2 (lepiej pasuje wymiarowo) - konieczne było skrócenie niektórych komunikatów. Jak chcesz mieć tak jak w oryginale to zamontuj 20x2.
Wyświetlacz powinien być zgodny z normą HD 44780 - umożliwia podłączenie po I2C - tylko 4 kable do Arduino.
Poza wyświetlaczem musisz kupic coś takiego:
https://botland.com.pl/konwertery-pozostale/2352-konwerter-i2c-dla-wyswietlacza-lcd-hd44780.html?search_query=konwerter&results=262
Kod do wgrania dla 16x2 (LCD plus wszystkie przyciski i potencjometr):
#define DCSBIOS_IRQ_SERIAL
#include <DcsBios.h>
#include <Servo.h>
#include <LiquidCrystal_I2C.h> // dolaczenie pobranej biblioteki I2C dla LCD
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Ustawienie adresu ukladu na 0x27
//20, 21 - zasilanie
DcsBios::Switch3Pos cmspMws("CMSP_MWS", 22, 23);
DcsBios::Switch3Pos cmspJmr("CMSP_JMR", 24, 25);
DcsBios::Switch3Pos cmspRwr("CMSP_RWR", 26, 27);
DcsBios::Switch3Pos cmspDisp("CMSP_DISP", 28, 29);
DcsBios::Switch2Pos cmspArw1("CMSP_ARW1", 33);
DcsBios::Switch2Pos cmspArw2("CMSP_ARW2", 32);
DcsBios::Switch2Pos cmspArw3("CMSP_ARW3", 31);
DcsBios::Switch2Pos cmspArw4("CMSP_ARW4", 30);
const byte cmspModePins[5] = {35, 34, 37, 36, 39};
DcsBios::SwitchMultiPos cmspMode("CMSP_MODE", cmspModePins, 5);
DcsBios::Switch2Pos cmspJtsn("CMSP_JTSN", 38);
DcsBios::Switch2Pos cmspRtn("CMSP_RTN", 41);
DcsBios::Switch3Pos cmspUpdn("CMSP_UPDN", 43, 40);
void onCmsp1Change(char* newValue) {
lcd.setCursor(0, 0);
lcd.write(newValue[0]);
lcd.write(newValue[1]);
lcd.write(newValue[2]);
lcd.write(newValue[3]);
lcd.write(newValue[5]);
lcd.write(newValue[6]);
lcd.write(newValue[7]);
lcd.write(newValue[8]);
lcd.write(newValue[10]);
lcd.write(newValue[11]);
lcd.write(newValue[12]);
lcd.write(newValue[13]);
lcd.write(newValue[15]);
lcd.write(newValue[16]);
lcd.write(newValue[17]);
}
DcsBios::StringBuffer<19> cmsp1Buffer(0x1000, onCmsp1Change);
void onDcsBiosFrameSync() {
}
void onCmsp2Change(char* newValue) {
lcd.setCursor(0, 1);
lcd.write(newValue[0]);
lcd.write(newValue[1]);
lcd.write(newValue[2]);
lcd.write(newValue[4]); //spacja
lcd.write(newValue[5]);
lcd.write(newValue[6]);
lcd.write(newValue[7]);
lcd.write(newValue[9]); //spacja
lcd.write(newValue[10]);
lcd.write(newValue[11]);
lcd.write(newValue[12]);
lcd.write(newValue[14]); //spacja
lcd.write(newValue[15]);
lcd.write(newValue[16]);
lcd.write(newValue[17]);
lcd.write(newValue[18]);
}
DcsBios::StringBuffer<19> cmsp2Buffer(0x1014, onCmsp2Change);
void setup() {
DcsBios::setup();
lcd.begin(16, 2);
lcd.clear();
}
void loop() {
DcsBios::loop();
}
-
Wiem, że można podłączyć i bez tego. Ze zwykłą biblioteką #include <LiquidCrystal.h> (z takA pokazują na filmiku ze strony DCS-Bios i bez tej przejściówki), z tym ustrojstwem, to chyba da się podłączyć więcej takich wyświetlaczy do jednego Arduino. Coś pisałeś, że wprowadzałeś modyfikacje by zastosować wyświetlacz 2x16, które to linijki?