본문 바로가기

AVR 8BIT/CDS 태양트래커

트래커 SOURCE

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

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



#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 태양트래커' 카테고리의 다른 글

완성 --(2)  (8) 2011.05.12
완성 --(1)  (0) 2011.05.11
HS-311  (3) 2011.05.10
CDS 센서특성  (14) 2011.05.10