'온도센서'에 해당되는 글 2건

  1. 2014.12.22 MLX90614 비접촉온도센서
  2. 2011.05.12 트래커 SOURCE

안녕하세요. 숭덕입니다.


어항의 물온도를 측정하기 위해 비접촉식 온도센서 MLX90614를 사용하였습니다.


온도센서는 접촉센서와 비접촉센서가 일반적인데 저의 경우, 일반적으로 사용하는 접촉신센서가 아닌 비접촉식 센서를 사용하여


온도를 측정하였습니다.


Melexis社의 MLX90614제품이며, 제품 사양은 다음 아래와 같습니다.



회로도는 다음 아래와 같습니다.



이 센서의 통신방식은 PWM통신방식과 SMbus(TWI, I2C)통신방식을 지원하는데 PWM 방식을 사용하는 경우 온도 정확도는 0.14℃이며, TWI방식을 사용하는 경우, 0.02℃의 높은 정확도를 제공한다.









'AVR 8BIT > PH센서를 이용한 수질측정 시스템' 카테고리의 다른 글

PH 수질측정  (2) 2014.12.29
ORP 수질측정  (0) 2014.12.29
MLX90614 비접촉온도센서  (0) 2014.12.22
동작테스트  (0) 2014.12.19
PH Board Artwork  (0) 2014.11.05
PH센서를 이용한 수질측정 시스템  (4) 2014.07.17
Posted by 숭덕이

원본소스는 아닙니다. 참고로 사용하실 분만 가져가서 수정하셔서 사용해주세요. 
온도센서도 함께 되어있는데 분해능을 정확하게 하지않았으며, 소스에서 수정 후 사용바랍니다.

퍼가실때는 필히 댓글 남겨주시기 바랍니다.



#pragma opt-
#include 
#include 
#include 

#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include  


char str[30];
int ADC_I;
float ADC_F;

void CH1(void);
void CH2(void);
void CH3(void);
void CH4(void);
void RC_Motor(int angle){ // angle : -90도 ~ +90도
    int i;
    if(angle<-90)angle=-90;
    if(angle> 90)angle= 90;
    i=(angle+ 90)*20 +1500;
    OCR1A=i; //PB5
   
}


void main(void){
  
  DDRB=0xff;  
  TCCR1A=0xAA; // FAST PWM
  TCCR1B=0x1A; // 8분주=0.5usec
  OCR1A=3000;  // 1500usec=0도
  
  ICR1=47999;  // 0.5usec*48000=24000usec=41.67Hz
  DDRF=0xff;
  PORTF=0xff;
  DDRC=0xff;

   lcd_init(16);
  
  
  while(1){
  CH1();  
  CH2();  
  CH3(); 
  CH4();                      
          }
  }

void CH1(void){
  ADMUX=0;
  ADCSRA=0xE7; //프리런닝 ADC0 한개만 사용 함 
  delay_ms(50); 
  ADC_I=ADCW;
  ADC_F=(float)ADC_I * 5.0/1023.0;
  lcd_gotoxy(0, 0);
  sprintf(str,"CDS0 = %4.2f V", ADC_F); 
  lcd_puts(str);
 delay_ms(50); 
 if(ADC_F < 4.95){
    RC_Motor(-100);  
    delay_ms(1000);}
   
  };


void CH2(void){
  ADMUX=1;
  ADCSRA=0xE7; //프리런닝 ADC0 한개만 사용 함 
  delay_ms(50); 
  ADC_I=ADCW;
  ADC_F=(float)ADC_I * 5.0/1023.0;
  lcd_gotoxy(0, 1); 
  sprintf(str,"CDS1 = %4.2f V", ADC_F); 
  lcd_puts(str);
  delay_ms(50);
    if(ADC_F < 4.95){
    RC_Motor(-30);  
    delay_ms(1000);
    
    }
        
  };
 
void CH3(void){
  ADMUX=2;
  ADCSRA=0xE7; //프리런닝 ADC0 한개만 사용 함  
    delay_ms(50);
  ADC_I=ADCW;
  ADC_F=(float)ADC_I * 5.0/1023.0;
  lcd_gotoxy(0, 2);
  sprintf(str,"CDS2 = %4.2f V", ADC_F); 
  lcd_puts(str);
  delay_ms(50);
  if(ADC_F < 4.95){
    RC_Motor(30);  
    delay_ms(1000);
    }
    
      
  };
                 
                   
void CH4(void){
  ADMUX=3;
  ADCSRA=0xE7; //프리런닝 ADC0 한개만 사용 함  
  delay_ms(50);
  ADC_I=ADCW;
  ADC_F=(float)ADC_I * 100/204.8;
  lcd_gotoxy(0, 3);
  sprintf(str,"LM35DZ = %4.2f ", ADC_F); 
  lcd_puts(str);
  delay_ms(50); 
  };





'AVR 8BIT > CDS 태양트래커' 카테고리의 다른 글

트래커 SOURCE  (0) 2011.05.12
완성 --(2)  (8) 2011.05.12
완성 --(1)  (0) 2011.05.11
HS-311  (3) 2011.05.10
CDS 센서특성  (14) 2011.05.10
Posted by 숭덕이