INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
I2C-LCD (YwRobot Arduino LCM1602 IIC V1)
23.12.2015, 08:06
Beitrag #1
I2C-LCD (YwRobot Arduino LCM1602 IIC V1)
Guten Morgen zusammen,

Hoffentlich bin ich in diesem Unterforum richtig - leider kann ich nämlich nicht beurteilen, ob mein Problem hardware- oder softwareseitig liegt. Es wäre wunderbar, wenn ihr mir helfen könntet!

Das Ziel:
Als Weihnachtsgeschenk arbeite ich an einem arduinobasierten mp3-Wecker. Dazu möchte ich gern auf einem LCD die Zeit und Menü-Einträge ausgeben.

Die Hardware:
-> Arduino Mega 2560
-> 16x2 LCD mit I2C-Modul YwRobot Arduino LCM1602 IIC V1

Die Software:
Library: https://github.com/fdebrabander/Arduino-...2C-library (dazu gleich mehr!)
Code:
Code:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); //2 Zeilen, 16 Zeichen

void setup() {
  delay(50);
  lcd.begin();
  lcd.backlight();
  lcd.print("Startet...");
  //statische Ausgabe im Setup ist kein Problem!
}
//im Loop gibt es Übertragungsprobleme
void loop() {
  lcd.clear();
  lcd.backlight();
  lcd.home();
  lcd.print("Test");
  delay(500);
}

Das Problem:
Der Code ist ein simpler Beispielcode, das Problem besteht aber auch bei jedem anderen von mir getesteten Code.
-> Ich weiß, dass ich hier eine Library finde, die, laut Angabe der Webseite, exakt zu meiner Hardware passt. Das Problem: mit dieser Library funktioniert mein Display überhaupt nicht (nur Hintergrundbeleuchtung, keine Ausgabe). Daher arbeite ich nach wie vor mit oben genannter (evtl deutlich unsauberer) Library.
-> Die einmalige Ausgabe von Text (im Setup) funktioniert tadellos. Es scheint aber bei häufigeren Schreibvorgängen Übertragungsprobleme zu geben; wenn ich Glück habe, dann kommen meine ersten Ausgaben noch wie gewünscht an, doch spätestens nach wenigen Sekunden laufen vermehrt merkwürdige Zeichen über das Display, teilweise vermischt mit der korrekten Ausgabe.

Meine Lösungsansätze:
-> Zu viele Störungen durch zu lange Kabel? Doch auch Umstieg auf kürzere (10cm) Jumperkabel brachte keine Änderung.
-> Fehlender Pull-Up vor SDA und SCL? Vorhin habe ich gelesen, dass immer Pull-Ups verwendet werden sollen. Daraufhin habe ich, in derzeitiger Ermangelung eines Breadboards, 10k Widerstände in die Kabel eingelötet. Es zeigt sich keine Besserung.
-> Falsche Library? Möglich. Diese hier brachte mir von allen getesteten Librarys den größten Erfolg, aber vielleicht passt sie doch nicht zu 100%? Woran kann ich das erkennen?
-> Display kaputt? Hmm, wie wahrscheinlich ist das? Meistens sitzt der Fehler ja doch vorm Rechner...

So weit zu meinem Problem - falls ich wichtige Angaben vergessen haben sollte, dann reiche ich die natürlich gern nach. Ihr würdet mir aus einer sehr großen Klemme helfen, wenn ihr mir Denkanstöße geben könntet - denn ich bin langsam mit meinem Latein am Ende.

Vielen lieben Dank!

Brokie
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.12.2015, 12:17 (Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2015 12:18 von hotsystems.)
Beitrag #2
RE: I2C-LCD (YwRobot Arduino LCM1602 IIC V1)
(23.12.2015 08:06)Brokie schrieb:  Meine Lösungsansätze:
-> Zu viele Störungen durch zu lange Kabel? Doch auch Umstieg auf kürzere (10cm) Jumperkabel brachte keine Änderung.
-> Fehlender Pull-Up vor SDA und SCL? Vorhin habe ich gelesen, dass immer Pull-Ups verwendet werden sollen. Daraufhin habe ich, in derzeitiger Ermangelung eines Breadboards, 10k Widerstände in die Kabel eingelötet. Es zeigt sich keine Besserung.
-> Falsche Library? Möglich. Diese hier brachte mir von allen getesteten Librarys den größten Erfolg, aber vielleicht passt sie doch nicht zu 100%? Woran kann ich das erkennen?
-> Display kaputt? Hmm, wie wahrscheinlich ist das? Meistens sitzt der Fehler ja doch vorm Rechner...

So weit zu meinem Problem - falls ich wichtige Angaben vergessen haben sollte, dann reiche ich die natürlich gern nach. Ihr würdet mir aus einer sehr großen Klemme helfen, wenn ihr mir Denkanstöße geben könntet - denn ich bin langsam mit meinem Latein am Ende.
Wie hast du die Widerstände eingelötet?
Die gehören zwischen 5 Volt und SDA/SCL, nicht in Reihe, so wie sich das anhört.
Und sollten 4,7 kOhm sein.

Und verwende doch eine Standard Library für die Displays.

https://github.com/adafruit/LiquidCrystal

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.12.2015, 14:43
Beitrag #3
RE: I2C-LCD (YwRobot Arduino LCM1602 IIC V1)
Danke für eure Antworten!

@Lötzinnerhitzer: allgemein steht es um das Projekt nicht so schlecht, wie es jetzt hier klingt - der größte Teil ist bereits erledigt, es gilt nur noch, zwei störrische Bauteile zu besiegen (hab aber trotzdem eben deinen Rat befolgt, und "Ersatzgeschenke" gekauft *g*)

Tja, und nun wird es mysteriös: Um die Frage von Lötzinnerhitzer beantworten zu können, wollte ich den Arduino mit einem neuen Sketch "füttern" und habe dazu die Schaltung nochmal in den Ausgangszustand gebracht, da noch die Widerstände drin waren (darauf komme ich gleich noch mal). Einer Eingebung folgend, habe ich das unveränderte Sketch noch einmal durchlaufen lassen und siehe da: Es lief! Optimistisch geworden habe ich (zum x-ten Mal übrigens) das Sketch getestet, das ich eigentlich verwenden will und was soll ich sagen: Seit 15 Minuten zeigt es störungsfrei die Uhrzeit an! So weit war ich noch nie!!

An dieser Stelle:

@hotsystems: Ich gestehe, die Widerstände habe ich heute frühmorgens verlötet, ohne dass mir auch einmal der Gedanke gekommen wäre, dass es einen Unterschied zwischen Pull-Up- und Vorwiderständen geben könnte *schäm* Da bin ich wohl zu leichtfertig ans Werk gegangen; vielen Dank für den Hinweis!
An der Stelle die Frage: Pull-Ups sollten auf jeden Fall zur Stabilisierung realisiert werden, ja? (btw, 4,7k Widerstände hab ich nicht zur Hand; nur 1k und 10k - geht das vorerst auch damit, oder dann lieber weglassen, bis ich die richtigen habe)

Die einzige Erklärung, die ich für mein "Wunder" habe, ist, dass irgenwo ein Kabel/Buchse/whatever leicht defekt war, ohne dass ich es bei mehrmaliger (visueller) Kontrolle hätte bemerken können...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.12.2015, 14:56
Beitrag #4
RE: I2C-LCD (YwRobot Arduino LCM1602 IIC V1)
(23.12.2015 14:43)Brokie schrieb:  @hotsystems: Ich gestehe, die Widerstände habe ich heute frühmorgens verlötet, ohne dass mir auch einmal der Gedanke gekommen wäre, dass es einen Unterschied zwischen Pull-Up- und Vorwiderständen geben könnte *schäm* Da bin ich wohl zu leichtfertig ans Werk gegangen; vielen Dank für den Hinweis!
An der Stelle die Frage: Pull-Ups sollten auf jeden Fall zur Stabilisierung realisiert werden, ja? (btw, 4,7k Widerstände hab ich nicht zur Hand; nur 1k und 10k - geht das vorerst auch damit, oder dann lieber weglassen, bis ich die richtigen habe)

Die einzige Erklärung, die ich für mein "Wunder" habe, ist, dass irgenwo ein Kabel/Buchse/whatever leicht defekt war, ohne dass ich es bei mehrmaliger (visueller) Kontrolle hätte bemerken können...
Das es jetzt funktioniert, liegt vermutlich an schlechten Kontakten des Steckbrettes.
Ist leider bekannt. Aber wenn es geht ist es doch gut.

PullUps sind wichtig, bei längeren Leitungen. Sollten aber immer drin sein. Je länger die Leitung, desto kleiner der Widerstand. Also 10 kOhm ist da ok. Wird so auch funktionieren.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  LCD Anzeige für Arduino Mega2560 an Arduino Due? DaniDD 1 802 03.06.2015 12:16
Letzter Beitrag: DaniDD
  Arduino Pin mit anderem Arduino auslesen - geht das? Gelegenheitsbastler 8 3.201 08.05.2015 20:49
Letzter Beitrag: Bitklopfer
Question Arduino Mega ADK oder Arduino Due? Baja-Junky 1 4.157 14.08.2013 21:16
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste