Így sikerült majdnem azt elérnem amit szerettem volna, viszont így meg az a baj, hogy egy véletlenszerű karakter mindig benne marad valamiért a kijelzőbe.
Kód: Egész kijelölése
/* LiquidCrystal
LCD fuggvenykonyvtar
A 2x16 karakteres LCD mintaprogram
EXT1 aramkorre hangolva
Soros -> LCD kiiras
60 nap alatt arduino tanfolyam
(c) TavIR http://avr.tavir.hu */
#include "LiquidCrystal.h"
//LCD-t hasznalunk
LiquidCrystal lcd(4, 5, 6, 7, 8, 9);
//bekotjuk az LCD-t
byte a1[8] = {B10,B100,B1110,B1,B1111,B10001,B1111};
byte e1[8] = {B10,B100,B1110,B10001,B11111,B10000,B1110};
byte i1[8] = {B10,B100,B0,B1110,B100,B100,B1110};
byte o1[8] = {B100,B100,B0,B1110,B10001,B10001,B1110};
byte o2[8] = {B1010,B0,B1110,B10001,B10001,B10001,B1110};
byte o3[8] = {B1010,B1010,B0,B1110,B10001,B10001,B1110};
byte u1[8] = {B10,B100,B10001,B10001,B10001,B10011,B1101};
byte u2[8] = {B1010,B0,B0,B10001,B10001,B10011,B1101};
byte u3[8] = {B1010,B1010,B0,B10001,B10001,B10011,B1101};
//kis ekezetes betuk
byte b;
//atmeneti valtozo
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
//LCD hattervilagitas bekapcsol (D13)
lcd.createChar(0, a1);
lcd.createChar(1, e1);
lcd.createChar(2, i1);
lcd.createChar(3, o1);
lcd.createChar(4, o3);
lcd.createChar(5, u1);
lcd.createChar(6, u2);
lcd.createChar(7, u3);
//karakterdefinialas
lcd.begin(16, 2);
//2x16 karakteres LCD
Serial.begin(9600);
//Sorosport 9600 bps nyitasa
}
void loop()
{
if (Serial.available()) {
b = Serial.read();
//ha van karakter: beolvassuk
Serial.print(b);
Serial.print("-");
//kiirjuk a karaktert
}else
{
delay(1000);
lcd.clear();
}
//karakterkod alapjan csere:
if (b == 225) {
b = 0;
}
if (b == 233) {
b = 1;
}
if (b == 237) {
b = 2;
}
if (b == 243) {
b = 3;
}
if (b == 245) {
b = 4;
}
if (b == 250) {
b = 5;
}
if (b == 252) {
b = 6;
}
if (b == 251) {
b = 7;
}
//kiirjuk a LCD karakterkodjat
Serial.println(b,DEC);
//akkor irjuk ki az LCD-re
lcd.write(b);
//ha sokat irtunk egyszerre
delay(550);
}
Így az első helyre nem is tudok írni a kijelzőre mert egy teljesen véletlen karakter beíródik valamiért,í,á,stb.
Elküldés után szépen karakterenként kiírja a szöveget, utána várakozik a megadott ideig és törli a kijelzőt, de az első négyzetbe benne marad egy karakter.