Hallo Leute,
Ich habe versucht mit Java und der PI4J Libary das Display HD44780 anzusteuern, doch ich bekomme nicht angezeigt.
Den Aufbau habe ich nach dieser Anleitung gemacht: http://www.schnatterente.net/technik/raspbe…hd44780-display
So sieht mein Code aus:
Java
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.pi4j.wiringpi.Gpio;
import com.pi4j.wiringpi.Lcd;
public class JavaOS {
public final static int LCD_ROWS = 2;
public final static int LCD_COLUMNS = 16;
public final static int LCD_BITS = 4;
public static void main(String[] args) {
System.out.println("<--Pi4J--> Wiring Pi LCD test program");
// setup wiringPi
if (Gpio.wiringPiSetup() == -1) {
System.out.println(" ==>> GPIO SETUP FAILED");
return;
}
// initialize LCD
int lcdHandle= Lcd.lcdInit(LCD_ROWS, // number of row supported by LCD
LCD_COLUMNS, // number of columns supported by LCD
LCD_BITS, // number of bits used to communicate to LCD
7, // LCD RS pin
8, // LCD strobe pin
0, // LCD data bit 1
0, // LCD data bit 2
0, // LCD data bit 3
25, // LCD data bit 4
24, // LCD data bit 5 (set to 0 if using 4 bit communication)
23, // LCD data bit 6 (set to 0 if using 4 bit communication)
18, // LCD data bit 7 (set to 0 if using 4 bit communication)
0); // LCD data bit 8 (set to 0 if using 4 bit communication)
// verify initialization
if (lcdHandle == -1) {
System.out.println(" ==>> LCD INIT FAILED");
return;
}
// clear LCD
Lcd.lcdClear(lcdHandle);
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// write line 1 to LCD
Lcd.lcdHome(lcdHandle);
//Lcd.lcdPosition (lcdHandle, 0, 0) ;
Lcd.lcdPuts (lcdHandle, "The Pi4J Project") ;
// write line 2 to LCD
Lcd.lcdPosition (lcdHandle, 0, 1) ;
Lcd.lcdPuts (lcdHandle, "----------------") ;
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
// update time every one second
while(true){
// write time to line 2 on LCD
Lcd.lcdPosition (lcdHandle, 0, 1) ;
Lcd.lcdPuts (lcdHandle, "--- " + formatter.format(new Date()) + " ---");
System.out.println("--- " + formatter.format(new Date()) + " ---");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Alles anzeigen
Was mache ich falsch?