problem z aktualizacja danych - lokajek23 - 13-07-2018
siemanko mam problem z aktualizacją danych z czujników podczas przełączania ich na wyświetlaczu lcd
Kod: #include <LiquidCrystal.h>
#include "Adafruit_Sensor.h"
#include "Adafruit_AM2320.h"
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 13
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
Adafruit_AM2320 am2320 = Adafruit_AM2320();
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 7, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
byte stopien[8] = {
0b00111,
0b00101,
0b00111,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};
const int R = 3, G = 9, B = 6;
const int btn = 8;
boolean stan=0;
void setup() {
Serial.begin(9600);
lcd.createChar(0, stopien);
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
pinMode(btn, INPUT_PULLUP);
lcd.begin(16, 2);
am2320.begin();
sensors.begin();
}
void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(btn)==LOW)
{
delay (20);
stan=!stan;
if (stan == 1) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.setCursor(5, 0);
lcd.print(am2320.readTemperature());
lcd.setCursor(10, 0);
lcd.write(byte(0));
lcd.setCursor(11, 0);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Hum: ");
lcd.setCursor(4, 1);
lcd.print(am2320.readHumidity());
lcd.setCursor(9, 1);
lcd.print("%");
}
else
{
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.setCursor(5, 0);
Serial.println(am2320.readTemperature());
lcd.print(am2320.readTemperature());
lcd.setCursor(10, 0);
lcd.write(byte(0));
lcd.setCursor(11, 0);
lcd.print("C");
sensors.requestTemperatures();
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.setCursor(5, 1);
Serial.println(sensors.getTempCByIndex(0));
lcd.print(sensors.getTempCByIndex(0));
lcd.setCursor(10, 1);
lcd.write(byte(0));
lcd.setCursor(11, 1);
lcd.print("C");
}
while(digitalRead(btn)==LOW);
delay(20);
}
setColor(0, 0, 0);
}
void setColor(int red, int green, int blue)
{
analogWrite(R, red);
analogWrite(G, green);
analogWrite(B, blue);
}
żeby je zaktualizować muszę klikać w przycisk, który w założeniu miał tylko zmieniać wyświetlanie danych z czujników na ekranie
RE: problem z aktualizacja danych - Robson Kerman - 13-07-2018
Wyświetlanie danych jest wewnątrz instrukcji warunkowej, której warunkiem jest digitalRead(btn)==LOW, więc aktualizacja danych odbywa się tylko gdy wciśniesz przycisk.
Więc nie pisz, że
(13-07-2018, 00:54)lokajek23 napisał(a): muszę klikać w przycisk, który w założeniu miał tylko zmieniać wyświetlanie danych z czujników na ekranie Bo nie widzę, aby program miał takie założenia.
|