logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Błędny odczyt temperatury z max6675 w [C] [atmega32]

kmkm2 28 Cze 2010 14:52 1300 0
REKLAMA
  • #1 8239973
    kmkm2
    Poziom 21  
    Witam
    Mam problem z odczytem temperatury z max6675 chodzi o to że temperatura którą mierzę jest niższa niż rzeczywista. Temperatura gotującej wody to według mojego pomiaru 80°C a temperatura otoczenia jest o ok 4 do 6 stopni niższa niż rzeczywista. Co może być tego przyczyną?

    void inittemp(void)
    {
     
    SET_OUT_MAX_CLK ;//ustawienie CLK Max6675 jako wyjscie
    SET_IN_MAX_MISO ;// Ustawienie MISO max6675 jako wejscie
    SET_UP_MAX_MISO; //Podciągnięcie MISO do VCC
    SET_OUT_MAX_CS ; // Ustawienie CS max6675 jako wyjście
    
    SET_H_MAX_CS; //Stan wysoki na CS max6675
    SET_L_MAX_CLK;//Stan  niski na clk max6675
    
    }
    
    int Temp_read(){ 
    
    int  buffor =0;
       
      
       //_delay_ms (1000); 
       SET_L_MAX_CS; //Aktywowanie max6675
       //_delay_us (100); 
       
       for(int i=0;i<14;i++){ 
        
    	SET_H_MAX_CLK; //Stan wysoki na CS max6675 
      //_delay_us (200); 
          
    	  if(!CHECK_MAX_CLK)  // Odczyt kolejnrgo bitu i przesuniecie w lewo
       { buffor=buffor<<1; } 
       else 
       {
       buffor=(buffor << 1)|0x1 ;
       }
          
    	  SET_L_MAX_CLK;
    	  //_delay_us (500); 
       };    
       
       SET_H_MAX_CS;
       
        
    return buffor;
    };  
    
  • REKLAMA
REKLAMA