Jeehell & Arduino

Hallo Leute!
Kann mir jemand helfen?
Bekomme die beiliegende *.ino Datei reparieren bzw. mir sagen was ich ändern muss?

Vielen Dank!
P.S. Es geht um die Ansteuerung von einem ADIRS-Panel an einem A320 Overhead.

Beispiel Video

Danke!
Gruss Peter

sketch_dec12a.ino (5.56 KB)

pe_martin: Hallo Leute! Kann mir jemand helfen? Bekomme die beiliegende *.ino Datei reparieren bzw. mir sagen was ich ändern muss?

Vielen Dank! P.S. Es geht um die Ansteuerung von einem ADIRS-Panel an einem A320 Overhead.

Was genau meinst du mit reparieren ? Setze bitte den Sketch hier in Code-Tags rein. Dann können auch Smartphone und Tablet User den Sketch lesen.

HotSystems: P.S. Es geht um die Ansteuerung von einem ADIRS-Panel an einem A320 Overhead.

Was hast Du am Overheadpanel eines Airbus A320 zu basteln? ;)

Gruß Tommy

Fehlermeldungen? Welche Probleme? Welche Hardware? Gruß DerDani

Hallo!
Hier das Sketch-Code

//-----------------------//
 // IR1 ALIGN CALCULATION //
 //-----------------------//

 if (irlOff) {
   ir1StateAligned=false;
   ir1StateAlignment=false;
   if (!ir1LastOffPosTime) ir1LastOffPosTime=millis();
   else {
     if (millis() > ir1LastOffPosTime + 10000) ir1StateOff = true;
     if (millis() < ir1LastOffPosTime + 5000) ir1EndAlignTime=millis()+30000; else ir1EndAlignTime=millis()+600000;
   }
 }

 if (ir1Nav) {
   ir1StateOff = false;
   if (!ir1StateAligned && !ir1StateAlignment) { // Start alignment
     ir1LastOffPosTime = 0;
     ir1StateAlignment=true;
   }

   if (!digitalRead(27) && ir1StateAlignment && ir1EndAlignTime < millis()+20000) {
     ir1StateAlignment = false;
     ir1StateAligned = true;
   }
 }
 


 //-----------------------//
 // IR3 ALIGN CALCULATION //
 //-----------------------//
 
 if (ir3Off) {
   ir3StateAligned=false;
   ir3StateAlignment=false;
   if (!ir3LastOffPosTime) ir3LastOffPosTime=millis();
   else {
     if (millis() > ir3LastOffPosTime + 10000) ir3StateOff = true;
     if (millis() < ir3LastOffPosTime + 5000) ir3EndAlignTime=millis()+30000; else ir3EndAlignTime=millis()+600000;
   }
 }

 if (ir3Nav) {
   ir3StateOff = false;
   if (!ir3StateAligned && !ir3StateAlignment) { // Start alignment
     ir3LastOffPosTime = 0;
     ir3StateAlignment=true;
   }
   
   if (!digitalRead(34) && ir3StateAlignment && ir3EndAlignTime < millis()+20000) {
     ir3StateAlignment = false;
     ir3StateAligned = true;
   }
 }


 //-----------------------//
 // IR2 ALIGN CALCULATION //
 //-----------------------//
 
 if (ir2Off) {
   ir2StateAligned=false;
   ir2StateAlignment=false;
   if (!ir2LastOffPosTime) ir2LastOffPosTime=millis();
   else {
     if (millis() > ir2LastOffPosTime + 10000) ir2StateOff = true;
     if (millis() < ir2LastOffPosTime + 5000) ir2EndAlignTime=millis()+30000; else ir2EndAlignTime=millis()+600000;
   }
 }

 if (ir2Nav) {
   ir2StateOff = false;
   if (!ir2StateAligned && !ir2StateAlignment) { // Start alignment
     ir2LastOffPosTime = 0;
     ir2StateAlignment=true;
   }
   
   if (!digitalRead(30) && ir2StateAlignment && ir2EndAlignTime < millis()+20000) {
     ir2StateAlignment = false;
     ir2StateAligned = true;
   }
 }




 // --------------- //
 // IR DISPLAY INFO //
 // ----------------//

boolean irOff, irStateOff, irStateAligned, irNav;
long irLastOffPosTime, irEndAlignTime;

 if (sys1) {
   irOff = ir1Off;
   irStateOff = ir1StateOff;
   irLastOffPosTime=ir1LastOffPosTime;
   irStateAligned=ir1StateAligned;
   irEndAlignTime=ir1EndAlignTime;
   irNav=ir1Nav;
 }
 else if (sys3) {
   irOff = ir3Off;
   irStateOff = ir3StateOff;
   irLastOffPosTime=ir3LastOffPosTime;
   irStateAligned=ir3StateAligned;
   irEndAlignTime=ir3EndAlignTime;
   irNav=ir3Nav;
 }
 else if (sys2) {
   irOff = ir2Off;
   irStateOff = ir2StateOff;
   irLastOffPosTime=ir2LastOffPosTime;
   irStateAligned=ir2StateAligned;
   irEndAlignTime=ir2EndAlignTime;
   irNav=ir2Nav;
 }
 else digitalWrite(lcdBacklightPin, 0);


 //----------------------//
 // CHECK LCD ON OR OFF //
 //----------------------//

 if (!sysOff) digitalWrite(lcdBacklightPin, 1);
 else digitalWrite(lcdBacklightPin, 0);


 // IR SWITCH OFF
 if (irOff && !kbdMode) {
   if (irStateOff)  adirsLcd.clear();
   if (millis() < irLastOffPosTime + 5000) writeOnLcd("REALN DESN 5 SEC");
   else if (millis() < irLastOffPosTime + 5300) writeOnLcd("OFF TIME 5 SEC");
   else if (millis() < irLastOffPosTime + 6300) writeOnLcd("OFF TIME 4 SEC");
   else if (millis() < irLastOffPosTime + 7300) writeOnLcd("OFF TIME 3 SEC");
   else if (millis() < irLastOffPosTime + 8300) writeOnLcd("OFF TIME 2 SEC");
   else if (millis() < irLastOffPosTime + 9300) writeOnLcd("OFF TIME 1 SEC");
 }



 // IR SWITCH NAV STATE NOT ALIGNED
 if (irNav && !irStateAligned  && !kbdMode) {
   if (dataTest) testMode();
   if (dataTkGs) writeOnLcd("----------------");
   if (dataPpos) writeOnLcd("----------------");
   if (dataWind) writeOnLcd("----------------");
   if (dataHdg) {
     String stw = "";
     if (aircraftTrueHeading<100) stw += "0";
     if (aircraftTrueHeading<10) stw += "0";
     stw += String(aircraftTrueHeading) + String(char(223));
     if (irEndAlignTime-millis() > 60000 && irEndAlignTime-millis() < 600000) writeOnLcd(stw+"  ALIGN "+String((irEndAlignTime-millis()+30000)/60000)+"mn"); // 10-9-8-7-6-5-4-3-2-1mn
     else if (irEndAlignTime-millis() > 30000 && irEndAlignTime-millis() < 60000) writeOnLcd(stw+"  ALIGN <1mn"); // <1mn
     else if (irEndAlignTime-millis() > 0 && irEndAlignTime-millis() < 30000) writeOnLcd(stw+"  ALIGN <30s");
   }
   if (dataSts) writeOnLcd("STS- ENTER PPOS");
 }

 // IR SWITCH NAV STATE ALIGNED
 if (irNav && irStateAligned && !kbdMode) {
   if (dataTest) testMode();
   if (dataTkGs) {
     String stw = "Tk ";
     if (aircraftGpsTrack<100) stw += "0";
     if (aircraftGpsTrack<10) stw += "0";
     stw += String(aircraftGpsTrack)+String(char(223))+"  ";
     if (aircraftGpsGs<100) stw += " ";
     if (aircraftGpsGs<10) stw += " ";
     stw += String(aircraftGpsGs)+" Kts";
     writeOnLcd(stw);
   }
   if (dataPpos) writePposOnLcd ();    
   if (dataWind) writeOnLcd("Wind "+String(ambiantWindDir)+String(char(223))+"/"+String(ambiantWindSpeed)+" Kts");
   if (dataHdg) {
     String stw = "HDG ";
     if (aircraftTrueHeading < 100) stw += "0";
     if (aircraftTrueHeading < 10) stw += "0";
     stw += String(aircraftTrueHeading)+String(char(223));
     writeOnLcd(stw);
   }
   if (dataSts) writeOnLcd("STS- NONE");
 }
}

Ich bauen einen Homecockpit (Airbus A320).
Verwendet werden soll eine Arduino uno!

Für Fragen stehe ich gern zur Verfügung!
Darstellung siehe Video!
Gruss Peter

Warum nimmst du keine Code-Tags, so ist das schlecht lesbar.

Edit: Dann frage bitte mal da nach, wo du den Sketch her hast. Der ist nicht vollständig, da kann man wohl nichts reparieren.

Hallo! Schade das etwas fehlt? Gruss Peter

pe_martin: Schade das etwas fehlt?

Und schade, dass du uns nicht hilfst, dir zu helfen.

Hallo! Ich würde euch gern helfen das ihr mir beim Lösen des Problem helft. Allerdings weiss ich nicht wie? Das der Programmierer des Scrips nicht mehr Info herausgibt! Es geht um die Abfrage einer Schnittstelle die bei einer bestimmten Schalterstellung den Inhalt eines Offsets auf einem LCD auszugeben! Wie das aussehen soll, seht ihr auf dem Video!

Danke Gruss Peter

pe_martin: Ich würde euch gern helfen das ihr mir beim Lösen des Problem helft. Allerdings weiss ich nicht wie?

Indem du uns den kompletten Sketch postest. Das obige Teil ist so ganz sicher nicht lauffähig.

Auch das vielgepriesene Video hilft da leider nicht weiter. ;)

Es fehlen:

  • Die Deklarationen des Variabeln
  • Die #define´s der Ein / Ausgänge
  • die LCD Anbindung
  • komplettes Handling der Schnittstellen Kommunikation
  • die void setup()
  • die void loop()
  • ein paar unter Funktionen z.B. void Testmode()

Welches Board ist das? Im Text gibt es z.B. ein

!digitalRead(27)

das kann dann kein Uno oder Nano sein

So sind die paar If-schleifen nicht viel Wert

.
Gruß
DerDani

Hallo Leute! Vielen Dank! Ich werde mich bemühen das zu realisieren und die Entsprechenden Definitionen zu beschaffen! Danke! Gruss Peter