values on my temp project slowly increase

http://www.flickr.com/photos/99469359@N03/9460897137

So i used a lm34 and two BCD ICs with 2 7 segments to read out temperature in F. I thought it was all good, but ive run into two issues. First the temp all ways starts pritty low, around 50, and has to work its way up to the ballpark temp for around 10 min. Second when i leave it on for a while the temp just keeps slowly rising. From the picture i'm wondering if the lm34 sensor is too close to the 7 segments, and so when they start getting warm it slowly moves the temp up, also the temp does plateau, and that temp does change depending on the actual temp. Its reading a value about 10 degrees higher. also why does it start low when i turn the system on? Does the lm34 need time to get going? Ill post code below.

At first i thought the sensor was just busted, but when i blow on it or touch my fingers to it, it responds perfectly.

int a1 = D5;
        int b1 = D6;
        int c1 = D4;
        int d1 = D3;
    
        int a2 = D0;
        int b2 = B2;
        int c2 = B3;
        int d2 = B1;
     
        m_red(OFF);

    for(;;){
        
        
        
        int rawtemp_val = m_adc(6);
        long tempF = (rawtemp_val * 490L / 1024L);
        
        int digit_1 = tempF / 10;
        int digit_2 = tempF % 10;
        
   
      
        
        
        switch(digit_1)
        {
            case 0:
                m_gpio_out( d1 , OFF );
                m_gpio_out( c1 , OFF );
                m_gpio_out( b1 , OFF );
                m_gpio_out( a1 , OFF );
                break;
            case 1:
                m_gpio_out( d1 , OFF );
                m_gpio_out( c1 , OFF );
                m_gpio_out( b1 , OFF );
                m_gpio_out( a1 , ON );
                break;
            case 2:
                m_gpio_out( d1 , OFF );
                m_gpio_out( c1 , OFF );
                m_gpio_out( b1 , ON );
                m_gpio_out( a1 , OFF );
                break;
            case 3:
                m_gpio_out( d1 , OFF );
                m_gpio_out( c1 , OFF );
                m_gpio_out( b1 , ON );
                m_gpio_out( a1 , ON );
                break;
            case 4:
                m_gpio_out( d1 , OFF );
                m_gpio_out( c1 , ON );
                m_gpio_out( b1 , OFF );
                m_gpio_out( a1 , OFF );
                break;
            case 5:
                m_gpio_out( d1 , OFF );
                m_gpio_out( c1 , ON );
                m_gpio_out( b1 , OFF );
                m_gpio_out( a1 , ON );
                break;
            case 6:
                m_gpio_out( d1 , OFF );
                m_gpio_out( c1 , ON );
                m_gpio_out( b1 , ON );
                m_gpio_out( a1 , OFF );
                break;
            case 7:
                m_gpio_out( d1 , OFF );
                m_gpio_out( c1 , ON );
                m_gpio_out( b1 , ON );
                m_gpio_out( a1 , ON );
                break;
            case 8:
                m_gpio_out( d1 , ON );
                m_gpio_out( c1 , OFF );
                m_gpio_out( b1 , OFF );
                m_gpio_out( a1 , OFF );
                break;
            case 9:
                m_gpio_out( d1 , ON );
                m_gpio_out( c1 , OFF );
                m_gpio_out( b1 , OFF );
                m_gpio_out( a1 , ON );
                break;
            default:
                m_gpio_out( d1 , ON );
                m_gpio_out( c1 , ON );
                m_gpio_out( b1 , ON );
                m_gpio_out( a1 , ON );
                break;
        }
        switch(digit_2)
        {
            case 0:
                m_gpio_out( d2 , OFF );
                m_gpio_out( c2 , OFF );
                m_gpio_out( b2 , OFF );
                m_gpio_out( a2 , OFF );
                break;
            case 1:
                m_gpio_out( d2 , OFF );
                m_gpio_out( c2 , OFF );
                m_gpio_out( b2 , OFF );
                m_gpio_out( a2 , ON );
                break;
            case 2:
                m_gpio_out( d2 , OFF );
                m_gpio_out( c2 , OFF );
                m_gpio_out( b2 , ON );
                m_gpio_out( a2 , OFF );
                break;
            case 3:
                m_gpio_out( d2 , OFF );
                m_gpio_out( c2 , OFF );
                m_gpio_out( b2 , ON );
                m_gpio_out( a2 , ON );
                break;
            case 4:
                m_gpio_out( d2 , OFF );
                m_gpio_out( c2 , ON );
                m_gpio_out( b2 , OFF );
                m_gpio_out( a2 , OFF );
                break;
            case 5:
                m_gpio_out( d2 , OFF );
                m_gpio_out( c2 , ON );
                m_gpio_out( b2 , OFF );
                m_gpio_out( a2 , ON );
                break;
            case 6:
                m_gpio_out( d2 , OFF );
                m_gpio_out( c2 , ON );
                m_gpio_out( b2 , ON );
                m_gpio_out( a2 , OFF );
                break;
            case 7:
                m_gpio_out( d2 , OFF );
                m_gpio_out( c2 , ON );
                m_gpio_out( b2 , ON );
                m_gpio_out( a2 , ON );
                break;
            case 8:
                m_gpio_out( d2 , ON );
                m_gpio_out( c2 , OFF );
                m_gpio_out( b2 , OFF );
                m_gpio_out( a2 , OFF );
                break;
            case 9:
                m_gpio_out( d2 , ON );
                m_gpio_out( c2 , OFF );
                m_gpio_out( b2 , OFF );
                m_gpio_out( a2 , ON );
                break;
            default:
                m_gpio_out( d2 , ON );
                m_gpio_out( c2 , ON );
                m_gpio_out( b2 , ON );
                m_gpio_out( a2 , ON );
                break;

Does your code have smiles in it? No? Read the how to use this forum sticky post and modify that post to use the correct code tags.

How have you wired it up? If you choose the wrong resistor values it could be self heating. Otherwise it could be the 7 segment display but I would not expect that to heat up much. How have you got that wired up and what resistor values are you using on the segments?

i dont have any resistors on the lm34, and 330 ohm ones on each pin for the 7 segment

I'd measure the voltage at the sensor to see whether it's actually changing, and also see whether the Arduino's analog reference voltage is changing. It's possible that what you're seeing is just the effect of the battery running down, or the voltage regulator heating up, and causing the Arduino's supply voltage and reference voltage to drift.

i using another microcontroller called an m2, pritty much an arduino, but im powering it with a cell charger with usb connection, its maintains about 4.9 volts, my code accounts for that exact voltage, but should i feed that into aref? When do you use Aref?

but should i feed that into aref?

No it should be connected by default. It is on a real arduino you will have to check yours.

When do you use Aref?

When you want a lower and / or more stable reference than the supply.

It may be that the USB charger voltage is slowly decreasing as the charger heats up. USB power makes a very poor voltage reference. When I'm using USB power and I need stable analog readings, I use the 3.3V pin as the analog reference.

its being plugged into a wall outlet

When you want a lower and / or more stable reference than the supply.

Could the problem be that it is too unstable? , and is it self heating?

Have you checked whether the actual analog output voltage from the sensor is changing, and whether the voltage you're supplying to the sensor is changing? It would be a good start to know whether the change is occurring within the sensor, or the Arduino.

both numbers are stable

amp625: both numbers are stable

If the analog reference voltage is stable and the voltage at the analog input pin is stable then the results from analogRead() should also be stable. If that's not the case then one of your assumptions must be invalid.

you said to check the output voltage from the sensor, and the Vin for the system, not the Aref