-         
Ergebnis 1 bis 3 von 3

Thema: Arduino Mega und LCD Display code Fehler

  1. #1

    Arduino Mega und LCD Display code Fehler

    Anzeige

    Guten 4 Advent!

    Ich bin gerade dabei eine Steuerung für einen Roboter zu Programmieren (Steuerung ist damit man dem Roboter Sagen kann was er tun soll). Diese Steuerung besteht aus 2 Displays und zu jedem Display gehören 5 knöpfe (wie ein Steuerkreuz angeordnet). Ich will, dass auf dem Display 1 verschiedene Funktionen angezeigt werden, die er Roboter ausführen kann. Dann soll man per Knopfdruck die gewünschte Funktion auswählen und dann mit der Mitteltaste diese bestätigen. Die Funktionen (die der Roboter können soll) stehen in dem "funktionen" Array (siehe im code). Das Problem:
    Wenn ich das LCD direkt anspreche also wie im ersten Beispiel, dann funktioniert das. Wenn ich aber probiere mit einer Schleife die jeweilige funktion aus dem Array auszulesen und diese dann immer in die nächste Zeile zu schreiben funktionert es nicht und der Display zeigt sogar nur noch "qqqqqqqqqqqqqqqqq" oder so ein ähnliches Zeichen an. Der ganze Display ist dann mit diesen Zeichen gefüllt.

    Beispiel 1 (so funktioniert es) :

    LCD_Mod1.setCursor(0,0);
    LCD_Mod1.print(funktionen[0]);
    LCD_Mod1.setCursor(0,1);
    LCD_Mod1.print(funktionen[1]);
    LCD_Mod1.setCursor(0,2);
    LCD_Mod1.print(funktionen[2]);


    Beispiel 2 (so funktioniert es nicht):

    void BIB_Roboterbedienung :: LCD_Aktualisieren(){


    LCD_Mod1.clear();



    for(int z = 0; z <= (sizeof(funktionen) - 1); z++){ //funktionen ist der Array mit den Funktionen

    if(z == LCD_counter){ //Das ist, damit die gerade ausgewählte funktion erkennbar ist
    LCD_Mod1.setCursor(0, z);
    LCD_Mod1.print(" * ");
    LCD_Mod1.setCursor(3, z);
    LCD_Mod1.print(funktionen[z]);
    }
    else{
    LCD_Mod1.setCursor(0, z);
    LCD_Mod1.print(funktionen[z]);
    }
    }


    }

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    61
    Beiträge
    2.435
    Hallo,

    Was jetzt noch fehlt ist die Deklaration von funktionen[] ?

    Nehmen wir mal als Beispiel:

    int i[3];
    Weiter nehmen wir an int ist 32-Bit, also 4 Byte.

    sizeof(i) liefert nun den Speicherbedarf von i in Bytes, also
    3*4 = 12

    In einer for-Schlaufe würde dann i[0] bis i[11] abgearbeitet, was nicht so ganz das gewünschte Ergebnis liefert

    richtig wäre
    ((sizeof(i)/sizeof(i[0]))

    in diesem Falle wäre auch
    ((sizeof(i)/sizeof(int))
    möglich. Das macht dann aber Probleme, wenn du z.B. i von int in long änderst. Du musst dann den Source an zwei Stellen ändern!

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  3. #3
    Hi vielen vielen Dank ! ich hab leider ausversehen 2 Threads erstellt! Das andere Thread ist hier
    https://www.roboternetz.de/community...splay-20x-4%29
    und schon beantwortet. Ich würde gerne meine erstellten Threads als "Beantwortet" Markieren, raff aber nicht so richtig wie das gehen soll`?

Ähnliche Themen

  1. SPI-TFT Display gesucht für Arduino Mega, nur (!) Pins 50-53 plus Spannung (o.Touch)
    Von HaWe im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 20
    Letzter Beitrag: 12.11.2014, 10:29
  2. Antworten: 4
    Letzter Beitrag: 09.04.2013, 10:41
  3. [ERLEDIGT] Serielle Kommunikation Mega 16 - Mega 162, für mich unerklärbarer Fehler
    Von #fritz# im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 01.04.2012, 22:15
  4. Arduino LCD Display(16x4) 3.&4.Zeile Fehler
    Von pro-bot128 im Forum Arduino -Plattform
    Antworten: 12
    Letzter Beitrag: 29.04.2011, 18:05
  5. Code im AVR Mega 8 schützen
    Von AlexAtRobo im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 27.02.2005, 14:41

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •