thanks a lot
after reading through the reference, I came up with this
void binary(char Char) {
int i;
int n = 8;
int pos = 0;
for(i = 0; i < n; i++) {
Serial.print(bitRead(Char, pos));
pos += 1;
}
}
edit: and I implemented it into my code
example of printing H:
#define RS_A 2 // _A für ARDUINO
#define RW_A 3
#define E_A 4
#define D0_A 5
#define D1_A 6
#define D2_A 7
#define D3_A 8
#define D4_A 9
#define D5_A 10
#define D6_A 11
#define D7_A 12
int delay_time = 300; // damit das schreiben cooler aussieht
void data_stream(int D7_D, int D6_D, int D5_D, int D4_D, int D3_D, int D2_D, int D1_D, int D0_D){ // _D für DATA // für Anweisungen
digitalWrite(D0_A, D0_D);
digitalWrite(D1_A, D1_D);
digitalWrite(D2_A, D2_D);
digitalWrite(D3_A, D3_D);
digitalWrite(D4_A, D4_D);
digitalWrite(D5_A, D5_D);
digitalWrite(D6_A, D6_D);
digitalWrite(D7_A, D7_D);
}
void rs_rw_stream(int RS_D, int RW_D){ // um Register auszuwählen und zwischen schreiben und lesen zu wechseln
digitalWrite(RS_A, RS_D);
digitalWrite(RW_A, RW_D);
}
void enable(){ // um das Display zu triggern
digitalWrite(E_A, HIGH);
digitalWrite(E_A, LOW);
}
void clear(){ // löscht das Display, setzt DDRAM auf 00Hex
data_stream(0,0,0,0,0,0,0,1);
rs_rw_stream(0,0);
enable();
}
void binary(char Char) {
int pointer = 12;
int i;
int n = 8;
int pos = 0;
for(i = 0; i < n; i++) {
Serial.print(bitRead(Char, pos));
digitalWrite(pointer, bitRead(Char, pos));
pos += 1;
pointer -= 1;
}
}
void setup() {
pinMode(RS_A, OUTPUT); // setzt RS_A auf OUTPUT
pinMode(RW_A, OUTPUT); // setzt RW_A auf OUTPUT
pinMode(E_A, OUTPUT); // setzt E_A auf OUTPUT
pinMode(D0_A, OUTPUT); // setzt D0_A auf OUTPUT
pinMode(D1_A, OUTPUT); // setzt D1_A auf OUTPUT
pinMode(D2_A, OUTPUT); // setzt D2_A auf OUTPUT
pinMode(D3_A, OUTPUT); // setzt D3_A auf OUTPUT
pinMode(D4_A, OUTPUT); // setzt D4_A auf OUTPUT
pinMode(D5_A, OUTPUT); // setzt D5_A auf OUTPUT
pinMode(D6_A, OUTPUT); // setzt D6_A auf OUTPUT
pinMode(D7_A, OUTPUT); // setzt D7_A auf OUTPUT
clear(); // um nach jedem reset das Display zu clearen und DDRAM Adresse 00 zu setzen
delay(10); // dieses Delay ist wichtig; mindestens 1,55ms
data_stream(0,0,1,1,1,0,0,0); // 8-bit Modus; 2 Zeilen; 5x8 Schrift
rs_rw_stream(0,0);
enable();
data_stream(0,0,0,0,1,1,1,0); // aktiviert den Cursor (kein blinken); letzte Zahl ändern um blinkenden Curor zu toggeln
rs_rw_stream(0,0);
enable();
data_stream(0,0,0,0,0,1,1,0); // verschiebe die Register Adresse jedes mal +1
rs_rw_stream(0,0);
enable();
binary("H");
rs_rw_stream(1,0);
enable();
}
void loop() {
}