Can you read the message on the LCD in this photo? Happy Birthday, Small Basic!
Today’s Small Basic program is
' Send Text to Serial Port' Version 0.1' Copyright © 2016 Nonki Takahashi. The MIT License. TextWindow.Title = "Send Text to Serial Port"Init()While "True" txt = TextWindow.Read() LDCommPort.TXString(txt + LF)EndWhile Sub Init LF = Text.GetCharacter(10) status = LDCommPort.OpenPort("COM3",9600) LDCommPort.SetEncoding("Ascii")EndSubAnd the Arduino sketch is
// LCD control via I2C from serial port #include <Wire.h> #include <LiquidCrystal_I2C.h> // Variable definition const int r = 2; // rows const int c = 16; // columns LiquidCrystal_I2C lcd(0x3F, c, r); // set the LCD address to 0x3F String inputString = ""; // received string boolean stringComplete = false; // received? void setup() { lcd.init(); // initialize the lcd lcd.backlight(); Serial.begin(9600); } void loop() { if (stringComplete) { int len = inputString.length(); lcd.clear(); if (len <= c) { lcd_print(inputString); } else { lcd_print(inputString.substring(0, c)); lcd.setCursor(0, 1); lcd_print(inputString.substring(c)); } inputString = ""; stringComplete = false; } } // Print string to LCD void lcd_print(String str) { int len = str.length(); for (int i = 0; i < len; i++) { lcd.print(str.charAt(i)); } } // Serial event handler void serialEvent() { while (Serial.available()) { char inChar = (char)Serial.read(); // read 1 byte if (inChar == '\n') { // flag on if reseived newline stringComplete = true; } else { inputString += inChar; // append it to the string } } }
