INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Temperatur mit DS18S20, Kommastellen
05.02.2015, 18:17
Beitrag #1
Smile Temperatur mit DS18S20, Kommastellen
Hallo, auch ich darf mal ein Neuling sein und beschäftige mich seit einigen
Wochen mit diesem Thema. Keine Angst, habe auch ein Buch vorn Franzis und auch schon einiges in diesem Forum gelesen.

Ich möchte 2 LCD- Anzeigen zusammenschalten, beide sollen das gleiche anzeigen, hab da auch schon eine Schaltung mittels I²C gefunden und erfolgreich probiert.
Ist jetzt im Moment Nebensache, da ich erstmal die ganze Schaltung und Software auf dem Brett zusammen und nach und nach aufbauen möchte.
Als Erweiterung soll aus einer Steuerung, am USB Anschluss (wo die Daten seriell vor liegen) ebenfalls auslesen und am LCD-Display 20x4 sichtbar machen.

Hab mal mit dem einfachen angefangen:

Temperatur auslesen und darstellen:
Funktioniert auch soweit, wie bekomme ich aber die Temperatur mit einer
Kommastelle angezeigt? Diesen Code habe ich noch nicht hinbekommen.
Anbei mein bisheriger der auch läuft.

#include <LiquidCrystal.h> //LiquidCrystal-Anzeige mit:
#include <OneWire.h> //RS an Pin 12
#include <DallasTemperature.h> //RW an Pin 11
//ENABLE an Pin 10
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); //D4-7 an den Pins 5-2,
#define LCD_WIDTH 20 //Anzahl Spalten des Display (20)
#define LCD_HEIGHT 4 //Anzahl Zeilen des Display (4)

DeviceAddress sensor1 = { 0x10, 0xCD, 0xB6, 0xB5, 0x2, 0x8, 0x0, 0xD4 }; //Sensoradressen
DeviceAddress sensor2 = { 0x10, 0xD9, 0xE1, 0xB5, 0x2, 0x8, 0x0, 0x97 }; //Sensoradressen
OneWire ds(13); //Pin an dem die Datenleitung des ds18s20 hängt

DallasTemperature sensors (&ds);
int temp1, temp2;


void setup()
{
sensors.begin();
Serial.begin(9600);
}
void loop()

{
sensors.requestTemperatures();
temp1 = sensors.getTempC(sensor1);
temp2 = sensors.getTempC(sensor2);

lcd.begin(20,4);
lcd.clear();
lcd.setCursor (0,0);
lcd.print("Aussen Temperatur");
lcd.setCursor (0,1);
lcd.print(temp1); lcd.write(0xDF); lcd.print("C");

lcd.setCursor (0,2);
lcd.print("Innen Temperatur");
lcd.setCursor (0,3);
lcd.print(temp2); lcd.write(0xDF); lcd.print("C");
delay (3000);


}

Gruß Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.02.2015, 18:20
Beitrag #2
RE: Temperatur mit DS18S20, Kommastellen
Hi,
versuch mal das hier:
Code:
float temp1, temp2;
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.02.2015, 17:50
Beitrag #3
RE: Temperatur mit DS18S20, Kommastellen
Hallo Daniel,
wie Thorsten bereits geschrieben hat liegt es daran, dass du für eine Zahl mit Kommastellen den falschen Datentypen benutzt.

INT, also INTEGER ist ein Datentyp, der nur ganzzahlige Werte speichern kann.
z.B. 0,1,232, etc.

FLOAT hingegen ist ein Datentyp, mit dem Gleitpunktzahlen, die du für deinen Fall benötigst, gespeichert und dargestellt werden können.
z.B. 3,4827, 2,12, 5,8237 etc.

Kannst ja mal posten, ob dein Problem durch Anpassung des Datentypes gelöst wurde! ;-)


Liebe Grüße,

xuino
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.02.2015, 21:09
Beitrag #4
RE: Temperatur mit DS18S20, Kommastellen
Ja Danke für den Tipp. bin wieder weitergekommen. Aber ich glaube ich bin hier im falschen Forum. Mein Beitrag gehört wohl auch zu den Fragen rund um den Arduino-Programmierungen, nicht in Arduino Projekte- Vorstellungen.

Kann das der Moderator rüberschieben oder geht das nicht? Soll ich hier weiterschreiben, auch mit dem Programmcode oder nicht? Ich, mit 40ér möchte mich hier auch noch anpassen Big Grin

Das mit dem float- Befehl (32-Bit-Gleitkommazahl) hab ich hinbekommen, zeigt mir jetzt 2 Kommastellen an, eine würde mir reichen, da mir das Display ansonsten mit 20 Zeichen zu kurz wird. Mein Projekt soll
zum Schluß 4x ein Displaywechsel mit unterschiedliche Werten anzeigen. Unter anderem etliche Temperaturen, aber auch Daten, die fertig aus einem Modul, im ASCII- Format vorliegen, anzeigen. (Serial Input).

Gruß Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.02.2015, 05:21
Beitrag #5
RE: Temperatur mit DS18S20, Kommastellen
Hallo Daniel,
versuche mal was in der Art:
Code:
int floatlength = 4; // Gesamtlänge inkl. Punkt
int nks = 1; // Nachkommastellen
char rwert[] = "*"; // Puffer für Umwandlungen
dtostrf(temp1, floatlength, nks, rwert);
lcd.print(rwert);
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.02.2015, 07:27
Beitrag #6
RE: Temperatur mit DS18S20, Kommastellen
Hi,
das dürfte einen netten Speicherüberschreiber produzieren. rwert sollte mindestens die erwartete Länge plus 1 haben. Also in etwa
Code:
char rwert[5];
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.02.2015, 08:37
Beitrag #7
RE: Temperatur mit DS18S20, Kommastellen
Yo Thorsten, du hast Recht. 05:20 Uhr ist für mich wohl doch einfach zu früh Huh
Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.02.2015, 13:45 (Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2015 13:45 von Wampo.)
Beitrag #8
RE: Temperatur mit DS18S20, Kommastellen
Hy,

ich lasse mir die nachkommastellen immer wie folgt Anzeigen .

lcd.print(druck,1); //die Zahl gibt die Kommastellen an, bei 2 sieht man 2, bei 1 eben eine Kommastelle

Greez Wampo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Rainbow Messeinrichtung 6 x Temperatur & Feuchtigkeit JoeDorm 5 176 06.12.2016 22:44
Letzter Beitrag: JoeDorm
Question pool temperatur messen... unfug11 4 1.460 06.04.2016 09:11
Letzter Beitrag: unfug11
Sad Temperatur u. feuchtigkeit Webserver+speichern der Temp. u. Feuchti. auf sd Porblem!! TbO92 0 1.893 27.10.2014 10:14
Letzter Beitrag: TbO92
  Gärbox mit fallender Temperatur Kubus 3 1.549 29.09.2014 20:23
Letzter Beitrag: Thorsten Pferdekämper
  Temperatur-Farbwechsler lena 2 1.449 22.05.2014 09:46
Letzter Beitrag: Thorsten Pferdekämper

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste