Witam potrzebuję porady dotyczącej ograniczenia wyniku odczytywanego z czujnika DHT22.
Odczyt temperatury i wilgotności wyświetlany jest na czterocyfrowym wyświetlaczu, i mam problem ponieważ gdy wyświetla się wilgotność 100% to na wyświetlaczu jest tylko 1... potrzebuję ograniczyć wyniki czujnika do zakresu 0 - 99.
Próbowałem funkcji constrain(x,a,b) lecz nic z tego mi nie wyszło
Ma ktoś pomysł jak to zrobić?
Mój kod:
Pozdrawiam
Odczyt temperatury i wilgotności wyświetlany jest na czterocyfrowym wyświetlaczu, i mam problem ponieważ gdy wyświetla się wilgotność 100% to na wyświetlaczu jest tylko 1... potrzebuję ograniczyć wyniki czujnika do zakresu 0 - 99.
Próbowałem funkcji constrain(x,a,b) lecz nic z tego mi nie wyszło
Ma ktoś pomysł jak to zrobić?
Mój kod:
Kod:
#include <DHT.h>
#include <TM1637Display.h>
#define DHTPIN 50
#define DHTTYPE DHT22
#define CLK 48
#define DIO 49
DHT dht(DHTPIN, DHTTYPE);
TM1637Display display(CLK, DIO);
uint8_t stC[] = {
SEG_A | SEG_F | SEG_G | SEG_B,
SEG_A | SEG_F | SEG_E | SEG_D
};
uint8_t hum[] = {
SEG_F | SEG_E | SEG_G | SEG_C,
SEG_E | SEG_D | SEG_C
};
int ModePin = 53;
int val = 0;
void setup()
{
Serial.begin(9600);
dht.begin();
display.setBrightness(0x08);
pinMode(ModePin, INPUT);
}
void loop()
{
val = digitalRead(ModePin);
if (val >= 1)
{
int t = dht.readTemperature();
int h = dht.readHumidity();
display.showNumberDecEx(t, 0b01000000, false, 2, 0);
display.showNumberDecEx(h, 0b01000000, false, 2, 2);
delay(500);
val = digitalRead(ModePin);
}
else
{
int t = dht.readTemperature();
int h = dht.readHumidity();
display.setSegments(stC, 2, 2);
display.showNumberDec(t, false, 2, 0);
delay(2500);
display.setSegments(hum, 2, 2);
display.showNumberDec(h, false, 2, 0);
delay(2500);
val = digitalRead(ModePin);
}
}
Pozdrawiam