본문 바로가기

[AVR]/ATTiny

[AtTiny13] ADC테스트 - ADC값을 LCD에 출력

[AtTiny13] ADC테스트 - ADC값을 LCD에 출력



AtTiny13는 8핀의 소형 마이컴 이므로 디버깅에 어려움이 많다. 특히 ADC값에 따라 특정 기능을 수행하려 할때 ADC값을 보면서 디버깅해야 하는 경우가 많은데 이런 상황에서 [LCD Module] 을 이용하면 쉽게 ADC값을 확인하고 디버깅 가능하다.

PB1, PB3, PB4포트를 LCD Module에 연결하고 PB2(ADC1)으로 가변 저항을 연결



AtTiny13 ADC 구조



AtTiny13 ADC 채널 선택



소스코드
adc.c
//Read ADC Value
unsigned int AdcRead(unsigned char Channel)
{
 unsigned int value = 0;
 
 ADMUX = Channel&7;
 ADCSRA = ADCSRA|ADC_START_CONVERSION;
 
 while(!(ADCSRA & ADC_COMPLETE));
 value = ADCL;
 value = ((ADCH)<<8) | value;
 
 return value;
}

main.c
//-----------------------------------------------------------------------------
int main(void)
{
    //시스템 초기화
    SystemInit();

    InitShfitRegister();
    LcdInit();
    //               0123456789abcdef
    LcdDspStr(0, 0, "AtTiny13 ADC    ");

    AdcInit(); 

    while(1)
    {
     TbiShiftData(BIT8);
     SendIntStr(0, 1, AdcRead(1));
     Delay(50);
    }
}
//-----------------------------------------------------------------------------



AtTiny13 ADC-LCD 테스트 동영상
가변저항을 돌려 전압값을 조절하면 LCD에 0~1024까지 출력되는것을 확인 할 수 있다.



반응형