Pages: [1] 2   Go Down
Author Topic: lcd.createChar problem  (Read 1228 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 49
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Moin moin,

ich habe mir view Char gebaut:
Code:
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:
Code:
  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
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21269
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hast Du die Hintergrundbeleuchtung an?
Grüße Uwe
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 49
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Uwe,

ja die ist an.

Gruß Fini
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21269
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Schalte sie aus dann funktionierts.
Grüße Uwe
Logged

Gurkengraeber
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Uwe !

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

MfG
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21269
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...
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
« Last Edit: May 03, 2011, 06:17:18 am by uwefed » Logged

Germany
Offline Offline
Edison Member
*
Karma: 46
Posts: 2310
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Gurkengraeber
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

von Uwe:

Quote
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
« Last Edit: May 03, 2011, 06:02:48 am by Gurkengraeber » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21269
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Quote from: 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.

Quote from: 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
« Last Edit: May 03, 2011, 06:15:50 am by uwefed » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21269
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Gurkengraeber
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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".
Quote
EXTREM STROMPAREND: LED-STROM AB 15mA (max. 100mA)
  Zitat von Electronic Assembly

http://www.lcd-module.de/fileadmin/pdf/doma/blueline-w.pdf

MfG
« Last Edit: May 03, 2011, 06:34:35 am by Gurkengraeber » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21269
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Gurkengraeber
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Moment
« Last Edit: May 03, 2011, 08:18:33 am by Gurkengraeber » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 49
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

ich kann euren Postings nur bedingt folgen   smiley-red

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
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 49
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

ich hab es jetzt mit folgendem Sketch zum Laufen bekommen:
Code:
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  smiley-lol

Gruß Fini
Logged

Pages: [1] 2   Go Up
Jump to: