TC1047 - Code zur Anzeige

Gast #3568545
Lesenswert?

Ich habe einen Temperaturfühler TC1047 an einem analgogen Eingang eines 
Controllers (AN0). ANO müsste also eine zur Temp. linear steigenden Wert 
liefern (Gleichung siehe unten.

Den analogen Wert kann ich mir ohne Probleme anzeigen lassen.
Mir geht es jetzt um die Umrechnung nach Datenblatt um mir die genaue 
Temp. anzeigen zu lassen.
1
V_out = (10mV/°C)*Temp in °C + 500mV

Nach der Temp. aufgelöst bekomme ich also
1
Temp in °C = (V_out in V - 0,5V)/ 0,01V

V_out müsste doch direkt der Wert sein der an AN0 ausgegeben wird??
Ich bekomme unrealsite Werte angezeigt (meist 250°C)

Was habe ich nicht bedacht?

Danke
Gast #3569001
Lesenswert?

Es handelt sich um einen 10 BIT ADC. und der PIC läuft mit 3,3V 
Versorgungsspannung. d.h. V_OUT ergibt sich bei mir aus dem
1
V_OUT =(ANALOG-DIGITAL_GEWANDELTEN_WERT)/1024*3,3V
, richtig??

Kennt sich jemand mit dem PIC24E aus und kann mir etwas über die 
richtige Initialisierung des ADC sagen?

Ich hbas wie folgt gemacht, aber mehr als unsicher ob das so hinkommt:
1
 // ADC
2
    ANSELBbits.ANSB0 = 1;   // AN0 is analog
3
    TRISBbits.TRISB0  = 1;    //input
4
    AD1CON1 = 0x84E4;            // Turn on, auto sample start, auto-convert, 12 bit mode (on parts with a 12bit A/D)
5
    AD1CON2 = 0x0404;            // AVdd, AVss, int every 2 conversions, MUXA only, scan
6
    AD1CON3 = 0x1003;            // 16 Tad auto-sample, Tad = 3*Tcy
7
// AD1CSSL = 1<<5;                // Scan pot
8
        AD1CSSLbits.CSS0 = 1;   // scanne AN0
#3569012
Lesenswert?

Ralf schrieb:

> =(ANALOG-DIGITAL_GEWANDELTEN_WERT)/1024*3,3V [/c], richtig??

Vorsicht:
Erst multiplizerien, dann dividieren. Oder dafür sorgen, dass die 
Division schon in Gleitkomma erledigt wird.

ALles in allem: zeige den Code in der Umrechnung, inklusive der 
Datentypen der beteiligten Variablen.

Wenn du Dinge ausgeben kannst (was du offensichtlich kannst), dann lass 
dir auch mal die Werte der Zwischenresultate anzeigen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren