Hallo zusammen, ich habe mir letztens ein ANAG VISION AV1610 LCD Display
mit KS0066 Driver geordert, welches heute auch angekommen ist. Vorweg
muss ich dazu sagen, dass das mein erstes LCD ist und ich brandneu im
bereich der LCD ansteuerung bin. Ich habe mir einige Tutorials
angesehen, wie ich das LCD mit dem RaspberryPi verbinde und habe mir das
auch auf einem Breadboard zusammengesteckt. Siehe Anhang.
Dort ist aber auch gleich mein Problem zu erkennen. Ich kann nur die
erste Hälfte des Displays ansteuern und das noch nichtmal ordentlich.
Als Programmierumgebung benutze ich wiringPi mit der darin enthaltenen
lcd.h
1
#include <wiringPi.h> //WiringPi headers
2
#include <lcd.h> //LCD headers from WiringPi
3
#include <stdio.h> //Needed for the printf function below
4
5
//Pin numbers below are the WiringPi pin numbers
6
7
#define LCD_RS 11 //Register select pin
8
#define LCD_E 10 //Enable Pin
9
#define LCD_D4 6 //Data pin 4
10
#define LCD_D5 5 //Data pin 5
11
#define LCD_D6 4 //Data pin 6
12
#define LCD_D7 1 //Data pin 7
13
14
int main()
15
{
16
int lcd; //Handle for LCD
17
wiringPiSetup(); //Initialise WiringPi
18
19
//Initialise LCD(int rows, int cols, int bits, int rs, int enable, int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7)
lcdPosition(lcd,0,0); //Position cursor on the first line in the first column
26
lcdPuts(lcd, "Character LCD"); //Print the text on the LCD at the current cursor postion
27
getchar(); //Wait for key press
28
lcdClear(lcd); //Clear the display
29
}
Wäre nett, wenn man mir unter die Arme greifen könnte wie ich das
Display richtig initialisiere. Ich habe das Datenblatt vom KS0066 sowie
vom AV1610 schon angesehen, bin daraus aber auch nicht wirklich schlauer
geworden. Mit Adresszuweisung u.ä. habe ich mich bis dato noch nie
beschäftigt, bin aber nicht abgeneigt es zu lernen.
Vielen Dank schonmal im Vorraus für eure Hilfe :)
Grüße.
>Siehe auch Datenblatt
Oder so weil er das vermutlich nicht so leicht versteht:
lcdPosition(lcd,0,0); //Position cursor on the first line in
lcdPuts(lcd, "Characte"); //Print the text on the LCD at the
lcdPosition(lcd,1,0); //Position cursor on the first line in
lcdPuts(lcd, "r LCD"); //Print the text on the LCD at the
Eigentlich ist das ein 2x8 Display wo die beiden Zeilen
nebeneinander und nicht übereinander liegen.
Das hier
> if (lcd = lcdInit (1, 16,4, LCD_RS, LCD_E ,LCD_D4 , LCD_D5,
sollte dann auch besser so aussehen:
if (lcd = lcdInit (2, 8,4, LCD_RS, LCD_E ,LCD_D4 , LCD_D5,
Schonmal danke an euch beiden. Leider hat es nicht funktioniert mit dem
2x8 Zeilen Init. Es erscheint auch kein Text mehr sondern die linke
Seite des LCDs wird mit Kästchen gefüllt.