Arduino LCD | Schwierigkeiten |

Gast #3690602
Lesenswert?

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.
Gast #3690630
Lesenswert?

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.
#3693536
Lesenswert?

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.
Gast #3694611
Lesenswert?

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 ?
#3694651
Lesenswert?

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
Gast #3694747
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren