Frage zum Color LCD Shield von Sparkfun - GELÖST

Hallo,

ich bin Thomas und beschäftige mich erst seit kurzer Zeit mit dem Arduino Mega 2560. Ich habe mit kleinen Dingen angefangen, z.B. LEDs an und aus schalten, Taster abfragen und so weiter. Jetzt wurde mir das Color LCD Shield von Sparkfun (LCD-09363) geschenkt, aber ich bekomme irgendwie dieses Display nicht zum laufen.

Ich bin im Netz auf folgende Seite gestoßen http://peterdavenport.posterous.com/pages/prodjects

Ich habe mir da das erste Beispiel herunter geladen und die Library für das Display in das Library Verzeichnis kopiert. Außerdem habe ich diese noch angepasst, wie es der Autor beschreibt. Sobald das Programm auf den Arduino gestartet wird, sind nur viele farbige Pixel zu sehen und nicht wie vom Autor beschrieben ein Text.

Jetzt zu meiner Frage:

Kann mir bitte jemand helfen dieses Problem zu lösen? Vielleicht hat ja jemand von Euch einen Lösungsvorschlag.

Vielen Dank im Voraus.

LG Thomas

Hallo, Der Fehler ist in Zeile 42 deines Programms

Gruss kurti

Hallo Kurti,

vielen Dank für die Antwort.
Nur leider bringt mich diese nicht weiter.
Der Fehler trit auf, sobald das LCD mit LCDInit() initialisiert wird.
Ab diesem Zeitpunkt sind auf dem Display viele bunte Pixel zusehen.

Hast du eventuell, oder jemand anderes, noch eine Idee woran es liegen könnte?

LG
Thomas

Hallo, wenn Du Dein Problem noch etwas schlechter beschreibst, bekommst Du noch schlechtere Antworten.

Du solltest: - auf keinen Fall Dein Problem genau schildern - nicht beschreiben, wie Du den Code angepasst hast - auf jeden Fall vermeiden, Deinen Code zu posten

hier im Forum geht es hauptsächlich um Esotherik. Jeder hat eine Glaskugel zu Hause und ist Hellseher im Nebenberuf

btw: frag mal Tante Google nach the answer to life the universe and everything http://www.google.de/search?source=ig&hl=de&rlz=1G1GGLQ_DEDE299&q=the+answer+to+life+the+universe+and+everything+plus+the+number+of+horns+on+a+unicorn&oq=the+answer&aq=3&aqi=g10&aql=&gs_sm=c&gs_upl=825l3349l0l6139l10l10l0l3l3l0l301l1465l0.3.3.1l7l0#pq=the+answer+to+life+the+universe+and+everything+plus+the+number+of+horns+on+a+unicorn&hl=de&sugexp=kjrmc&cp=6&gs_id=24&xhr=t&q=the+answer+to+life+the+universe+and+everything&pf=p&sclient=psy-ab&rlz=1G1GGLQ_DEDE299&source=hp&pbx=1&oq=the+an&aq=0&aqi=g4&aql=f&gs_sm=&gs_upl=&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=8ed4f28f67cec645&biw=1920&bih=886

Gruss Kurti, Hellseher erster Güte

Hallo,

vielen Dank für den kleinen Wink, das ich etwas vergessen habe.

Die Library für das Display habe ich über die von mir angegebenen Link runter geladen. Der Autor schrieb außerdem den Hinweis auf seine Seite, dass in der LCD_driver.h Datei die Zeile

#ifdef __AVR_ATmega1280__

in

#ifdef __AVR_ATmega2560__

geändert werden soll, wenn ein Arduino Mega 2560 eingesetzt wird. Da ich diesen verwende, habe ich diese Zeile (Zeile 245) entsprechend angepasst.

Danach habe ich das Beispielprogramm auf ein Minimum gekürzt, da ich das Programm nach und nach durchgehen wollte. Leider werden nur bunte Pixel dargestellt, auch wenn ich alles lösche was nach der Anweisungen LCDInit() kommt.

//    External Component Libs
#include "LCD_driver.h"
//#include "nokia_tester.h"
//    Included files
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include "WProgram.h"
#include "HardwareSerial.h"

//************************************************************************
//					Main Code
//************************************************************************
void setup(){
	ioinit();           //Initialize I/O
	LCDInit();	    //Initialize the LCD
        LCDContrast(44);
        LCDClear(WHITE);    // Clear LCD to a solid color
        LCDPutStr("Hallo World", 0, 4, BLACK, WHITE); // Write instructions on display
                
}
//************************************************************************
//					Loop
//************************************************************************
void loop(){

}

LG
Thomas

LCD_driver.c (25.2 KB)

LCD_driver.h (9.04 KB)

Komentiere auch die nicht verwendeten Bibiotheken weg. Grüße Uwe ps: Meine Kristallkugel ist im Moment in Reinigung. ;) ;)

Hallo Uwe,

ich habe deinen Rat befolgt und alle nicht benötigten Bibliotheken auch auskommentiert. Dies hat leider das Problem nicht gelöst.

Welche Informationen könnten noch hilfreich sein?

LG Thomas

Bekommst Du Fehlermeldungen beim Kompilieren oder Hochladen oder macht das Display keinen mux? Grüße Uwe

Moin Moin,

hast Du daran gedacht, den Kontrast einzustellen ? ( richtige Spannung, richtige Polarität, mit Trimmer einstellbarer Spannungsteiler, Spannungsteiler richtig eingestellt )

Gruss Kurti

Verwendet der 2560 vielleicht andere Pins als der 1280?

Hallo,

ich verwende das LCD Color Shield von Sparkfun.

hast Du daran gedacht, den Kontrast einzustellen? ( richtige Spannung, richtige Polarität, mit Trimmer einstellbarer Spannungsteiler, Spannungsteiler richtig eingestellt )

Das LCD wurde komplett aufgebaut geliefert, es mussten nur noch die Anschlusspins für den Arduino angelötet werden. Einstellregler konnte ich auf diesen Board nicht finden. Wenn ich das oben gepostete Beispielprogramm richtig interpretiere wird der Kontrast per Software eingestellt.

Bekommst Du Fehlermeldungen beim Kompilieren oder Hochladen oder macht das Display keinen mux?

Ich herhalte weder beim kompilieren noch beim übertragen auf den Arduino eine Fehlermeldung. Das Display macht schon etwas, aber nicht das was ich erwarten würde (einen Text ausgeben), wenn ich das Programm richtig interpretiere. Es zeigt nachdem Befehl LCDInit() nur noch folgendes an.

Verwendet der 2560 vielleicht andere Pins als der 1280?

Ich habe mir die Datenblätter und die Schaltpläne für den Arduino2560 und Arduino1280 angesehen und mit einander verglichen. Die Belegung der Pins ist identisch und auch an der selben Stelle auf dem Board. Ich konnte keinen Unterschied feststellen.

LG Thomas

Das Shield ist doch für den 328 konstruiert?? SDI, SDO SCl belegen beim 328 und 2560 andere Pins:

Belegung - Pin328 - Pin2560 SCL - 13 - 52 SDO - 12 - 50 SDI - 11 - 51

So funktionierts auf jeden Fall mit dem "MI0283QT-2" von Watterott. Vielleicht hilft Dir das weiter... Gruß Reinhard

Außerdem solltest du überprüen, ob eventuell Pins der Stiftleiste kurzgeschlossen sind. Auf den von dir beigefügten Bildern sieht man Flussmittelreste und (eventuell) Verunreinigungen zwischen den Pins. Einfach mit einem Durchgangsprüfer von rechts nach links durchmessen. Und vorher säubern ;)

Hallo Reinhard, Hallo Marcus,

ich habe die von Euch genannten Punkte ausprobiert.

Das ändern der Pins hat leider keinen Erfolg gebracht. Auch habe ich die Leiterplatte vorsichtig mit gereinigt und mit einem Durchgangsprüfer getestet. Kein Kurzschluss oder ähnliches.

Werde mich an den Händler wenden, der das Display verkasuft hat. Eventuell kann er mir weiter helfen.

LG Thomas

Hallo,

ich war heute bei dem Händler, der das Display verkauft hat. Ich habe ihm gezeigt welches Problem ich habe und wir haben ein neues ausprobiert. Und siehe da, alles funktioniert. War ein Hardware defekt.

Vielen Dank für die Unterstützung bei der Suche nach einer Lösung.

LG Thomas

Bei einem HW-Fehler ist es natürlich schwierig eine Verdratungsfehler oder SW Fehler zu finden der das Problem behebt. Gratuliere für die hart erarbeitete Lösung Deines Problems. Grüße Uwe