INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arudrino Leonardo mit Display hängt sich auf
26.08.2015, 20:33 (Dieser Beitrag wurde zuletzt bearbeitet: 26.08.2015 20:34 von EvilKnivel.)
Beitrag #1
Shocked Arudrino Leonardo mit Display hängt sich auf
Hallo zusammen,

vielen Dank erstmal für dieses Coole Forum. Durch mitlesen wurde mir hier schon oft geholfen Wink

Leider komme ich an einem Punkt in meinem Projekt nicht weiter.

Ich habe ein Leonardo mit einem 20x4 LCD Display (china). Auf diesem liefen das "Hello World" etc Problemlos.

Also habe ich es in mein Projekt implementiert. Unten der Code ist eine abgespeckte Version aber zeigt den selben Effekt. Was ich auf dem Display anzeigen möchte ist u.A. der Status von drei Tastern.

Mein Code läuft problemlos, solang ich die Taster nicht abfrage. Sobald ich die "AbfrageZeit()" mit einbaue stürzt das Programm ab und das Display zeigt nichts mehr richtig an.

Und jetzt wird richtig komisch: Das hat scheinbar auch dazu geführt, dass mein Leonardo sich nicht mehr bespielen lässt. Es wird vom PC nicht mehr erkannt. Hatte zuerst gedacht das ich die USB Verbindung im falschen Moment beim Programmieren getrennt hab oder so - und es so geschossen hab. Aber auch bei meinem zweiten Leonardo trat das Problem auf. Zuerst wurde es nicht mehr erkannt aber glücklicherweise konnte ich es nach einiger Zeit wieder bespielen. Traue mich aber nicht weiter zu machen, da ich den Fehler nicht verstehe.

Was ist an der Abfrage falsch (mit Serial.print ohne Display funktioniert es)?
Warum kann ich scheinbar mit dem Programm den Bootloader zerstören? (Komischerweise hat ein neu aufspielen des Bootloaders beim defekten Leonardo vom funktionierenden Leonardo auch nicht funktioniert, hab mich damit aber noch nicht weiter befasst)

Hoffentlich könnt ihr mir weiter helfen?

Code:
#include <LiquidCrystal.h>
#include <Wire.h>


LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
//----> switches config

int switchPinT1 = 4;  /*Timer gelb*/
int switchPinT2 = 5;  /*Timer rot*/
int switchPinT3 = 3;  /*Timer gruen*/


//----> switch status
int lastStateT[2];
int newStateT[2];

//---->
int selectHeat = 5;
int selectGroup = 11;
char* PilotName[] = {"Mustermann", "Beispiel", "Egal"};
char* PilotVorname[] = {"Max", "Moritz", "Franz"};
int indent = 1;
long Timeout = 0;
int idPt[2];
int idP1[2];
int idP2[2];
int idP3[2];
unsigned long currentTime;

void setup() {
  pinMode(switchPinT1, INPUT);
  pinMode(switchPinT2, INPUT);
  pinMode(switchPinT3, INPUT);
  lcd.begin(20, 4);
  DisplayIndentSetup();
  
}

void loop() {
  AbfrageZeit(); // Wenn diese Funktion aktiv ist stürzt das Porgramm ab, Leonardo nicht mehr bespielbar!
  currentTime = millis();
  DisplayIndent();
  delay(100);
}

void DisplayIndent()
{
  
  int i=0;
  i = indent;
    if(PilotVorname[i] != "NA"){
      
        if(currentTime -  Timeout < 400)
          {
          lcd.setCursor(12,i+1);
          lcd.print("T"); lcd.print(" ");
          lcd.print("1"); lcd.print(" ");
          lcd.print("2"); lcd.print(" ");
          lcd.print("3"); lcd.print(" ");
          
          return;}
        if (currentTime -  Timeout > 1500){Timeout = currentTime;}
        
      lcd.setCursor(12,i+1);
      lcd.print("T"); if(idPt[0] == 1){lcd.print((char)255);} else {lcd.print((char)219);} //eigentlich idP1[i], zu testzwecken idPt[0]
      lcd.print("1"); if(idPt[1] == 1){lcd.print((char)255);} else {lcd.print((char)219);} //eigentlich idP1[i], zu testzwecken idPt[1]
      lcd.print("2"); if(idPt[2] == 1){lcd.print((char)255);} else {lcd.print((char)219);} //eigentlich idP2[i], zu testzwecken idPt[2]
      lcd.print("3"); if(idP3[i] == 1){lcd.print((char)255);} else {lcd.print((char)219);}
    
    }
  
}
void DisplayIndentSetup()
{
  lcd.clear();
  lcd.print("Heat: "); lcd.print(selectHeat, DEC); lcd.print(" Group: "); lcd.print(selectGroup, DEC);
  for (int i=0;i<3;i++) {
    if(PilotVorname[i] != "NA"){
      lcd.setCursor(0,i+1);
      lcd.print(PilotVorname[i][0]); lcd.print("."); lcd.print(PilotName[i]);
    }
  }
}

//------------------------------------------------------------------------------
// Wenn diese Funktion aktiv stürzt das Porgramm ab, Leonardo nicht mehr bespielbar!
void AbfrageZeit() {
  newStateT[0] = digitalRead(switchPinT1);
  newStateT[1] = digitalRead(switchPinT2);
  newStateT[2] = digitalRead(switchPinT3);
  for (int i=0;i<3;i++){
    if(newStateT[i]!=lastStateT[i])
    {
      if(newStateT[i]==HIGH) {idPt[i] = 1; }
      lastStateT[i] = newStateT[i];
    }
  }
}

Danke & Gruß

Christoph
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Bug ESP8266 ESP-12E & DHT22 hängt sporadisch Lurchi 6 218 31.01.2017 17:42
Letzter Beitrag: NormanIGB
  Arduino Läst sich nicht Programmieren Micha06 4 184 29.01.2017 17:27
Letzter Beitrag: Micha06
  Arduino UNO hat sich Aufgehängt?? huber5093 16 385 27.01.2017 23:59
Letzter Beitrag: hotsystems
  Display über I2-Bus betreiben mfri 22 569 23.01.2017 11:06
Letzter Beitrag: renid55
  Arduino hängt beim Upload deranda 14 771 20.01.2017 16:14
Letzter Beitrag: renid55
  Speicher Voll, Array zu groß, Display Datenerfassung nilsconrad 31 638 13.01.2017 18:16
Letzter Beitrag: renid55
  Display Oszilloskop 5kHz Darstellung Abtastung nilsconrad 3 236 16.12.2016 14:17
Letzter Beitrag: Bitklopfer
  Leonardo futsch? kpc 7 241 14.12.2016 23:53
Letzter Beitrag: Tommy56
  matrix display elegoo uno R3 starter set lecker16 7 435 23.11.2016 21:14
Letzter Beitrag: Bitklopfer
  Arduino lässt sich nicht installieren bergfrei 4 310 20.11.2016 18:34
Letzter Beitrag: bergfrei

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste