/* -------------------------------------------------------- stxuartlcd_demo_all.ino Demosketch:Ansteuerung eines HD44780 kompatiblen Displays, welches über "stxlcdrecv_uart" angesteuert wird. Verbindung wird ueber SoftwareSerial mit einer Baudrate von 4800 bd hergestellt 30.05.2026 R. Seelig -------------------------------------------------------- */ #include "stxlcdsoftuart.h" // -------------------------------------------------------- // Objekt erzeugen // -------------------------------------------------------- StxlcdUart stxlcd(A4); // -------------------------------------------------------- // Benutzerdefinierbare Fontbitmaps // -------------------------------------------------------- const uint8_t charbmp1[8] = { 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00 }; const uint8_t charbmp2[8] = { 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00 }; const uint8_t balkenbmp[][8] = { { 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00 }, { 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18 }, { 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x00 }, { 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x00 }, { 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x00 }, }; /* -------------------------------------------------------- setup -------------------------------------------------------- */ void setup() { stxlcd.begin(4800); } /* -------------------------------------------------------- loop -------------------------------------------------------- */ void loop() { int8_t i; uint8_t cx; // Test der Arduino-Stream-Funktionen stxlcd.clrscr(); delay(20); stxlcd.gotoxy(1,1); stxlcd.println("Streamtest"); stxlcd.print("HexOut: "); stxlcd.print(24, HEX); delay(2000); // Test der Steuerungs- und printf-Funktionen stxlcd.clrscr(); stxlcd.gotoxy(3,1); stxlcd.switchcursor(0); stxlcd.printf("Progressbar"); // Cursor aus for (i= 0; i<5; i++) { stxlcd.senduserchar(i, &balkenbmp[i][0]); } stxlcd.printf("%P%l",2); for (i= 0; i< 80; i++) { stxlcd.gotoxy((i / 5)+1, 2); stxlcd.printf("%c",i % 5); delay(30); } delay(2000); stxlcd.clrscr(); stxlcd.printf("Text\nlf 1"); delay(2000); stxlcd.printf("\nlf 2"); delay(2000); stxlcd.printf("\rvorne"); delay(2000); stxlcd.clrscr(); stxlcd.gotoxy(1,1); stxlcd.printf("%l UserChars"); stxlcd.senduserchar(1, &charbmp1[0]); stxlcd.senduserchar(2, &charbmp2[0]); for (i= 0; i< 5; i++) { stxlcd.printf("%p%P%c%c",10,2,1,2); delay(200); stxlcd.printf("%p%P%c%c",10,2,2,1); delay(200); } stxlcd.clrscr(); stxlcd.printf("Cursor an%c", 0x0e); delay(2000); stxlcd.gotoxy(1,1); stxlcd.printf("%cCursor aus",0x0f); delay(2000); // vordefinierte User-Zeichen ausgeben stxlcd.clrscr(); stxlcd.gotoxy(1,1); stxlcd.printf("Additional Chars%c"); stxlcd.printf("%P%l",2); for (i= 0; i< 8; i++) { stxlcd.addch(i,i); stxlcd.printf("%c ",i); } delay(2000); stxlcd.printf("%P%l",2); for (i= 0; i< 7; i++) { stxlcd.addch(i+8,i); stxlcd.printf("%c ",i); } delay(2000); stxlcd.clrscr(); stxlcd.gotoxy(1,1); stxlcd.printf("Balkenzeichen"); stxlcd.gotoxy(1,2); for (i= 0; i< 8; i++) { stxlcd.addch(i+16,i); stxlcd.printf("%c",i); } delay(2000); stxlcd.clrscr(); stxlcd.gotoxy(1,1); stxlcd.printf("Quadratzeichen"); stxlcd.gotoxy(1,2); stxlcd.addch(15,1); i= 3; stxlcd.printf("%d%c= %d ", i,1,i*i); delay(2000); stxlcd.clrscr(); stxlcd.printfkomma= 1; stxlcd.gotoxy(1,1); stxlcd.printf("Tabulator"); stxlcd.gotoxy(1,2); stxlcd.printf("%k\t%k\t%k\t%k",45, 18, 39, 32); delay(2000); stxlcd.clrscr(); stxlcd.addch(9,2); stxlcd.gotoxy(1,1); stxlcd.printf("Z%chler:",2); for (cx= 0; cx< 11; cx++) { stxlcd.printf("%p%P%d ",3,2,cx); delay(500); } }