X-Plane コクピットの自作に挑戦!
X-Plane トグルスイッチのコントロール
X-Planeには沢山のスイッチがありますが、これ以外と簡単そうだが、このことに触れているサイトが少ない。これも散々苦労してさがしたらX-Planeのフォーラムで見つけました。

このフライトディレクターのスッチを同じトグルスイッチで操作してみます。

X-Plane 10.31r3

トグルスイッチ.ai @ 400% (CMYK_プレビュー)


この回路では、ONのときLEDを点灯させるようになっていないが、下のスケッチには13番ピンにLEDを繋ぐようになっています。

B747_4000FlightDirector_Switch.ino

//トグルスイッチでON/OFF

#include <Bounce.h>

Bounce FDir_toggle_switch = Bounce(15, 5);      // Pushbutton on pin 3, 5ms debounce

// X-Plane objects, 1 datarefFlightDirector_Switch

FlightSimInteger FlightDirector;

// variables

elapsedMillis inactivityTimeout;// an inactivity timeout


// setup runs once, when Teensy boots.
//
void setup() {
  // initialize all hardware
  pinMode(15, INPUT_PULLUP);  // input pullup mode allows connecting
  pinMode(13,OUTPUT) ;  //LEDに接続ピンをデジタル出力に設定
 
  FlightDirector = XPlaneRef("sim/cockpit/autopilot/autopilot_mode");

}

// loop runs repetitively, as long as Teensy is powered up
//
void loop() {
  // normally the first step in loop() should update from X-Plane
  FlightSim.update();

  // read the pushbuttons, and send X-Plane commands when they're pressed
  FDir_toggle_switch.update();

 //スイッチのON/OFFのコントロール
  if (FDir_toggle_switch.fallingEdge()) {
    FlightDirector = 1;
    inactivityTimeout = 0;
  }
  if (FDir_toggle_switch.risingEdge()) {
    FlightDirector = 0;
  }
  
 // LEDの点灯、消灯のコントロール
  if (digitalRead(2) == HIGH) {     //スイッチの状態を調べる
          digitalWrite(13,LOW) ;      //スイッチがOFFならLEDを消灯
  } else {
         digitalWrite(13,HIGH) ;       //スイッチがONならLEDを点灯
  }

}

comments powered by Disqus
Contents