Guten Abend , Ich versuche seit ca. 2 Wochen mein Displaytech 162A LCD am Arduino Uno zum laufen zu bekommen. Ich bekomme es einfach nicht hin... Ich habe alle Tutorials und Anleitungen durchgemacht und nichts hat geklappt. Es wurden entweder immer nur Schwarze Blöcke oder ergenein Mist angezeigt. Hat jemand villeicht noch eine Idee ? Würde mich echt richtig freuen.
Code , Bilder vom aufbau , datenblatt vom display wären nicht schlecht
Also hier der Code und der Aufbau : http://arduino.cc/en/Tutorial/LiquidCrystal Habe es zu 100% Korrekt verdrahtet - nur habe ich kein Poti genommen , habe den Contrast direkt auf GND gelegt . Datenblatt finde ich selber nicht ...
Hallo Fly, damit wir dir helfen können, musst du uns noch mehr Informationen liefern. Bitte poste doch mal ... * Schaltplan * Fotos vom Aufbau * Quellcode Liebe Grüße, Lui
Hallo Fly,
> habe den Contrast direkt auf GND gelegt .
Nimm einmal ein Poti so wie es in der Anleitung steht. Das ist notwendig
um etwas sehen zu können.
Liebe Grüße,
Lui
Fly schrieb: > Datenblatt finde ich selber nicht ... https://www.displaytech-us.com/sites/default/files/display-data-sheet/162A%20series-v21.pdf War der 2. Treffer bei Google mit dem Begriff "162A LCD". Liebe Grüße, Lui
Fly schrieb: > Habe es zu 100% Korrekt verdrahtet - nur habe ich kein Poti genommen , > habe den Contrast direkt auf GND gelegt . Kannst du machen, aber bei den meisten Displays ist dann nichts von den anzuzeigenden Inhalten zu sehen.
Und leider unterscheidet sich das selbst noch bei "baugleichen" Displays. Hab hier zwei eigentlich gleiche Displays, die brauchen trotzdem unterschiedliche Kontrasspannungen. Und wenn im oben genannten Tutorial schon ein Poti benutzt wird, dann mach dir denn geringen Mehraufwand und steck dir auch einen auf dein Steckbrett.
Ja ok , ich werde später mal ein 10k Poti besorgen und es dann nochmals versuchen. Melde mich dann wieder. Danke bis dahin!
Jap tatsache - es lag wirklich an den Poti... Vielen Dank ! Noch eine frage, wenn ich die obere Zeile ansteuern will muss ich ja lcd.begin(16 ,2); machen, und wenn ich die untere ansteuern will ?
Fly schrieb: > Jap tatsache - es lag wirklich an den Poti... > > Vielen Dank ! > > Noch eine frage, wenn ich die obere Zeile ansteuern will muss ich ja > > lcd.begin(16 ,2); machen, und wenn ich die untere ansteuern will ? Was hat lcd.begin damit zu tun? mittels "begin" teilst du den LCD Funktionen mit, welche 'Dimensionen' dein LCD hat. Das es also 2 Zeilen und 16 Spalten pro Zeile hat. Schön. Das ist sicherlich eine hilfreiche Information für die LCD Routinen die unter anderem sicherlich auch in den entsprechenden Positionier-Funktionen benutzt wird. Aber die Funktion, die den Cursor an eine bestimmte Stelle setzt, heißt ganz sicher nicht begin. Wie wärs mal in der Doku nachzusehen, welche Methoden eigentlich die LCD Klasse unterstützt und sich die Funktion (Methode) rauszusuchen, die am ehesten danach klingt, das man mit ihr die Funktionalität 'Positioniere den Cursor in die 1. Zeile und dort in die 8. Spalte' abrufen könnte? http://arduino.cc/de/Reference/LiquidCrystal Gewöhn dich daran: Zu wissen, wo man Informationen findet, ist das halbe Leben in der Programmierung. In deinem Fall ist das die recht umfangreiche Arduino Doku. Und was man da drinnen nicht direkt findet, das kann man auch in den Header Files, bzw. direkt im Source Code der jeweiligen Klasse finden. Willkommen in der Programmierung, in der die Zeit in der die Tante mit dir Lulu gegangen ist, endgültig vorbei ist.
:
Bearbeitet durch User
Vielen Dank! Ich habe jetzt doch das richtige gefunden und mal ein bischen versucht;
1 | int SchalterZustand; |
2 | int InputPin = 8; |
3 | int LEDPin = 13; |
4 | |
5 | #include <LiquidCrystal.h> |
6 | |
7 | LiquidCrystal lcd(12, 11, 5, 4, 3, 2); |
8 | |
9 | void setup() |
10 | {
|
11 | lcd.begin(16,2); |
12 | Serial.begin(9600); |
13 | pinMode(InputPin,INPUT); |
14 | pinMode(LEDPin,OUTPUT); |
15 | }
|
16 | |
17 | void loop(){ |
18 | |
19 | SchalterZustand = digitalRead(8); |
20 | Serial.println(SchalterZustand,DEC); |
21 | |
22 | if(SchalterZustand == 0) |
23 | {
|
24 | lcd.clear(); |
25 | lcd.setCursor(0, 0); |
26 | lcd.print("Warten auf"); |
27 | lcd.setCursor(0, 1); |
28 | lcd.print("Eingabe"); |
29 | }
|
30 | |
31 | if(SchalterZustand == 1) |
32 | {
|
33 | lcd.clear(); |
34 | lcd.setCursor(0, 1); |
35 | lcd.print("Bitte Warten"); |
36 | delay(250); |
37 | }
|
38 | }
|
Mehr vorerst nicht... Aber wenn der Schalter den Zustand 0 hat "schwimmen" die Buchstaben auf den LCD so rum, man sieht sie schlecht, bewegen sich immer. An was liegt das ?
:
Bearbeitet durch User
Hi Fly, > Aber wenn der Schalter den Zustand 0 hat "schwimmen" die Buchstaben auf > den LCD so rum, man sieht sie schlecht, bewegen sich immer. Das liegt daran, dass du keine Pause einlegst. Solange der Schalter 0 ist wird das Display gelöscht, dann beschrieben, dann wieder gelöscht und wieder beschrieben und wieder gelöscht und ... Und zwar so schnell es dein µC kann. Dadurch "flimmert" dein Display. Besser ist es wenn du das Display nur einmal ansteuerst wenn sich der Schalterzustand ändert. Liebe Grüße, Lui
Danke! Es hat funktioniert - aber kann man ergenwie machen das der Zustand in Sek geändert wird ? Also so: Knopf wird 1sek gedrückt = SchalterZustand == 1 Knopf wird 2sek gedrückt = SchalterZustand == 2 Knopf wird 3sek gedrückt = SchalterZustand == 3 Knopf wird 4sek gedrückt = SchalterZustand == 4 Knopf wird 5sek gedrückt = SchalterZustand == 5 ... So dass man mehrere If Schleifen machen kann.
Hallo! Warum soll das nicht gehen? Es gibt massenhaft Software, wo das unterschiedlich lange Drücken eines Knopfes ausgewertet wird. Gewöhne Dir schleunigst das hier ab: Fly schrieb: > If Schleifen
Fly schrieb: > aber kann man ergenwie machen das der Zustand in > Sek geändert wird ? Ich formuliere deine Frage anders: Kann man die Länge eines Tastendrucks auswerten? Ja. Man kann einfach die Zeitdauer messen die eine Taste gedrückt wurde und dann entsprechend darauf reagieren. http://fff2.at/drupal/content/zeitmessung-mit-dem-arduino Liebe Grüße, Lui
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.