lcd.createChar problem

Moin moin,

ich habe mir view Char gebaut:

byte voll[8] = {
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte drei[8] = {
  B00000,
  B00000,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte zwei[8] = {
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111,
  B11111
};
byte eins[8] = {
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111
};
byte leer[8] = {
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};

und im Setup erstellt:

  lcd.createChar(0, voll);
  lcd.createChar(1, drei);
  lcd.createChar(2, zwei);
  lcd.createChar(3, eins);
  lcd.createChar(4, leer);

Wenn ich jetzt das Script auf den Arduino lade ist alles OK. Betreibe ich den Arduino per 9V Block werden die Chars nicht ordentlich dargestellt.

Wenn ich statt lcd.write(0) lcd.print("a") mache wird alles Super dargestellt.

Wie so gehen die erstellten Chars nicht im Batteriebetrieb?

Gruß Fini

Hast Du die Hintergrundbeleuchtung an?
Grüße Uwe

Hi Uwe,

ja die ist an.

Gruß Fini

Schalte sie aus dann funktionierts.
Grüße Uwe

Hallo Uwe !

Woran sollte das denn liegen ?
Liefert die Batterie nicht genügend Strom ?

MfG

Gurkengraeber:
...
Liefert die Batterie nicht genügend Strom ?
...

Genau; Eine 9V Batterie kann nicht soviel Strom liefern (ca 300mA) Edit: (ca 300mA sind zuviel) /Edit darum bricht die Spannung zusammen (kannst du nachmessen, die 5V werden weniger sein) und darum funktioniert (zufällig) ein Teil des Kontrollers des Displays nicht.
Grüße Uwe

Ob die 5V tatsächlich einbrechen ist die Frage, schließlich haben wir es ja mit einem 5V-Festspannungsregler zu tun. Der gibt einfach nichts raus, wenn die Eingangsspannung zu gering ist, also die Batteriespannung einbricht. Besser wäre eine Messung der Batteriespannung.
Woher hast du die Angabe, dass maximal 300 mA entnehmbar sind? Ich habe bisher nur wenige Informationen zum Kurzschlussstrom gefunden. Vielelicht aus dem Innenwiderstand des 9V-Blocks hergeleitet? Der besteht ja auch nur aus 6 einfachen Zellen, die in Reihe angeordnet sind.
Ob die Probleme auf die Batterie zurückzuführen sind (wovon ich ja auch ausgehe), könnte am schnellsten mit einem passenden Steckernetzteil geprüft werden. Diese stellen gewöhnlich eine deutlich höhere Stromstärke zur Verfügung.

von Uwe:

Eine 9V Batterie kann nicht soviel Strom liefern (ca 300mA)

Meine Hintergrund-Beleuchtung futtert 40 mA. ( Blau/Weiß, 2x16 | 160 mA, 4x20 )

Ich schätze, das ist eher ein 9 Volt-Akku. Wäre gut wenn Fini noch mal posten würde.

MfG

sth77:
Ob die 5V tatsächlich einbrechen ist die Frage, schließlich haben wir es ja mit einem 5V-Festspannungsregler zu tun. Der gibt einfach nichts raus, wenn die Eingangsspannung zu gering ist, also die Batteriespannung einbricht. Besser wäre eine Messung der Batteriespannung.

Wenn Die Eingangsspannung eines Festspannungsreglers vom Typ 78xx unter dem Minimalwert (Ausgangsspannung plus Dropout-Spannung) fällt dann schaltet er nicht ab sondern die Augangsspannung wird kleiner (ca Vin - Vdropout).
Eine Messung der Bateriespannung, wie Du vorschlägst, beseitigt Zweifel.

sth77:
Woher hast du die Angabe, dass maximal 300 mA entnehmbar sind? Ich habe bisher nur wenige Informationen zum Kurzschlussstrom gefunden. Vielelicht aus dem Innenwiderstand des 9V-Blocks hergeleitet? Der besteht ja auch nur aus 6 einfachen Zellen, die in Reihe angeordnet sind.

Da haben wir uns falsch verstanden, Ich wollte sagen daß 300mA zuviel für einen 9V block ist. 300mA schätzte ich den Stromverbrauch des Displays mit Hintergrundbeleuchtung.

sth77:
Ob die Probleme auf die Batterie zurückzuführen sind (wovon ich ja auch ausgehe), könnte am schnellsten mit einem passenden Steckernetzteil geprüft werden. Diese stellen gewöhnlich eine deutlich höhere Stromstärke zur Verfügung.

Das Problem ist daß im Batteribetrieb selbst definierten Zeichen nicht funktionieren. Mit USB-Stromversorgung glaube ich verstanden zu haben funktioniert es.

Grüße Uwe

Gurkengraeber:
Meine Hintergrund-Beleuchtung futtert 40 mA. ( Blau/Weiß, 2x16 | 160 mA, 4x20 )
Ich schätze, das ist eher ein 9 Volt-Akku. Wäre gut wenn Fini noch mal posten würde.

40 mA scheinen mir wenig, weil aus verschiedenen Datenblättern ich ca 300mA in Erinnerung habe, aber wie gesagt sind das Spekulationen in Ermangelung von Daten.
Die genauen Werte und das Modell des Displays kann Fini sagen.
Grüße Uwe

40 mA scheinen mir wenig, weil aus verschiedenen Datenblättern ich ca 300mA in Erinnerung habe, aber wie gesagt sind das Spekulationen in Ermangelung von Daten.

Ja, 300 mA sind dann wohl der Worst-Case. I.A. stellt man das Backlight doch etwas "leiser".

EXTREM STROMPAREND: LED-STROM AB 15mA (max. 100mA)

Zitat von Electronic Assembly

MfG

Hallo Gurkengraeber
Es hat jetzt wenig Sinn zu schreiben, daß Display XY 15mA für die Hintergrundbeleuchubg braucht.
Das was ausschlaggebend ist, ist welches Display Fini hat und was dieses Display für die Hintergrundbeleuchtung braucht.
Grüße Uwe

Moment

Hi,

ich kann euren Postings nur bedingt folgen :blush:

Ich hab ein 16x2 Blau/Weiß (EL-1602A) es zieht 20mA.
Ich habe auch noch ein TC1602A-09T das zieht 10mA.

Leider werden die erstellten Chars auch hier nicht richtig dargestellt.

Mir ist eben auf gefallen das wenn ich den LED + Pin Abziehe und einen RESET mache das dann die Zeichen dargestellt werden.

Gruß Fini

Hi,

ich hab es jetzt mit folgendem Sketch zum Laufen bekommen:

byte drei[8] = {
  B00000,
  B00000,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte zwei[8] = {
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111,
  B11111,
};
byte eins[8] = {
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
};
byte leer[8] = {
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
};

void setup(){
  analogReference(INTERNAL);
  pinMode(ledPin, OUTPUT);
  analogWrite(ledPin, 255);
  // -- initializing the LCD
  //lcd.createChar(0, voll);
  lcd.begin(16, 2);
  lcd.clear();
  lcd.print("Init SpeChar");
  delay(500);
  lcd.setCursor(0,1);
  lcd.print(".");
  lcd.createChar(1, drei);
  delay(100);
  lcd.setCursor(1,1);
  lcd.print(".");
  lcd.createChar(2, zwei);
  delay(100);
  lcd.setCursor(2,1);
  lcd.print(".");
  lcd.createChar(3, eins);
  delay(100);
  lcd.setCursor(3,1);
  lcd.print(".");
  lcd.createChar(4, leer);
  delay(100);
  //analogWrite(ledPin, 255);
  //previousMillis = millis();
  lcd.setCursor(6,1);  
  lcd.print("DONE!");
  delay(2000);
  lcd.clear();
}

Jetzt ich die Hintergrundbeleuchtung an und zeigt mit den Status an.

Nicht schön aber es geht XD

Gruß Fini

Das EL-1602A laut http://www.geniusnet.sk/om3bc/datasheets/el1602a.pdf :
LED forward voltage VF @25°C typ: 4.2 max: 4.6 V
LED forward current IF @25°C typ:120 mA
Bei diesem Display brauchst Du einen Vorwiderstand für dei Hintergrundbeleuchtung.

Das TC1602A-09T laut http://www.tinsharp.com/data/2007/t/www.tinsharp.com/db_pictures/201008/27/1282881692644723.pdf
Supply voltage for Backlight VBL typ:5.0 V
Supply current for Backlight IBL typ 15 mA
Bei diesem Display kannst Du die Hintergrundbeleuchtung direkt an 5V anschließen.

Mir ist eben auf gefallen das wenn ich den LED + Pin Abziehe und einen RESET mache das dann die Zeichen dargestellt werden.

Kann Dir dazu nichts sagen. Kontrolliere die 5V Spannung.

Grüße Uwe

Mir ist eben auf gefallen das wenn ich den LED + Pin Abziehe und einen RESET mache das dann die Zeichen dargestellt werden.

Du meinst das '666' - Zeichen mein Bruder ?
Du sprichst verworren mein Bruder: aus dir spricht Ba'al !

( Bitte wählen Sie 0900-123-123 für einen sexy Exorzismus oder 0900-123-123 für einen Sado-Maso-Exorzismus - Sie haben Glück: Leitung 23 ist frei )

Jetzt ich die Hintergrundbeleuchtung an und zeigt mit den Status an.

( sic )

Kannst du das reproduzieren ?
Hintergrundbeleuchtung aus -> LCD funzt.
Hintergrundbeleuchtung an -> LCD funzt net.

Hast du 'ne Ahnung woher das kommt ?

MfG