Vinkkiä tarvitaan T7 valokytkinten hallintaan

(1/5) > >>

Tomi787:
Tervehdys
X-plane10
kone 777 pro versio
Tarvitsen vinkkiä miten koodata valokytkimet käyttöön, siis laskeutumis valot.. ym käytän teensy korttia ja ohjelmana arduino. saan kyllä valot toimimaan pelin sisällä, mutta kun lisään muita kytkimiä tai toimintoja niin ei toimi.
Koodit ja toiminnot toimivat eri sketsissä.

JylhaMi:
Laitappa koodia tänne tulemaan, niin katsotaan yhdessä. Itselläkin juuri Teensy ++ koodailut kiivaimmillaan

Mikä simu? X-plane?

Joko kävit katsomassa: http://b58.svglobe.com/code.html

T:Mika

Tomi787:
#include <Bounce.h>

const int laskurenkaat = (21,0);
const int laskeutumisvalo = (14, 10);
const int strobovalo = (18, 10);
const int taxivalo =  (17, 10);
const int radiomajakka = (16, 10);
const int navvalo =  (15, 10);
const int kasijarruon = (20,0);


FlightSimCommand Landingon; 
FlightSimCommand Landingoff;
FlightSimCommand strobelighton;
FlightSimCommand strobelightoff;
FlightSimCommand taxilightson;
FlightSimCommand taxilightsoff;
FlightSimCommand beaconligtson;
FlightSimCommand beaconligtsoff;
FlightSimCommand navlightson;
FlightSimCommand navlightsoff;
FlightSimCommand jarruon;
FlightSimCommand Laskuoff;
FlightSimCommand Laskuon;


void setup() {
 
  pinMode(14, INPUT_PULLUP);  // Valopaneeli pinit 14, 15, 16, 17, 18 jarru 20 laskurenkaat 21 
  pinMode(15, INPUT_PULLUP);
  pinMode(16, INPUT_PULLUP);
  pinMode(17, INPUT_PULLUP);
  pinMode(18, INPUT_PULLUP);
  pinMode(21, INPUT_PULLUP);
  pinMode(20, INPUT_PULLUP);
 
 
  Landingon = XPlaneRef("sim/lights/landing_lights_on"); 
  Landingoff = XPlaneRef("sim/lights/landing_lights_off");  // nimetyt pelikomennot
  strobelighton = XPlaneRef("sim/lights/strobe_lights_on");
  strobelightoff = XPlaneRef("sim/lights/strobe_lights_off");
  taxilightson = XPlaneRef("sim/lights/taxi_lights_on");
  taxilightsoff =XPlaneRef("sim/lights/taxi_lights_off");
  beaconligtson =XPlaneRef("sim/lights/beacon_lights_on");
  beaconligtsoff=XPlaneRef("sim/lights/beacon_lights_off");
  navlightson = XPlaneRef("sim/lights/nav_lights_on");
  navlightsoff = XPlaneRef("sim/lights/nav_lights_off");
  jarruon = XPlaneRef("sim/flight_controls/brakes_max");
  Laskuon = XPlaneRef("sim/flight_controls/landing_gear_down");
  Laskuoff = XPlaneRef("sim/flight_controls/landing_gear_up");
 
 
  }
 
void loop() {
  // eka lause loop:issa päivittää X-Planen
  FlightSim.update(); 
// kasijarruon.update();
   

   if (digitalRead(14) == LOW) {          // valopaneelin ohjaus koodit
}       Landingoff.once();
    if(digitalRead(14) == HIGH) {
       Landingon.once();
}     

     if (digitalRead(18) == LOW) {
}        strobelightoff.once();
       if(digitalRead(18) == HIGH) {
       strobelighton.once(); 
}   

     if (digitalRead(17) == LOW) {
}       taxilightsoff.once();
    if(digitalRead(17) == HIGH) {
          taxilightson.once(); 
}

     if (digitalRead(15) == LOW) {
}         navlightsoff.once();
     if(digitalRead(15) == HIGH) {
        navlightson.once(); 
}
    if (digitalRead(16) == LOW) {
}        beaconligtsoff.once();
     if(digitalRead(16) == HIGH) {
       beaconligtson.once(); 
}
 
   
    if (digitalRead(21) == LOW) {
      Laskuon.once();
  }
     if(digitalRead(21) == HIGH) {
      Laskuoff.once();
  }
 
  if (digitalRead(20) == LOW ) {
      jarruon = 0;
  }
   if (digitalRead(20) == HIGH) {
     jarruon = 1;
  }

} ///////////

Kun lisään tämän koodit osat mukaan niin toimii miten sattuu.. ohjaimena pulssi potentiometri molemmat koodit toimii kun ovat eri sketseissä.
#include <Bounce.h>

Bounce nopeusylos = Bounce (0,10);
Bounce nopeusalas = Bounce (1,10);

FlightSimCommand ylos; 
FlightSimCommand alas;

void setup() {
 
  pinMode(0, INPUT_PULLUP);
  pinMode(1, INPUT_PULLUP);
 
  alas = XPlaneRef("777/spacial1");
  ylos = XPlaneRef("777/spacial2");
 
   }
   
   void loop() {
  // eka lause loop:issa päivittää X-Planen
  FlightSim.update(); 
// kasijarruon.update();
nopeusylos.update();
nopeusalas.update();

   if (nopeusylos.risingEdge()) {
      alas = 0;
  }
     if(nopeusylos.fallingEdge()) {
      alas = 1;
  }
  if (nopeusalas.risingEdge()) {
      ylos = 0;
  }
    if(nopeusalas.fallingEdge()) {
     ylos = 1;
}
  }

luulen että noi valokytkimet on väärin koodattu laittaa luupin jotenkin jumiin jatkuvalla toistolla...?

JylhaMi:
Morjens,

Pari tyhmää kysymystä alkuun:

Kun nuo kaksi ovat samassa scriptissä, niin eihän sulla ole setup tai void loop kahteen kertaan?

Sitten tuossa alla sulla on ihan selvä typo:

  if (digitalRead(14) == LOW) {          // valopaneelin ohjaus koodit
}       Landingoff.once();
    if(digitalRead(14) == HIGH) {
       Landingon.once();
}     

Tuohan siis ei voi toimia ollenkaan...
Tuon ekan IF:n sisältö on tyhjä, eli vaikka ehto olisi tosi, siellä ei suoriteta mitään...
Sensijaan suorittaa peräkkäin tuota ON ja OFF reffiä...

if (digitalRead(14) == LOW)   // valopaneelin ohjaus koodit
  {         
      Landingoff.once();
  }

if(digitalRead(14) == HIGH)
  {
      Landingon.once();
  }     

Tuolla lailla voisi jopa toimia, mutten ehdi kokeilla. Idea on kuitenkin niin, että {  toiminto näiden sisään  }   

Ja muuten tuota: FlightSim.update(); 

tarvitaan vaan jos halutaan tuoda X-Planesta tietoja Teensylle päin... 

Tomi787:
JEP

Yhdistän noi kaksi sketsiä yhteen lisäämllä vain tarvittavat rivit, ja kiitos vinkistä kokeilen tänään tota vaihtoehtoa. Kiitos

Navigation

Up one level

Next page