Problem mit GLCD

Hallo
Nachdem ich jetzt seit Tagen das Glcd nicht zum Laufen bekomme,und nach Dutzenden Libraries die ich ausprobiert habe weis ich mir keinen Rat mehr. Bei den Alten Glcds habe ich es immer so wie in diesen Sketch gemacht.

#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <LCDBV4512I2C.h> 
LCDBV4512I2CClass lcd;  
char buffer[5];
char SerBuf[25];
#define ONE_WIRE_BUS 9
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors_1(&oneWire);

void setup(void){
  Serial.begin(9600);
  sensors_1.begin();
  Wire.begin();
  lcd.BackLight(0);               //Schalte die Beleuchtung aus
  lcd.Cls();
  delay(1000);
  lcd.BackLight(1);             //Schalte die Beleuchtung ein
}

void loop(void){ 
  (sensors_1.requestTemperatures()); 
  lcd.MiWriteXY("WARMWASSER", 0,0,1);   
  itoa(sensors_1.getTempCByIndex(0),buffer,10);  //itoa wandelt den zahlenwert in Text um
  lcd.MiWriteXY(buffer, 13,0,1);            //die temperatur wird angezeigt
  lcd.MiWriteXY("Grad", 16,0,1);
  delay(1000);
  }

Aber wenn ich jetzt die neue Librarie BV4611 von BYVAC Runterlade und in das Arduinoverzeichnis Kopiere
und Sketch umschreibe bekomme ich nur noch Fehlermeldungen:

#include <BV4613.h>
#include <Geometria.h>
#include <twi.h>
#include <Wire.h>
BV4613 lcd;  
#include <OneWire.h>
#include <DallasTemperature.h>
char buffer[5];
char SerBuf[25];
#define ONE_WIRE_BUS 9
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors_1(&oneWire);

void setup(void){
  Serial.begin(9600);
  sensors_1.begin();
  Wire.begin();
  lcd.BackLight(0);               //Schalte die Beleuchtung aus
  lcd.Cls();
  delay(1000);
  lcd.BackLight(1);             //Schalte die Beleuchtung ein
}

void loop(void){ 
  (sensors_1.requestTemperatures()); 
  lcd.MiWriteXY("WARMWASSER", 0,0,1);   
  itoa(sensors_1.getTempCByIndex(0),buffer,10);  //itoa wandelt den zahlenwert in Text um
  lcd.MiWriteXY(buffer, 13,0,1);            //die temperatur wird angezeigt
  lcd.MiWriteXY("Grad", 16,0,1);
  delay(1000);
  }

Wo bekomme ich die Schlagwörte für das GLCD bzw für den Controller raus.

Danke Stefan

Hallo
Da ich es seit Tagen nicht geschaft habe das GLCDes zum laufen zu Bringen ,
und ich das nicht Verstehe wenn auf dem Controller BV 4611 Steht
und ich diesen von der Website Runterladenhttp://doc.byvac.com/index.php5?title=Product_BV4611
will bekomme ich nur den BV4613 zum Download obwohl BV4611
da steht und mir BYVAC auch nicht weiterhelfen kommte ,
habe ich mich mal nach anderen Möglichkeiten umgeschaut.
Dabei bin ich auf das gestossen.http://www.google.de/imgres?imgurl=http%3A%2F%2Fwww.gammon.com.au%2Fimages%2FGraphical%252520LCD.jpg&imgrefurl=http%3A%2F%2Fwww.gammon.com.au%2Fforum%2F%3Fid%3D10940&h=413&w=400&tbnid=Twf9Dc4B8DGNOM%3A&zoom=1&docid=fsDBRuTKy2uRJM&ei=vptPU_WFB4nCtAaM9ICwAw&tbm=isch&client=firefox-a&iact=rc&uact=3&dur=206&page=1&start=0&ndsp=32&ved=0CIIBEK0DMA4.
Was haltet ihr vom dem Lösungsweg.

Danke Stefan

Hallo Stefan

Dieser BV4611 Expander scheint mir recht selten zu sein. Ich bin recht viel im englischen "Display" Subforum unterwegs und dort war das bisher (soweit ich mich erinnern kann) kein Thema. Die Lösung vom Nick Gammon ersetzt den BV4611 Expander komplett durch einen anderen Expander. Es handelt sich damit ebenfalls um eine properitäre Lösung. Immerhin meine ich mich zu erinnern, daß es zu dieser Lösung einen eigenen Thread gibt und Nick ist hier auch recht aktiv in den Foren und gibt sicher gerne (auf Englisch) Ratschläge.

Alternativ könnte man das Display auch ohne einen Expander betreiben. Der KS0108 ist einer klassischer Display Chip dessen Ansteuerung ca. 12 Leitungen benötigt, aber insgesamt mit Libraries gut versorgt ist.

Falls es Dir auf wenige Anschlußleitungen ankommt, wäre mene klare Empfehlung ein Display mit ST7920 zu kaufen. Wichtig: Das Display Modul sollte einen Pin namens "PSB" besitzen. Wenn man bei ebay.com nach "ST7920" sucht, findet man schon einige ab 8$. Wenn einen die Wartezeit (4-6 Wochen aus China) und die Überlastung der Zollämter nicht stört (das display für 8$ sollte normalerweise zollfrei sein), halte ich das für die beste Wahl, denn es werden nur drei Pins des Arduino benötigt.

Oliver

Hallo Oliver
Bin in meiner Verzweiflung gestern zu Conrad Gefahren und habe mir 2 MCP23017 gekauft.
Zuhause Angekommen den alten Controller an der Stiftleiste Durchgesägt die Lötpäds vom
GLCD gereinigt , eine neue Stiftleise eingelötet .Dann auf das Breadbord gesteckt nach Schaltplan Verkabelt
und Beispielcode Geladen und siehe da das Glcd lief.
Daraufhin habe ich Angefangen meine alten Code umzuschreiben und die liefen dann auch.
Das einzige was mich noch Stört ist das er die Werte die er mit Itoa Umwandelt nicht wie den anderen
Text behandelt sonder umgedreht.
Ich meine:
andere Text Hintergrund Blau - Text Weis
itoa Text Hintergrung Weis- Text Blau
Das muß mit den true und false Zusammenhängen, wie er im Beispiel zeigt.
Da bin ich aber noch nicht dahintergekommen, wie man das Ändert.

Danke Stefan

Das hat jedenfalls nichts mit itoa zu tun.
ob du

char numText[8];
itoa (12345, numText, 10);

oder

char numText[8] = "12345";

nimmst, kommt auf's Gleiche raus.
Der beobachtete Unterschied liegt wohl im Aufruf des Displays.

Hallo
Was kann man dagegen machen , und noch eine Frage .
Habe jetzt mal aus Spaß ein GLCD 192 x 68 Drangehängt und Siehe da das geht auch aber es sind nur 2/3 des
Displays belegt. Woran liegt denn das .
Danke

Der KS0108 kann nur 64x64 Pixel bedienen. Auf einem 128x64 sind es dann zwei dieser Controller mit zwei CS Leitungen. Auf einem 192x64 (wohl nicht 68) sind es dann drei KS0108 Controller. Teilweise sind es dann drei CS Leitungen oder aber bestimmte Zustände von zwei CS Leitungen.

Oliver

Hallo Oliver
Danke für den Tip.
Laut Datenblatt von dem Display 192 - 64 sind es CS1 und CS2.
Wäre halt schön gewesen wenn das so einfach gegangen wäre.
Aber was muß man da machen um die volle Displaygröße zu haben.
Habe nähmlich noch 2 gleiche Display 192 - 64 von BYVAC rumliegen ,
war einer meiner Fehlkäufe aus Unwissenheit.
Wollte mir mal eine Heizungsüberwachung bauen.
Danke Stefan

Ich vermute man muß nur CS1 und CS2 gleichzeitig auf GND ziehen, um den dritten Controller anzusprechen.

Oliver

Hallo Oliver
Meinst du direkt auf GND Legen oder, über Pulldown Widerstände 10K .
Will nichts Kaputt machen .

Danke Stefan

Naja, über die Pins des Arduino. Die GLCD library muss das Ansteuern übernehmen.

Oliver

Hallo Oliver
Habe den CS1 und CS2 direkt auf Masse Gelegt , jetzt geht aber nur Feld 1 des Display.
Das sonst TOT war. Dann habe ich mal ein bisschen Rumgespielt und habe nur CS1 auf Masse
gelegt . Dann erschien der Code auf dem 1 Feld und 2 Feld und Feld 3 war TOT.
Dann habe nur CS2 auf Masse gelegt und der Code auf dem 1 Feld und 3 Feld und Feld 2 war TOT.
Wie meinst du das mit der Masse am Arduino , habe so gemacht das die CS1 und CS2 direkt am Arduino auf Masse
gelegt habe , ist das so richtig.
Danke Stefan

............................... Punke sind die Stiftleiste (Anschlusspins)


Feld 1 Feld 2 Feld 3


Genau:
CS1 = HIGH und CS2 = HIGH --> keines der 64x64 Bereiche geht
CS1 = LOW und CS2 = LOW --> ganz linker 64x64 Bereiche
CS1 = HIGH und CS2 = LOW --> mittlerer?
CS1 = LOW und CS2 = HIGH --> rechter?

Damit man alle Bereiche des Displays ansprechen kann, müssen also CS1 und CS2 vom Controller entsprechend geschaltet werden. Soweit ich weiss, sollte das mit openGLCD vomBill machbar sein. Auch U8glib sollte das im Prinzip können, habe das aber mangels Display noch nie ausprobiert.

Oliver

Hallo Oliver
Bitte lies den Text oben nochmals durch

Danke Stefan

Hi
Ich bin mir nicht ganz sicher worauf Du hinauswillst. Also: CS1 und CS2 sind Inputs für das Display. Diese Inputs können direkt an die Pins vom Arduino angeschlossen werden. Über CS1 und CS2 wird das von Dir so genannte Feld angesprochen. Natürlich macht es keinen Sinn (außer zum Testen) CS1/CS2 dauerhaft auf 0V oder 5V zu legen.

Wenn ich die Begriffe Masse, GND, Ground, LOW, 0V benutze, dann meine ich das gleiche. Ich bitte um Entschuldigung wenn das verwirrend war.

Wie ich schon schrieb, unterstützt openGLCD dein Display, siehe beispielsweise hier:
https://bitbucket.org/bperrybap/openglcd/src/62cf1693feba0a451fdf56ce823d404e7e28c1ac/config/ks0108/AutoConfig_ks0108-192x64_Panel.h?at=master

Grüße,
Oliver

Hallo Oliver
Das mit der Masse ist klar .
Ich lasse das Glcd 192 - 64 aber über dem MCP 23017 laufen von Nick Gammon laufen.
Das mit den Displays ist für mich ein kleines Problem , da ich kein Elektroinker bin und mir alles mühsam
Zusammensuchen muß bis es mal einigermaßen läuft.
Wenn ich das jetzt richig verstanden habe schaltet der Code die CS1 und CS2 Pins.
Werde das jetzt gleich mal ausprobieren.
Daher suche ich eine Lösung die ich auch über einen Längeren Zeitraum machen kann.
Weil ich nur mal was ab und zu mit den Glcd mache und mir da ganz einfach die Erfahrung und das Wissen fehlt.

Danke Stefan

Wenn ich das jetzt richig verstanden habe schaltet der Code die CS1 und CS2 Pins.

Genau, das sollte er tun.

Oliver

Hallo an alle
Das mit den Glcds habe ich verstanden:
Nur noch 1 Problem habe das ich nicht Verstehe:
Wie kann ich es Ändern das er mir die Werte die er mit Itoa Umwandelt wie den anderen Text behandelt .
(Ich weis das das nicht Itoa Schuld ist)
Ich meine:
andere Text lcd.string("WARMWASSER"); Hintergrund Blau - Text Weis
itoa Text lcd.string (buffer , (10)); Hintergrund Weis- Text Blau

  lcd.gotoxy (2, 24);
  lcd.string("WARMWASSER");   
  itoa(sensors.getTempC (Thermometer_1) ,buffer,10);  //itoa wandelt den zahlenwert in Text um
  lcd.gotoxy (70, 24);
  lcd.string (buffer , (10)); //die temperatur wird angezeigt
  lcd.gotoxy (100, 24);
  lcd.string("GRAD"

Was muß da geändert werden das das gleich ist.

Danke Stefan

Hallo
Ich habe nochmal eine Frage :
Das Problem ist:
Habe heute ein neues Glcd von TYP 12864A in Betreib genommen läuft auch aber.
Ich Sehe alles Doppelt. Auf CS1 und CS2 ist der gleiche Text zu sehen.
Habe schon CS1 auf GND gezogen und CS2 auch auf GND gezogen aber ohne Erfolg, natürlich Abwechselnd .
Habe auch schon CS1 und CS2 am MCP23017 vertauscht.
Woran kann das Liegen.

Danke Stefan