Temperatuur meten met 4K7 NTC + PIC 18F4520

Wij gebruiken een PIC 18F4520. We hebben een 4K7 NTC tussen AN0 en GRND + een weerstand van 10KOhm tussen AN0 en +9V.

Het uitlezen van AN0 en versturen naar display lukt. We zetten de waarde van AN0 om naar een waarde tussen 0 en 256 (dmv bitshiften) zodat het op 3 displaytjes past. We willen temperaturen meten tussen 0 en 100 graden celcius.

Nu ons probleem:
Bij kamertemperatuur geeft AN0 256 als waarde weer, en bij verwarming van de NTC zakt deze waarde naar rond de 56.
Maar als je de NTC afkoelt onder kamertemperatuur kan AN0 geen waarde weergeven omdat hij bij kamertemperatuur al zijn maximale waarde bereikt.

Nu zijn we er achter gekomen dat de weerstand waarschijnlijk niet aan de 9V maar aan de 5V vastgemaakt moet worden (we gebruiken een transistor die 9V naar 5V omzet).

Als we dit doen, schommelt bij kamertemperatuur de waarde van AN0 rond de 56, en de NTC lijkt niet meer te reageren op andere temperaturen bij verwarmen en afoelen. Wat doen we fout? Is de weerstand soms te sterk?

klein is fijn

Moderator

Op 5 april 2006 11:21:58 schreef M5B:
Nu zijn we er achter gekomen dat de weerstand waarschijnlijk niet aan de 9V maar aan de 5V vastgemaakt moet worden (we gebruiken een transistor die 9V naar 5V omzet).

Heb je hier ook een schema van?

Ik geloof overgens dat het om een schoolvraag gaat? :)

Op 5 april 2006 12:17:15 schreef klein is fijn:
[...]Heb je hier ook een schema van?

Ik geloof overgens dat het om een schoolvraag gaat? :)

Het gaat inderdaad om een practicumopgave. Wij hebben wel een schema, maar alleen op papier, dus ik zal het proberen te omschrijven.

PIC 18F4520 met 40 pins
Op AN0 zit de 4K7 NTC
De 4K7 NTC zit met de andere kant aan de GRND
Tussen AN0 en +5V zit een weerstand van 10KOhm

De weerstand naar 9V lijkt me geen goed plan. De spanning op AN0 kan dan meer dan 5V worden, en de spanning op AN0 is dan niet meer radiometrisch (een deel van) de 5V.

Klopt de analoge uitlezing, dus als je met een voltmeter meet wat de spanning op AN0, klopt dat dat met wat je leest?

Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog

Dat wordt een leuke... Een NTC heeft als vergelijking:

R = A x e-BT

Om dat dus om te zetten naar een (naukeurige) temperatuursmeteing met een PIC blijft er niet veel over dan een vergelijkingstabel. (Het gaat wel, maar heel erg lastig)
Dat van die 9V is op te lossen door de weerstand naar de 9V groter te maken, zet er wel een schottkey diode tussen A0 en de +5V van de PIC, want zoals Wouter al opmerkte, PIC's houden er niet van een hogere spanning als de voedingspanning op hun ingangen te zien

carpe cerevisi

Op 5 april 2006 14:09:02 schreef LaStei:
want zoals Wouter al opmerkte, PIC's houden er niet van een hogere spanning als de voedingspanning op hun ingangen te zien

en als je de 9V gebruikt wordt de spanning die je meet op de NTC afhankelijk van de exacte waarde van die 9V. Dus dan moet je een deel daarvan als referentie gaan gebruiken of op een andere manier compenseren.

Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog

De NTC hadden we inmiddels al losgehaald en vervolgens aan de 5V vastgezet, alleen reageert de NTC nu niet meer op de temperatuur, dus ik vermoed dat er toch iets niet helemaal lekker zit in het circuit. We zullen het morgen even nakijken en daarna laten weten wat er nog fout gaat.

klein is fijn

Moderator

Meet de weerstand van de NTC gewoon eens na met een multimeter.

Verplaatst naar schoolvragen.