Problem mit GLCD

Hallo
Ich habe das Problem das ich das GLcd (128 - 64 Controller BV 4611) nicht zum laufen bekomme.
http://www.byvac.com/bv3/index.php?route=product/product&path=35_38&product_id=155
Habe mir die Librarie von ByVac Heruntergeladen und Installiert. Aber da ist keine Demo oder sonstwas dabei.
Auch die Suche im Netz war ohne großen Erfolg.
Was ich bis jetzt Geschaft habe ist es auf I2C zu Schalten.
Hat jemand einen sketch der das Grundprinzip dies Displays erklärt.
Wie z.b. Display Aufrufen , Text schreiben.

Danke Stefan.

Auf der Seite gibts einen Link auf http://doc.byvac.com/index.php5?title=Product_BV4611
Grüßw Uwe

Hallo Uwe
Danke für den Link , aber die Seite kenne ich schon .
Die Links habe ich schon alle ausprobiert, aber ohne Erfolg.Es gehen nur Demonstration und Arduino Library .
Habe die Arduino Library in das Arduino Software reinkopiert. Die Library geht im Arduino aber bei der Demonstration
bekomme ich Fehlermeldungen.

Danke Stefan

Alternativ könnte das Display auch direkt an den Arduino angeschlossen werden. Für den KS0108 controller gibt es einige funktionsfähige Libs (openGLCD, U8glib). Allerdings werden dann recht viele Leitungen benötigt.

Oliver

ba1083:
Hallo Uwe
Danke für den Link , aber die Seite kenne ich schon .
Die Links habe ich schon alle ausprobiert, aber ohne Erfolg.Es gehen nur Demonstration und Arduino Library .
Habe die Arduino Library in das Arduino Software reinkopiert. Die Library geht im Arduino aber bei der Demonstration
bekomme ich Fehlermeldungen.

Danke Stefan

Welche Fehlermmeldungen? bitter uns schicken.

Hallo Uwe
Die Fehlermeldung habe ich jetzt mit der neuen Libraries wegbekommen. (DANKE)
Aber da sind keine Beispiele dabei bzw wenn ich die Arduino Libraries BV4611 Runterlade bekomme ich die Arduino Libraries BV4613 zum Runterladen Angeboten. Da habe ich jetzt rausgefunden das die Arduino Libraries BV4611 und die Arduino Libraries BV4613 laut ByVAC gleich sind, stimmt das. Jetzt habe ich noch Rausgefunden das die Neuen GLCDs mit der Adresse angesprochen werden müßen, ist das korrekt.
Diesen Code habe ich noch im Netz gefunden, der bringt aber nur Fehlermeldungen.

#include <BV4613.h> 
#include <Geometria.h> 
#include <twi.h>       
#include <Wire.h>    

void setup() { 
Wire.begin();  
Wire.beginTransmission(0x68); 

Wire.send(27); // esc
Wire.send(91); // [
Wire.send(34); // 4
Wire.send(59); // ;
Wire.send(32); // 2
Wire.send(37); // 7
Wire.send(72); // H
Wire.endTransmission(); 
}

void loop() {
}

Bin für Lösungen Dankbar

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