From 6cd774b00a2d71488f89d4ac3508da1e32a5b42c Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Sun, 19 Nov 2023 23:25:49 +0100 Subject: [PATCH] added LCDReceive example Signed-off-by: Stephan Richter --- examples/LCDReceive/LCDReceive.ino | 81 ++++++++++++++++++++++++++++++ examples/TempSend/TempSend.ino | 4 +- 2 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 examples/LCDReceive/LCDReceive.ino diff --git a/examples/LCDReceive/LCDReceive.ino b/examples/LCDReceive/LCDReceive.ino new file mode 100644 index 0000000..abae1d1 --- /dev/null +++ b/examples/LCDReceive/LCDReceive.ino @@ -0,0 +1,81 @@ +/* + LiquidCrystal Library - Hello World + + Demonstrates the use a 16x2 LCD display. The LiquidCrystal + library works with all LCD displays that are compatible with the + Hitachi HD44780 driver. There are many of them out there, and you + can usually tell them by the 16-pin interface. + + This sketch prints "Hello World!" to the LCD + and shows the time. + + The circuit: + * LCD RS pin to digital pin 12 + * LCD Enable pin to digital pin 11 + * LCD D4 pin to digital pin 5 + * LCD D5 pin to digital pin 4 + * LCD D6 pin to digital pin 3 + * LCD D7 pin to digital pin 2 + * LCD R/W pin to ground + * LCD VSS pin to ground + * LCD VCC pin to 5V + * 10K resistor: + * ends to +5V and ground + * wiper to LCD VO pin (pin 3) + + Library originally added 18 Apr 2008 + by David A. Mellis + library modified 5 Jul 2009 + by Limor Fried (http://www.ladyada.net) + example added 9 Jul 2009 + by Tom Igoe + modified 22 Nov 2010 + by Tom Igoe + modified 7 Nov 2016 + by Arturo Guadalupi + + This example code is in the public domain. + + http://www.arduino.cc/en/Tutorial/LiquidCrystalHelloWorld + +*/ + +// include the library code: +#include +#include + +// initialize the library by associating any needed LCD interface pin +// with the arduino pin number it is connected to +const int rs = 12, en = 11, d4 = 4, d5 = 5, d6 = 6, d7 = 7; +LiquidCrystal lcd(rs, en, d4, d5, d6, d7); + +void setup() { + Serial.begin(115200); + // set up the LCD's number of columns and rows: + lcd.begin(16, 2); + // Print a message to the LCD. + lcd.print("hello, world!"); + init485(2,3,8,9); // library initialization: + // connect pin 2 to RO of Max485 + // connect pin 3 to ^RE of Max485 + // connect pin 8 to DE of Max485 + // connect pin 9 to DI of Max485 +} + +void loop() { + + if (available485()) { + // set the cursor to column 0, line 1 + // (note: line 1 is the second row, since counting begins with 0): + String s = get485message(); + lcd.clear(); + lcd.setCursor(0, 0); + lcd.print(s); + if (s.length()>16) { + lcd.setCursor(0, 1); + s=s.substring(16); + s.trim(); + lcd.print(s); + } + } +} diff --git a/examples/TempSend/TempSend.ino b/examples/TempSend/TempSend.ino index 87487ba..7226460 100644 --- a/examples/TempSend/TempSend.ino +++ b/examples/TempSend/TempSend.ino @@ -19,6 +19,7 @@ void setup() { } void loop() { + delay(2000); // read without samples. byte temperature = 0; byte humidity = 0; @@ -29,7 +30,6 @@ void loop() { return; } count++; - String s = String(count)+" - Sample OK: "+ String(temperature)+" *C, "+String(humidity)+"% rel"; + String s = "Sample "+String(count)+" ok: "+ String(temperature)+" *C, "+String(humidity)+"% rel"; send485(s.c_str()); - delay(5000); }