Hallo,
habe einen industriellen Temp- und Feuchtefühler der mir 0-10V ausgibt (-20° - 80°C , 0 - 100% r.F).
Zum einlesen hab ich mir fix einen Spannungsteiler gebaut.
Hier der Code
#include <LiquidCrystal.h>
LiquidCrystal lcd (9, 8, 5, 4, 3, 2);
int temp_pin = A1;
int hum_pin = A2;
void setup()
{
Serial.begin(9600);
lcd.begin(20,4);
}
void loop()
{
int temp_raw = analogRead(temp_pin);
int hum_raw = analogRead(hum_pin);
float temp_volt = temp_raw * (5 / 1023.0);
float hum_volt = hum_raw * (5 / 1023.0);
float temp_val = map (temp_raw, 0, 1023, -20, 80 );
float hum_val = map (hum_raw, 0, 1023, 0, 100);
lcd.clear();
lcd.setCursor(9,0);
lcd.print("Temp, rF%");
lcd.setCursor(0,1);
lcd.print("Volt:");
lcd.setCursor(9,1);
lcd.print(temp_volt);
lcd.setCursor(15,1);
lcd.print(hum_volt);
lcd.setCursor(0,2);
lcd.print("Roh:");
lcd.setCursor(9,2);
lcd.print(temp_raw);
lcd.setCursor(15,2);
lcd.print(hum_raw);
lcd.setCursor(0,3);
lcd.print("Gemappt:");
lcd.setCursor(9,3);
lcd.print(temp_val);
lcd.setCursor(15,3);
lcd.print(hum_val);
Serial.println("Rohwerte: Temp, rF%");
Serial.println(temp_raw);
Serial.println(hum_raw);
Serial.println("gemappt:");
Serial.println(temp_val);
Serial.println(hum_val);
Serial.println("Volt:");
Serial.println(temp_volt);
Serial.println(hum_volt);
delay(500);
}
Alles simpel und soweit funktional.
Jedoch stellt sich mir die Frage: Wie kann ich meine ausgelesen und gemappten Werte mit Nachkommastellen versehen?
Eine Stelle würde genügen.
Hab schon Versucht:
float temp_val = map (temp_raw, 0, 1023.0, -20.0, 80.0 );
float hum_val = map (hum_raw, 0, 1023.0, 0.0, 100.0);
bekomm zwar zb. "25.00" angezeigt.. aber es bleibt bei "x.00"
Tipps?
Gruß