Forum: Mikrocontroller und Digitale Elektronik Temepratursensor DS18B20


von Martin F. (martin_f70)


Angehängte Dateien:

Lesenswert?

Hallo Elektroniker und Programmierer :D

Ich wollte aus einem DS18B20 Temeprautrsensor die Temperatur auslesen - 
was denn auch sonst? :)

Ich nutze diese Lib, die im Anhang ist.

Hier mein Code:
1
#include "ds18x20lib.h"
2
3
int main(void){
4
    char buffer[20];
5
    float temp;
6
7
    ds1820_init(DS1820_pin);
8
9
    while(1){
10
        temp = ds1820_read_temp(DS1820_pin);
11
        itoa(temp, buffer, 10);
12
        lcd_string(buffer);
13
    }
14
}
Auf dem Display wird aber nur eine "0" Ausgegeben, warum?

von gasd (Gast)


Lesenswert?

lcd_string(temp);

von Martin F. (martin_f70)


Lesenswert?

Das ist ja Quark, die funktion kann nur Char Arrays ausgeben.

von Volker (Gast)


Lesenswert?

Versuche mal dtostre anstatt itoa.

von Martin F. (martin_f70)


Lesenswert?

Habe schon mit sprintf versucht, da gibt er ein Fragezeichen aus, soll 
ich trotzdem noch mit dtostre probieren?

von Martin F. (martin_f70)


Lesenswert?

Warte... Der Elektronische Aufbau muss doch so sein:


DS18B20
GND -> GND
VCC -> +5V
DATA -> PB0

zwischen DATA u. VCC 4,7kOhm Pull-Up

Oder?

von triti (Gast)


Lesenswert?

Ja. Ohne 4k7 --> Mist.

von Martin F. (martin_f70)


Lesenswert?

Ich habe den 4k7 entfernt, es wird trotzdem nur ein ? ausgegeben...

von Volker (Gast)


Lesenswert?

Kommen irgendwelche warnings beim compilieren?
Stimmt das Timing (MCU-Frequenz)?
Eigentlich braucht es auch keine floats um Temperaturwerte aus diesen 
Sensoren anzuzeigen.

von Martin F. (martin_f70)


Lesenswert?

Ich mache jetzt erstmal Schluss, kanst du morgen wieder hier reinschauen 
ummir zu helfen bitte? nacht

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.