how can i read NTC?

Hesam Kamalan

New Member
Hi,

in my project i use MikroC as compiler, PIC16F877A. i connected a NTC to AN0 of this microcontroller. my problem is, i don't know how can i work with NTC.
i worked with LM32 and i know readding temperature, but i don't know how can i read NTC output.

in ISIS i connect one pin of NTC to VCC and second pin to micro. but on LCD i have 5v for all temperatures.

my code is:
Code:
unsigned char ch;
unsigned int adc_rd;
char *text;
long tlong;

void main() {
  INTCON = 0;                              // disable all interrupts
  Lcd_Init(&portd);                        // Dataport=PortD, En=d.3, Rs=d.2
  LCD_Cmd(LCD_CURSOR_OFF);                 // send command to LCD (cursor off)
  LCD_Cmd(LCD_CLEAR);                      // send command to LCD (clear LCD)

  ADCON1     = 0x82;                       // configure VDD as Vref, and analog channels
  TRISA      = 0xFF;                       // designate PORTA as input
  Delay_ms(2000);
  text = "Temp: ";
  
  while (1) {
    adc_rd  = ADC_read(0);                 // get ADC value from 2nd channel


    LCD_Out(2,1,text);                     // print string a on LCD, 2nd row, 1st column

    tlong = (long)adc_rd * 5000;           // covert adc reading to milivolts
    tlong = tlong / 1023;                  // 0..1023 -> 0-5000mV

    ch     = tlong / 1000;                 // extract volts digit
    LCD_Chr(2,9,48+ch);                    // write ASCII digit at 2nd row, 9th column
    LCD_Chr_CP('.');

    ch    = (tlong / 100) % 10;            // extract 0.1 volts digit
    LCD_Chr_CP(48+ch);                     // write ASCII digit at cursor point

    ch    = (tlong / 10) % 10;             // extract 0.01 volts digit
    LCD_Chr_CP(48+ch);                     // write ASCII digit at cursor point

    ch    = tlong % 10;                    // extract 0.001 volts digit
    LCD_Chr_CP(48+ch);                     // write ASCII digit at cursor point
    LCD_Chr_CP('V');

    Delay_ms(1);
  }
}//~!
 

An NTC is a Negative Temperature Coefficient Resistor so of course it will not give you a reading, as an LM3x will. You need to put it into a voltage divider cct, with a resistor of known value. The resistance of the NTC will increase as the temperature decreases. Here, read all about it:
Thermistor - Wikipedia, the free encyclopedia
 
i want to use bridge for measurmenting temperature. but i don't know what is value of Ra, Rb, Rc , Rs.
if you know guide me please. i want to measure temperature from 35 up to 80.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…