Zum Inhalt springen

JeeHell PackFlow2Arduino

Meine Freeware Projekt werden kostenfrei nur nicht kommerziellen Nutzung überlassen. Sie dürfen nicht verändert oder weiterverbreitet werden. Alle Softwareprojekt werden ohne Garantie, Gewährleistung und Support geliefert!

Die Nutzung erfolgt auf eigene Gefahr!

Einführung

Diese Software kann einen 12V Ventilator (FAN) in Verbindung mit der JeeHell A320FMGS Homecockpit Software steuern. Der FAN wird basierend auf dem Flugzeugstatus (Bleed Air verfügbar, z.B.) und dem PACK FLOW Schalter im Overhead ausgelöst.

Der Download besteht aus zwei Teilen:

  • Arduino Sketch (für ARDUINO MEGA R3)
  • Software zur Kommunikation mit A320FMGS (JeeHell) und dem Arduino Board
Ich weise darauf hin, dass der Nachbau (insbesondere von Stromkreisen) auf eigene Gefahr geschieht und ich keine Haftung für Schäden übernehme. Dies ist eine nicht-kommerzielle Dokumentation meiner privaten Arbeit.

Mein Projekt

Mein Projekt habe ich hier dokumentiert.

Schematische Darstellung

Systemanforderungen

  • JeeHell A320GFMGS Software
  • JeeHell FSUIPC Hardwaremodul
  • FSUIPC 4/5 oder höher
  • Arduino Board (oder kompatible)
  • Lüfter/FAN mit PWM Funktionalität
  • 12V DC Netzteil

Download

Changelog

  • 29.07.2018 v6
    • Arduino Sketch
      • Improvement of logic
    • Software
      • Improvements and better Error handling
  • 11.07.2018 v5
    • Latest Version

Installation

Arduino

Unser Arduino braucht den Softwarecode (Sketch), um zu wissen, wie er sich verhalten soll. Der Sketch definiert die PINs für das PWM-Signal und die Eingänge in Variablen. Wenn sich dies durch Ihre Konfiguration ändert, ändern Sie einfach die Variablen. Denken Sie daran, dass die PIN für den FAN eine PWM-Ausgangs-PIN sein muss:

int pin_PWM = 9;

Die PINs für den Eingang des „Pack Flow Switch“ müssen digitale Eingänge sein:

int pin_pFlowLO = 22; 
int pin_pFlowNORM = 24; 
int pin_pFlowHI = 26;

Arduino Code

int fanSpeed = 0;
int pin_PWM = 9;
int pin_pFlowLO = 22;
int pin_pFlowNORM = 24;
int pin_pFlowHI = 26;
int pin_Last = 0;
int pin = 0;
int runFan = 0;
String sendItem = "";

void setup() {
TCCR2B = TCCR2B & 0b11111000 | 0x01; // Setzt Timer1 (Pin 9 und 10) auf 31300Hz
pinMode(pin_PWM, OUTPUT);
pinMode(pin_pFlowLO, INPUT_PULLUP);
pinMode(pin_pFlowNORM, INPUT_PULLUP);
pinMode(pin_pFlowHI, INPUT_PULLUP);
Serial.begin(9600);
}

void loop() {

if (digitalRead(pin_pFlowLO) == LOW) {
sendItem = "pFlowLO"; 
sendPin(); 
}

if (digitalRead(pin_pFlowNORM) == LOW) {
sendItem = "pFlowNORM"; 
sendPin();
}

if (digitalRead(pin_pFlowHI) == LOW) {
sendItem = "pFlowHI";
sendPin();
}

String s = Serial.readString(); // get the character

if (s.indexOf("fanOn") >= 0 || runFan == 1) {
if (sendItem != "") {
Serial.println (sendItem);
runFan = -1; 
}

}

if (s.indexOf("fanOff") >= 0 || runFan == 0) {
analogWrite(pin_PWM, 0);
runFan = 0; 
} else {
analogWrite(pin_PWM, fanSpeed);
}

}

void sendPin() {
if (sendItem=="pFlowLO") {
pin = pin_pFlowLO;
fanSpeed = 64; 
}
if (sendItem=="pFlowNORM") {
pin = pin_pFlowNORM;
fanSpeed = 128; 
}
if (sendItem=="pFlowHI") {
pin = pin_pFlowHI;
fanSpeed = 255; 
}
if (pin != pin_Last) {
Serial.println (sendItem);
pin_Last = pin;
}
}

peroJeeHellPackFlow2Arduino.exe

Meine Software muss nur einmal durch Auswahl des COM-Ports konfiguriert werden. Sie benötigt eine FSUIPC-Verbindung und einen laufenden Simulator. Natürlich muss der Arduino angeschlossen sein.