PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 20x4 Display mit I2C Controller: Setup und Hello World



Sisor
05.02.2014, 23:12
Heute lag ein neues Display für mich in der Post. :)

Da aber im Netz leider nur schlechte Dokumentation für mein neues 20x4 Display zu finden war,
habe ich mich entschlossen ein kleines 'HelloWorld' Demo zu schreiben:

Hardware:
Arduino Uno
20x4 Zeichen Display QC2004A mit Sainsmart LCD2004 Controller
4 Verbindungskabel

Anschlussmethode:
I2C (Verkabelung ist den angehängten Bildern zu entnehmen)

Software:
Arduino IDE
LiquidCrystal-Library (https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads)

Als erstes den Ordner 'LiquidCrystal' aus der .zip-Datei in den Ordner Dokumente/Arduino/libraries ziehen.
Jetzt sollte die LiquidCrystal-Library bekannt sein.

Ein Wort zum I2C-Port:

Mein Display-Controller hat den Port 0x27.
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);

Sollte dieser Wert nicht bekannt sein, kann dieser I2C-Scanner (http://playground.arduino.cc/Main/I2cScanner) zum Herausfinden des Ports benutzt werden.


Code:


#include <Wire.h>
#include <LiquidCrystal_I2C.h> //https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

// Belegung für 16x4 LCD-Modul QC2204A
// mit Sainsmart LCD2004 I2C-Controller
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);

void setup() {
lcd.begin(20,4);
lcd.setCursor(4,1);
lcd.print("Hallo Welt!");
delay(5000);
}

void loop() {
//Display löschen und Cursor nach oben links
lcd.clear();
lcd.home();

//---Zeilen ansprechen
lcd.setCursor(4,0);
lcd.print("Zeile 1");
lcd.setCursor(5,1);
lcd.print("Zeile 2");
lcd.setCursor(6,2);
lcd.print("Zeile 3");
lcd.setCursor(7,3);
lcd.print("Zeile 4");
delay(2000);

//---Display-Inhalt nach rechts scrollen
lcd.scrollDisplayRight();
//lcd.scrollDisplayLeft()
delay(2000);

//---Cursor ein
lcd.clear();
lcd.home();
lcd.print("Cursor blinkt:");
lcd.setCursor(0,1);
lcd.blink();
delay(2000);

//---alternativer Cursor
lcd.clear();
lcd.home();
lcd.print("Cursor Unterstrich:");
lcd.setCursor(0,1);
lcd.cursor();
delay(2000);

//---Zurücksetzen
lcd.clear();
lcd.home();
lcd.noCursor();
lcd.noBlink();

//---Alle Zeichen anzeigen
lcd.print("Alle Zeichen...");
delay (2000);
lcd.clear();
lcd.setCursor(2,0);
int i=1;
for (char c = -128; c < 127; c++,i++){
lcd.print(c);
if (!(i%16)) lcd.setCursor(2,(i/16)%4);
if (!(i%64)) delay(3000);
}
delay(3000);

//---Display aus
lcd.clear();
lcd.home();
lcd.print("Display aus...");
delay(2000);
lcd.off();
delay(2000);
//---Display wieder an
lcd.on();
//lcd.noBacklight();
//lcd.backlight();
}

Das Ergebnis ist eine leicht zu steuernde visuelle Anbindung an den Bediener bei nur 4 Pins belegten Pins. Klasse!:p

27436274352743427437

-----------------------------Aktualisiert:-----------------------------



Wie baue ich mir eigene Zeichen (Custom Chars)?

Oben genanntes LCD hat 8 Speicherplätze für selbstdefinierbare Zeichen.
Pro Zeichen werden 5x8 Pixel benutzt.
Im folgenden wird eine Glocke als Zahlen-Code berechnet.
Anmerkung: Die Hex-Code-Umrechnung braucht man eigentlich nicht.


In eine Tabelle gepackt (1 bedeutet sichtbar, 0 unsichtbar) kann man mit ein bischen Phantasie die Glocke erkennen:



16
08
04
02
01
Bitwert


0
0
1
0
0
16*0 + 8*0 + 4*1 + 2*0 + 1*0 = 4 = 0x04


0
1
1
1
0
16*0 + 8*1 + 4*1 + 2*1 + 1*0 = 14 = 0x0E


0
1
1
1
0
16*0 + 8*1 + 4*1 + 2*1 + 1*0 = 14 = 0x0E


0
1
1
1
0
16*0 + 8*1 + 4*1 + 2*1 + 1*0 = 14 = 0x0E


1
1
1
1
1
16*1 + 8*1 + 4*1 + 2*1 + 1*1 = 31 = 0x1F


0
0
0
0
0
16*0 + 8*0 + 4*0 + 2*0 + 1*0 = 0 = 0x00


0
0
1
0
0
16*0 + 8*0 + 4*1 + 2*0 + 1*0 = 4 = 0x04


0
0
0
0
0
16*0 + 8*0 + 4*0 + 2*0 + 1*0 = 0 = 0x00



Nun fügen wir die Glocke (und 7 andere Zeichen) im Code als Array ein:

uint8_t bell[8] = {0x04,0x0E,0x0E,0x0E,0x1F,0x00,0x04,0x00};
oder alternativ:
uint8_t bell[8] = {4, 14, 14, 14, 31, 0, 4, 0};

Dann übergeben wir das Array an das Display (Speicherplatz 0):

lcd.createChar(0, bell);

Und lassen es ausgeben:

lcd.write(byte(0));



#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Belegung für 16x4 LCD-Modul QC2204A
// mit Sainsmart LCD2004 I2C-Controller
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);

void setup() {
lcd.begin(20,4);
createCustomChars();

lcd.setCursor(2,1);
lcd.print("Eigene Zeichen!");
delay(5000);lcd.clear();

lcd.print("Codes 0x00-0x07");
lcd.setCursor(0, 2);
for (int i=0; i<8; i++)
{
lcd.write(byte(i));
}
}
void loop() {}

void createCustomChars()
{
uint8_t bell[8] = {0x04,0x0E,0x0E,0x0E,0x1F,0x00,0x04,0x00};
uint8_t note[8] = {0x02,0x03,0x02,0x0E,0x1E,0x0C,0x00,0x00};
uint8_t clock[8] = {0x00,0x0E,0x15,0x17,0x11,0x0E,0x00,0x00};
uint8_t heart[8] = {0x00,0x0A,0x1F,0x1F,0x0E,0x04,0x00,0x00};
uint8_t duck[8] = {0x00,0x0C,0x1D,0x0F,0x0F,0x06,0x00,0x00};
uint8_t check[8] = {0x00,0x01,0x03,0x16,0x1C,0x08,0x00,0x00};
uint8_t cross[8] = {0x00,0x1B,0x0E,0x04,0x0E,0x1B,0x00,0x00};
uint8_t retarrow[8] = {0x01,0x01,0x05,0x09,0x1F,0x08,0x04,0x00};

lcd.createChar(0, bell);
lcd.createChar(1, note);
lcd.createChar(2, clock);
lcd.createChar(3, heart);
lcd.createChar(4, duck);
lcd.createChar(5, check);
lcd.createChar(6, cross);
lcd.createChar(7, retarrow);
}

cdk
16.02.2014, 12:59
Hey dankesehr!

Das sieht mir ganz nach dem Teil aus was ich gestern Abend über Amazon bestellt habe und eigentlich erwarte daß das zu einem Zittersieg wird bis ich es zum laufen bekomme.

Es ist da ziemlich spärlich beschrieben ("SainSmart IIC LCD2004-character display module") und weitere Doku wird wohl auch nicht mitgelifert, nur in den User-Bewertungen hat sich freundlicherweise einer geopfert und technische Hinweise gegeben - der verwendet aber externe Libraries.

Jetzt bin ich wirklich gespannt wenn das Teil kommt. Wenn das nun so einfach wie von Dir beschrieben mit den integrierten Bibliotheken und Deinem Beispielprogramm funktioniert wäre das ja mehr Glück als ich verdient habe... :cool:

redround
16.02.2014, 13:51
als Digispark-Fan verwende ich immer diese Dinger: http://shop.cboden.de/Displays/20x4-I2C-LCD-Erweiterungssatz.html. Dort gibt es aber auch auch Displays und I2C Backplane getrennt, so dass man auf weniger als 15 Euro für ein 2004 I2C Display kommt ... und das auch noch von einem deutschen Versender. Zudem haben die Backplanes den Vorteil, dass sich die I2C Adresse einfach per Schalter einstellen lässt und nicht mit Löt-Brücken "hingebrutzelt" werden müssen. Sehr sinnvoll sind in meinen Augen auch die beiden I2C Stiftleisten ... so kann man einfach das nächste I2C Device "verketten".

Ein total einfaches Beispielprogramm dafür findet sich auch auf: http://cboden.de/mikro-controller/digispark/lcd-anzeige .

Das mit der fehlenden Doku ist aber wohl überall ein Problem :-(

PS: I2C belegt eigentlich nur 2 Pins (SDA und SCL) da man +5V und GND fairer Weise eigentlich nicht als Pin rechnen darf ;-)

cdk
19.02.2014, 02:55
Tja schade, soo einfach will's bei mir nun leider nicht klappen. Die LiquidCrystal_I2C.h gibt's nicht in meiner jungfräulichen Arduino-Umgebung und mit irgendeiner gleichnamigen, die ich im Netz gefunden habe scheitert's bereits am Compiler-Durchlauf.

Aber genug für heute, morgen ist auch noch ein Tag...

@redround
Stimmt, solche Daisychain Stecker für'n I2C sind/wären wirklich eine feine Sache. Falls man wenigstens mal eine I2C-Komponente zum laufen kriegt.
Ein Löt-Brücken-hingebrutzel wird's bei diesem Display aber auch nicht geben - da sind keine... :D

Sisor
19.02.2014, 07:54
Stimmt. Ich war der festen Überzeugung, die LiquidCrystal-Library wäre im Standard-Librarypack.

Hier downloaden:
LiquidCrystal-Library (https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads)

Dann den Ordner 'LiquidCrystal' aus der .zip-Datei in den Ordner Dokumente/Arduino/libraries ziehen.
Erst dann Arduino-IDE öffnen.

Nun sollte die LiquidCrystal-Library bekannt sein.

redround
19.02.2014, 10:30
Ein Löt-Brücken-hingebrutzel wird's bei diesem Display aber auch nicht geben - da sind keine... :D

das ist natürlich blöd, da das Display dann über eine feste I2C Adresse verfügt, die Du kennen musst. 99,9% aller I2C Backplanes verwenden einen PCF8574 als I2C Portexpander. Der hat 3 Adress-Pins (zufällig Pin 1 bis 3). Da musst Du mal messen, welche davon mit GND und welche mit +5V verbunden sind. Daraus ergibt sich dann die Adresse (alle 3 GND = 0x20; alle 3 +5V = 0x27). Alternativ kannst Du auch einfach die Adressen 0x20 bis 0x27 per Schleife durchlaufen und jeweils versuchen einen anderen Text auszugeben. Bei einer der Adressen sollte das Display dann was anzeigen.

Sisor
19.02.2014, 15:55
I2Cscanner (http://playground.arduino.cc/Main/I2cScanner)

cdk
20.02.2014, 00:01
Super! Vielen Dank Euch beiden - jetzt funktioniert alles, einschl. I2C-Scanner und Custom Chars!

Mußte lediglich die Adresse für mein LCD von 0x27 auf 0x3f ändern, habe nämlich ein Display mit dem PCF8574A erhalten. Das Problem wird aber im WWW öfters erwähnt und selbst ohne dieses Wissen wär's ja nun dank der Scanroutine kein Problem gewesen. Selbst bei Sainsmart scheint man sich nicht sicher zu sein welche Version man denn nun verkauft - habe dort Beispielcode mit der einen wie auch mit der anderen Adresse gefunden... :D

Sollte man die belegte Adresse wirklich mal ändern müssen wird's aber haarig. Leiterbahn durchtrennen is nich - bei dem Layout würde man damit auch den Rest der Schaltung mit abhängen. Da müßte man dann schon einen der SMD-Pins anlupfen und freischwebend "umpolen".

Ist aber derzeit nicht mein Problem und mit dem Input aus diesem Thread kann ich mich jetzt mal daran machen die Ansteuerung selbst in den Griff zu bekommen. Dankesehr!

oderlachs
20.02.2014, 10:09
Hallo ,
grossen Dank für die ausführlichen Berichte hier, ich habe auch einige solcher I2C -LCD Adapter von Saintsmart auf Lager, nur noch nicht im Einsatz gehabt.
Da kann ich hier Berichtetes gleich bei der Verwendung dann mit einbringen. Sonst stehe ich auch wie der "Ochs vorm Neuen Tor"

Gerhard

cdk
28.02.2014, 15:24
So, habe derweil ein bißchen mit dem Teil rumgespielt. Wen's interessiert - anbei Fotos vom verfügbaren Zeichensatz:
27636

Die erste Zeile "gilt nicht" - das sind selbst definierte Zeichen für meine Bargraphanzeige, die ich mit einem Alkoholsensor verwende. Ansonsten ist jenseits von 7bit-ASCII leider nicht viel brauchbares vorhanden - die letzten Zeilen bieten aber immerhin noch deutsche Umlaute und griechische Buchstaben an...

Ansonsten ist mir aufgefallen daß das Display offensichtlich mal ein 2x80 Display war. Leider wird die 1. Zeile in die 3. (!) umgebrochen und die 2. in die 4., sodaß die Scroll-Befehle nur sehr bedingt brauchbar sind. Plöt.

Aber dennoch muß ich sagen daß die blind investierten 20E für das Teil gut angelegt waren. Mit der Unterstüzung hier konnte ich es blitzschnell und problemlos verwenden und es bietet für eine zeichenbasierte Anzeige eine optimal große Anzeigefläche...

Ledblu
02.09.2016, 18:00
Heute lag ein neues Display für mich in der Post. :)

Da aber im Netz leider nur schlechte Dokumentation für mein neues 20x4 Display zu finden war,
habe ich mich entschlossen ein kleines 'HelloWorld' Demo zu schreiben:

Hardware:
Arduino Uno
20x4 Zeichen Display QC2004A mit Sainsmart LCD2004 Controller
4 Verbindungskabel

Anschlussmethode:
I2C (Verkabelung ist den angehängten Bildern zu entnehmen)

Software:
Arduino IDE
LiquidCrystal-Library (https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads)

Als erstes den Ordner 'LiquidCrystal' aus der .zip-Datei in den Ordner Dokumente/Arduino/libraries ziehen.
Jetzt sollte die LiquidCrystal-Library bekannt sein.

Ein Wort zum I2C-Port:

Mein Display-Controller hat den Port 0x27.
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);

Sollte dieser Wert nicht bekannt sein, kann dieser I2C-Scanner (http://playground.arduino.cc/Main/I2cScanner) zum Herausfinden des Ports benutzt werden.


Code:


#include <Wire.h>
#include <LiquidCrystal_I2C.h> //https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads

// Belegung für 16x4 LCD-Modul QC2204A
// mit Sainsmart LCD2004 I2C-Controller
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);

void setup() {
lcd.begin(20,4);
lcd.setCursor(4,1);
lcd.print("Hallo Welt!");
delay(5000);
}

void loop() {
//Display löschen und Cursor nach oben links
lcd.clear();
lcd.home();

//---Zeilen ansprechen
lcd.setCursor(4,0);
lcd.print("Zeile 1");
lcd.setCursor(5,1);
lcd.print("Zeile 2");
lcd.setCursor(6,2);
lcd.print("Zeile 3");
lcd.setCursor(7,3);
lcd.print("Zeile 4");
delay(2000);

//---Display-Inhalt nach rechts scrollen
lcd.scrollDisplayRight();
//lcd.scrollDisplayLeft()
delay(2000);

//---Cursor ein
lcd.clear();
lcd.home();
lcd.print("Cursor blinkt:");
lcd.setCursor(0,1);
lcd.blink();
delay(2000);

//---alternativer Cursor
lcd.clear();
lcd.home();
lcd.print("Cursor Unterstrich:");
lcd.setCursor(0,1);
lcd.cursor();
delay(2000);

//---Zurücksetzen
lcd.clear();
lcd.home();
lcd.noCursor();
lcd.noBlink();

//---Alle Zeichen anzeigen
lcd.print("Alle Zeichen...");
delay (2000);
lcd.clear();
lcd.setCursor(2,0);
int i=1;
for (char c = -128; c < 127; c++,i++){
lcd.print(c);
if (!(i%16)) lcd.setCursor(2,(i/16)%4);
if (!(i%64)) delay(3000);
}
delay(3000);

//---Display aus
lcd.clear();
lcd.home();
lcd.print("Display aus...");
delay(2000);
lcd.off();
delay(2000);
//---Display wieder an
lcd.on();
//lcd.noBacklight();
//lcd.backlight();
}

Das Ergebnis ist eine leicht zu steuernde visuelle Anbindung an den Bediener bei nur 4 Pins belegten Pins. Klasse!:p

27436274352743427437

-----------------------------Aktualisiert:-----------------------------



Wie baue ich mir eigene Zeichen (Custom Chars)?

Oben genanntes LCD hat 8 Speicherplätze für selbstdefinierbare Zeichen.
Pro Zeichen werden 5x8 Pixel benutzt.
Im folgenden wird eine Glocke als Zahlen-Code berechnet.
Anmerkung: Die Hex-Code-Umrechnung braucht man eigentlich nicht.


In eine Tabelle gepackt (1 bedeutet sichtbar, 0 unsichtbar) kann man mit ein bischen Phantasie die Glocke erkennen:



16
08
04
02
01
Bitwert


0
0
1
0
0
16*0 + 8*0 + 4*1 + 2*0 + 1*0 = 4 = 0x04


0
1
1
1
0
16*0 + 8*1 + 4*1 + 2*1 + 1*0 = 14 = 0x0E


0
1
1
1
0
16*0 + 8*1 + 4*1 + 2*1 + 1*0 = 14 = 0x0E


0
1
1
1
0
16*0 + 8*1 + 4*1 + 2*1 + 1*0 = 14 = 0x0E


1
1
1
1
1
16*1 + 8*1 + 4*1 + 2*1 + 1*1 = 31 = 0x1F


0
0
0
0
0
16*0 + 8*0 + 4*0 + 2*0 + 1*0 = 0 = 0x00


0
0
1
0
0
16*0 + 8*0 + 4*1 + 2*0 + 1*0 = 4 = 0x04


0
0
0
0
0
16*0 + 8*0 + 4*0 + 2*0 + 1*0 = 0 = 0x00



Nun fügen wir die Glocke (und 7 andere Zeichen) im Code als Array ein:

uint8_t bell[8] = {0x04,0x0E,0x0E,0x0E,0x1F,0x00,0x04,0x00};
oder alternativ:
uint8_t bell[8] = {4, 14, 14, 14, 31, 0, 4, 0};

Dann übergeben wir das Array an das Display (Speicherplatz 0):

lcd.createChar(0, bell);

Und lassen es ausgeben:

lcd.write(byte(0));



#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Belegung für 16x4 LCD-Modul QC2204A
// mit Sainsmart LCD2004 I2C-Controller
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);

void setup() {
lcd.begin(20,4);
createCustomChars();

lcd.setCursor(2,1);
lcd.print("Eigene Zeichen!");
delay(5000);lcd.clear();

lcd.print("Codes 0x00-0x07");
lcd.setCursor(0, 2);
for (int i=0; i<8; i++)
{
lcd.write(byte(i));
}
}
void loop() {}

void createCustomChars()
{
uint8_t bell[8] = {0x04,0x0E,0x0E,0x0E,0x1F,0x00,0x04,0x00};
uint8_t note[8] = {0x02,0x03,0x02,0x0E,0x1E,0x0C,0x00,0x00};
uint8_t clock[8] = {0x00,0x0E,0x15,0x17,0x11,0x0E,0x00,0x00};
uint8_t heart[8] = {0x00,0x0A,0x1F,0x1F,0x0E,0x04,0x00,0x00};
uint8_t duck[8] = {0x00,0x0C,0x1D,0x0F,0x0F,0x06,0x00,0x00};
uint8_t check[8] = {0x00,0x01,0x03,0x16,0x1C,0x08,0x00,0x00};
uint8_t cross[8] = {0x00,0x1B,0x0E,0x04,0x0E,0x1B,0x00,0x00};
uint8_t retarrow[8] = {0x01,0x01,0x05,0x09,0x1F,0x08,0x04,0x00};

lcd.createChar(0, bell);
lcd.createChar(1, note);
lcd.createChar(2, clock);
lcd.createChar(3, heart);
lcd.createChar(4, duck);
lcd.createChar(5, check);
lcd.createChar(6, cross);
lcd.createChar(7, retarrow);
}




Guten Abend,
tolle sache habe grade bei dir gesehen, mir ict auf gefallen das du dei Display mit Plus und minus versorgt hast aber der SDA ist auf 4 und SCL auf 5
du dagegen hast die 2 leitungen oben angeschlosse ist das so richtig? ich bin neu darum vielleicht die Dumme Frage.
danke und Gruß.
ledblu

Sisor
02.09.2016, 20:39
Diese Pins sind doppelt rausgeführt. Siehe hier (https://ixquick-proxy.com/do/spg/show_picture.pl?l=deutsch&rais=1&oiu=http%3A%2F%2Fi.stack.imgur.com%2FdVkQU.jpg&sp=7c0b7fd3b8c434aad64ad6ad6cf0a8b1).

Ledblu
03.09.2016, 12:51
Hi danke für der Hinweis sehr nett von dir und danke für das tolles Bild.

ich hätte eine andere frage ich habe der selbe Display aber bei mir passiert nichts ob ich deine Programm lade oder sonst eines Programm
könntest du dir vorstellen warum? oder hast du ein kleines Programm der bei dir läuft zum test ganz klein nur das notwendiges ,
würde dir sehr dankbar sein, schön Tag noch.
Gruß.
ledblu

Sisor
03.09.2016, 16:27
Da ich deinen Kenntnisstand nicht kenne, ist es schwer das Problem einzuordnen.
Hast du schon mit Beispielprogrammen aus der Arduino-IDE experimentiert? (Datei->Beispiele)
Oder ist das dein erster Kontakt mit einem Arduino?

HaWe
03.09.2016, 16:38
hi,
"das selbe" hast du sicher nicht ;) - vielleicht ein bau-gleiches, aber vielleicht sieht es auch nur ähnlich aus, ist aber doch ein anderes.
Welcher i2c Controller Chip ist denn daruf? Es gibt diese 20x4 LCDs mit sehr vielen verschiedenen Controller Chips, die alle anders angesteuert werden müssen (PCF8574 mit HD44780, oder MCP23017, ...)
welcher IC ist denn bei dir drauf?

ps,
es gibt auch verschiedene LCD2004 - i2c Libs von verschiedenen Autoren, hier habe ich z.B. zwei verschiedenen, die je nach LCD mal mit dem einen, mal mit dem anderen LCD besser funktionieren:
http://www.mindstormsforum.de/viewtopic.php?f=78&t=8491#p66177

Ledblu
03.09.2016, 17:02
Hi,
ja ich habe schon Berührung mit Arduino und mit der 16x2 klappt, neuerdings habe so ein Fehlermeldung kann ich gar nicht gebrauchen ich weis nicht
warum und wo er das kommt bin irgendwie gegen gekommen oder was? das verstehe ich nicht, vielleicht kannst du mie Helfen?

Danke die sehr.
Gruß

java.io.IOException: Zugriff verweigert
at java.io.WinNTFileSystem.createFileExclusively(Nati ve Method)
at java.io.File.createTempFile(File.java:2024)
at processing.app.BaseNoGui.saveFile(BaseNoGui.java:1 096)
at processing.app.SketchCode.save(SketchCode.java:222 )
at processing.app.SketchData.save(SketchData.java:165 )
at processing.app.Sketch.save(Sketch.java:595)
at processing.app.Editor.handleSave2(Editor.java:2271 )
at processing.app.Editor.handleSave(Editor.java:2251)
at processing.app.Editor.handleExport(Editor.java:238 3)

- - - Aktualisiert - - -

Hi, na ja du weis was ich meine sicher ist nicht das was sisor hat aber der ist Blau eine hat eine Zusatz Platine damit die ganze Kabelei mir sparen aber irgend wie geht nicht
hinter der Display steht 2004A bei der andere steht QC2004A und der eine ist solo der andere hat diese Zusatz Platine SDA/SCL diese Bezeichnung habe irgendwo gelesen aber sicher bin ich mich nicht.

hast di Vielleicht andere tipps? danke für die Mühe nett von dir.

Gruß

HaWe
03.09.2016, 17:07
mit den Fehlermeldungen kenne ich mich auch nicht aus, wenn ich sie selber hätte und nicht wegbekäme, würde ich die IDE deinstallieren und neu installieren.
Was das i2c LCD angeht: der Treiber-IC ist ganz entscheidend, ohne dass man den nicht kennt, kann man es nicht mit Sicherheit richtig ansteuern.
Frag den Händler im Zweifel, der muss es dir sagen können, oder es gibt ein Datenblatt, wo es drauf steht (muss dir auch der Händler liefern können).
Wenn du nicht weiter kommst, tritt vom Kaufvertrag zurück, retourniere es, lass dir das Geld zurücküberweisen.

Ceos
03.09.2016, 17:14
java.io.IOException: Zugriff verweigert
klingt nach fehlenden Zugriffsrechten, eventuell mal als admin starten

Ledblu
03.09.2016, 17:24
was als Admin starten?
ich habe durch ein Zufall Windows 1o drauf und so einen Start kenne ich nicht kannst du helfen?

skyifx
04.09.2016, 18:18
Hallo

Wollte mich hier mal ein klein bisschen einmischen... durch diese Seite konnte ich mein Display auch problemlos in Betrieb nehmen. \\:D/

Als Hinweis sei noch gesagt (falls hier nicht schon geschehen) das man auch den Kontrast-Poti auf der Platine hinten nicht außer Acht lassen sollte, also wenn nach dem Aufspielen des Codes auf den Arduino nichts im Display zu sehen ist, kann es auch an den Kontrasteinstellungen liegen (war zumindest bei mir so).

Da man nicht nur nehmen, sondern auch geben sollte, habe ich auf Basis des Scripts auf dieser Seite (https://github.com/tinkering-arduino/bitmap-font-generator) das Ganze mal für das in diesem Thread besprochene Display umgewurschtelt, da ich auch auf die Schnelle nix passendes im Netz gefunden habe. Also wer sich 'ne Glocke oder ähnliches basteln will... http://help.skyifx.de/dot_matrix.php :D

HaWe
05.09.2016, 11:59
danke für deinen Link zum html-Script. Ich hatte bisher noch nichts mit html-Scripten zu tun, was muss man machen, um den Zeicheneditor zum Laufen zu kriegen?

Sisor
05.09.2016, 15:53
danke für deinen Link zum html-Script. Ich hatte bisher noch nichts mit html-Scripten zu tun, was muss man machen, um den Zeicheneditor zum Laufen zu kriegen?Einfach diese Seite (https://raw.githubusercontent.com/tinkering-arduino/bitmap-font-generator/master/font_generator.html) im Browser öffnen, dann Seite speichern (Im Browser Datei->Speichern unter) und dann die gespeicherte html-Datei öffnen.

HaWe
05.09.2016, 16:16
aahh, schön, vielen Dank!

Probier ich gleich für mein Raspi OLED aus, ob es damit auch funktioniert...

edit: schade, klappt doch nicht, trotzdem ein schönes Tool!