Autor Wątek: DCS A-10C home cockpit  (Przeczytany 18773 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Marcin_B

  • *
  • MABO
Odp: DCS A-10C home cockpit
« Odpowiedź #30 dnia: Września 28, 2016, 19:36:19 »
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

Odp: DCS A-10C home cockpit
« Odpowiedź #31 dnia: Września 28, 2016, 19:54:45 »
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.
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Marcin_B

  • *
  • MABO
Odp: DCS A-10C home cockpit
« Odpowiedź #32 dnia: Września 28, 2016, 21:09:40 »
Właśnie na Uno tego próbowałem.  Trzeba by dać płytkę z mocniejszym układem.

Odp: DCS A-10C home cockpit
« Odpowiedź #33 dnia: Września 28, 2016, 21:16:23 »
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.
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Marcin_B

  • *
  • MABO
Odp: DCS A-10C home cockpit
« Odpowiedź #34 dnia: Września 28, 2016, 21:34:35 »
Oj chyba na NANO, tak z tego wynika.
Na Uno też próbowałem

Wysłane z mojego E2303 przy użyciu Tapatalka


Offline Marcin_B

  • *
  • MABO
Odp: DCS A-10C home cockpit
« Odpowiedź #35 dnia: Września 28, 2016, 22:14:01 »
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

Odp: DCS A-10C home cockpit
« Odpowiedź #36 dnia: Września 28, 2016, 22:23:58 »
A ty robiłeś z tym układem scalonym czy bez ?
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Marcin_B

  • *
  • MABO
Odp: DCS A-10C home cockpit
« Odpowiedź #37 dnia: Września 28, 2016, 22:25:00 »
Bez scalaków - tylko Arduino, rezystory i wyświetlacze :)

Odp: DCS A-10C home cockpit
« Odpowiedź #38 dnia: Września 28, 2016, 22:53:32 »
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 ?
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Odp: DCS A-10C home cockpit
« Odpowiedź #39 dnia: Września 28, 2016, 23:32:33 »
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ść.
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Marcin_B

  • *
  • MABO
Odp: DCS A-10C home cockpit
« Odpowiedź #40 dnia: Września 28, 2016, 23:48:12 »
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.

Odp: DCS A-10C home cockpit
« Odpowiedź #41 dnia: Września 29, 2016, 07:46:10 »
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 ?
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Marcin_B

  • *
  • MABO
Odp: DCS A-10C home cockpit
« Odpowiedź #42 dnia: Września 29, 2016, 08:44:24 »
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

Odp: DCS A-10C home cockpit
« Odpowiedź #43 dnia: Września 29, 2016, 09:04:19 »
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.
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Odp: DCS A-10C home cockpit
« Odpowiedź #44 dnia: Września 29, 2016, 09:30:35 »
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();
   


}

Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)