/* * Displays text sent over the serial port (e.g. from the Serial Monitor) on * an attached LCD. */ #include // include the library code: #include LiquidCrystal_I2C lcd(0x3F,16,2); int led1 = 8; float raw; byte bl[8] = { B00000, B00000, B00000, B00000, B00000, B00000, B00000, }; void setup() { pinMode(led1, OUTPUT); lcd.init(); // initialize the lcd lcd.backlight(); Serial.begin(9600); lcd.createChar(1, bl); lcd.createChar(2, bl); lcd.createChar(3, bl); lcd.createChar(4, bl); lcd.setCursor(0,0); lcd.print("dd-wrt - powered"); lcd.setCursor(0,1); lcd.print("ASUS WL500gP v2"); } void loop() { int charcount; boolean secondline; if (Serial.available()) { delay(200); lcd.clear(); charcount = 0; secondline = false; while (Serial.available() > 0) { if (charcount > 15 && secondline == false ) { lcd.setCursor(0,1); secondline = true; } char inChar = (char)Serial.read(); if (inChar != '\0') { lcd.write(inChar); } if (inChar == '\1') { lcd.backlight(); } if (inChar == '\2') { lcd.noBacklight(); } if (inChar == '\3') { digitalWrite(led1, HIGH); } if (inChar == '\4'){ digitalWrite(led1, LOW); } charcount++; } } }