Zobrazení proměnných na LCD I2C 20x4
Napsal: 31 led 2018, 09:28
Zdravím všechny , mám takový dotaz, hraju si přenosem po nrf24, mám jeden reciver a 2 trasmiter, všechno vypadá dobře až ne jedno
když zobrazuji teploty na display tak jsou po každý jinde
, nemá s tím někdo zkušenost ? zkoušel jsem i před zobrazení uložit do jiné proměnné, ale vždy po třeba 5 min se mě to rozhodí , pokud tam dám delay(1000) tak se mě ukazují data z jednoho čidla a druhého čidla střídavě nahoře dole .
přikládám kod na zobrazení
správně je obrázek :
potom se to přehodí takto
kde temperature je jedno UNO s DHT11 a teplota je druhé UNO s DS1820 , proměnná 25.15 je jen tak zadaná na tvrdo ...
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include <DHT.h>
float temperature[2];
float teplota[2];
RF24 radio(7, 8);
const uint64_t pipe1 = 0xE8E8F0F0E1LL;
const uint64_t pipe2 = 0xE8E8F0F0E2LL;
void setup(void) {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1, pipe1);
radio.openReadingPipe(2, pipe2);
radio.startListening();
lcd.init();
lcd.backlight();
lcd.clear();
lcd.print("Humidity & temp");
delay(1000);
lcd.clear();
lcd.print("Starting.....");
lcd.clear();
delay(1000);
}
void loop(void)
{
radio.read(temperature, sizeof(temperature));
radio.read(teplota, sizeof(teplota));
delay(500);
lcd.setCursor(0, 0);
lcd.print("Temp");
lcd.setCursor(0, 1);
lcd.print("Humidity");
lcd.setCursor(9, 0);
lcd.print(temperature[0]);
lcd.print(" C");
lcd.setCursor(9, 1);
lcd.print(temperature[1]);
lcd.setCursor(9, 2);
lcd.print(teplota[0]);
lcd.setCursor(9, 3);
lcd.print(teplota[1]);
lcd.print(" %");
delay(10000);
}
děkuji prozatím
když zobrazuji teploty na display tak jsou po každý jinde

přikládám kod na zobrazení
správně je obrázek :
potom se to přehodí takto
kde temperature je jedno UNO s DHT11 a teplota je druhé UNO s DS1820 , proměnná 25.15 je jen tak zadaná na tvrdo ...
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include <DHT.h>
float temperature[2];
float teplota[2];
RF24 radio(7, 8);
const uint64_t pipe1 = 0xE8E8F0F0E1LL;
const uint64_t pipe2 = 0xE8E8F0F0E2LL;
void setup(void) {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1, pipe1);
radio.openReadingPipe(2, pipe2);
radio.startListening();
lcd.init();
lcd.backlight();
lcd.clear();
lcd.print("Humidity & temp");
delay(1000);
lcd.clear();
lcd.print("Starting.....");
lcd.clear();
delay(1000);
}
void loop(void)
{
radio.read(temperature, sizeof(temperature));
radio.read(teplota, sizeof(teplota));
delay(500);
lcd.setCursor(0, 0);
lcd.print("Temp");
lcd.setCursor(0, 1);
lcd.print("Humidity");
lcd.setCursor(9, 0);
lcd.print(temperature[0]);
lcd.print(" C");
lcd.setCursor(9, 1);
lcd.print(temperature[1]);
lcd.setCursor(9, 2);
lcd.print(teplota[0]);
lcd.setCursor(9, 3);
lcd.print(teplota[1]);
lcd.print(" %");
delay(10000);
}
děkuji prozatím