Browse Source

updated TempSender and LCDReceiver

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
nano-5
Stephan Richter 10 months ago
parent
commit
0f4c20bdce
  1. 36
      Software/LCDReceiver/LCDReceiver.ino
  2. 6
      Software/TempSender/TempSender.ino

36
Software/LCDReceiver/LCDReceiver.ino

@ -23,36 +23,38 @@
#define LCD_D6 12 #define LCD_D6 12
#define LCD_D7 13 #define LCD_D7 13
// initialize the library by associating any needed LCD interface pin with the arduino pin number it is connected to // initialize the library by associating any needed LCD interface pin with the arduino pin number it is connected to
LiquidCrystal lcd(LCD_RS, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7); LiquidCrystal lcd(LCD_RS, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
void setup() { void setup() {
Serial.begin(115200); Serial.begin(115200);
init485(Max485_RO,Max485_RE,Max485_DE,Max485_DI); // library initialization: init485(Max485_RO,Max485_RE,Max485_DE,Max485_DI); // library initialization:
invert485polarity(true);
// set up the LCD's number of columns and rows: // set up the LCD's number of columns and rows:
lcd.begin(16, 2); lcd.begin(16, 2);
// Print a message to the LCD. // Print a message to the LCD.
Serial.println(PROGRAM); printMessage(PROGRAM);
lcd.print(PROGRAM);
} }
void loop() { void printMessage(String s){
if (available485()) {
String s = get485message();
Serial.println(s); Serial.println(s);
lcd.clear(); lcd.clear();
lcd.setCursor(0, 0); int line = 0;
lcd.print(s); int col = 0;
if (s.length()>16) { auto cstr = s.c_str();
lcd.setCursor(0, 1); for (int i=0;i<s.length();i++){
s=s.substring(16); if (col == 0 && cstr[i] == ' ') continue;
s.trim(); lcd.print(cstr[i]);
lcd.print(s); col++;
if (cstr[i]==',' || col==16){
line++;
col=0;
lcd.setCursor(col, line);
} }
} }
} }
void loop() {
if (available485()) {
printMessage(get485message());
}
}

6
Software/TempSender/TempSender.ino

@ -12,7 +12,7 @@
#include <SoftRS485.h> #include <SoftRS485.h>
#include <AM2302-Sensor.h> #include <AM2302-Sensor.h>
#define PROGRAM "RS485-Nano 2.0 / TempSender 1.2" #define VERSION "1.2"
#define BTN_INT 2 // button interrupt pin #define BTN_INT 2 // button interrupt pin
#define Max485_RO 3 // read-output of Max485 #define Max485_RO 3 // read-output of Max485
@ -64,7 +64,9 @@ void setup(){
attachInterrupt(digitalPinToInterrupt(BTN_INT),isr,CHANGE); attachInterrupt(digitalPinToInterrupt(BTN_INT),isr,CHANGE);
// Print a message to the LCD. // Print a message to the LCD.
Serial.println(PROGRAM); String s = "{nano:"+String(ID)+",revision:2.0,TempSender:"+VERSION+"}";
Serial.println(s);
send485(s.c_str());
#ifdef LOG_TO_SERIAL #ifdef LOG_TO_SERIAL
Serial.println("14 15 16 17 18 19 20 21"); Serial.println("14 15 16 17 18 19 20 21");
#endif #endif

Loading…
Cancel
Save