Hallo
Ich habe ein Problem welches sich mit der Uhrzeit durch eine RTC befasst, an sich klappt alles mir wird Uhrzeit, Datum aber auch Luftfeuchte und Temperatur durch einen Dht22 angezeigt.
Wenn jedoch bei MInute Sekunde oder Stunde die Zahl unter 10 st werden mir keine NUllstellen davor angezeigt, welche ich haben will. z.b 12:9:2 soll eigentlich sein 12:09:02
Ich würde mich sehr über Hilfe freuen... hier noch mein Sketch
#include <RTClib.h>
#include <DHT.h> // Bibliothek
#include <Wire.h>
//#include <Wire.h>
//#include <LiquidCrystal_I2C.h> // Using version 1.2.1
//#define FLOATTOSTR(s,f,d) sprintf((s),"%0d,%d",(int)(f),abs((int)(((f)-(int)(f))*pow(10,(d)))))
// Set the pins on the I2C chip used for LCD connections:
// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
//LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#define DHTPIN 9 // Pin 9 als Datenpin
#define DHTTYPE DHT22 //Sensor Typ wird festgelegt
DHT dht(DHTPIN, DHTTYPE);
RTC_DS1307 RTC;
void setup()
{
Serial.begin(9600);
Serial.println("DHT22 - Test!");
//lcd.begin(16,2); // sixteen characters across - 2 lines
// lcd.backlight();
dht.begin();
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(F(__DATE__), F(__TIME__)));
if (! RTC.isrunning())
{
Serial.println("RTC is NOT running!");
//sets the RTC to the date & time this sketch was compiled
RTC.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop()
{
float h = dht.readHumidity(); //Luftfeuchte auslesen | FLOAT sehr genauer Datentyp (7 Nachkommastellen)
float t = dht.readTemperature(); //Temperatur auslesen
/* float zahl = h;
float zahl1 = t;
char str[20];
char str1[21];
FLOATTOSTR(str1, zahl1, 2);
FLOATTOSTR(str, zahl, 2); */
delay(1000);
// Prüfen ob eine gültige Zahl zurückgegeben wird. Wenn NaN (not a number) zurückgegeben wird, dann Fehler ausgeben.
if (isnan(t) || isnan(h))
{
Serial.println("DHT22 konnte nicht ausgelesen werden");
}
else
{
Serial.print("Luftfeuchtigkeit: "); //Im seriellen Monitor den Text und
Serial.print(h); //die Dazugehörigen Werte anzeigen
Serial.println(" %");
Serial.print("Temperatur: ");
Serial.print(t);
Serial.println(" °C");
DateTime now = RTC.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
/*// lcd.setCursor(0,0);
//lcd.print("Luftf.:");
//lcd.print(str);
// lcd.print(h);
lcd.print("%");
lcd.setCursor(0,1);
lcd.print("Temp.:");
lcd.print(str1);
//lcd.print(t);
lcd.write("\337");
lcd.print("C"); */
}
}