이전글인 LCD1602 - ADC 출력을 응용하여 스테레오 오디오의 출력 세기를 바 그래프 형태로 표시하는 것을 구현해 보도록 하겠다.실제로 오디오 출력을 ADC로 읽어 온 값을 출력하는것이 아니고 단순히 시뮬레이션 하는 정도의 수준으로만 구현하는것으로 하겠다.사용하는 회로는 LCD1602 드라이버 코드 - 4비트 모드(2)를 참고하기 바란다.ADC 출력 프로젝트에서는 하나의 ADC 입력에 대해서만 출력했지만 이번 프로젝트에서는 두개의 오디오 출력을 표시하여야 하므로 update_bar_graph() 함수를 조금 수정하였다. #define CHAN_INDENT 2 static void update_bar_graph(uint8_t r, uint8_t line) { uint8_t full = line / L..
이번에는 LCD1602를 실제 어떻게 활용할 수 있는지 간단한 프로젝트를 만들어 알아보기로 하겠다.먼저 다음과 같은 회로를 구성한다.LCD1602를 4비트 모드로 AVR과 연결시키고, AVR의 ADC0핀에 10K옴 가변 저항기를 연결하였다. ADC 값을 읽어 오는 방법은 입문 과정중 ADC(Analog to Digital Converter)에서 다루어 보았으므로 참고하면 된다.ADC 블럭을 통해서 읽어온 값을 LCD에 출력하는 코드를 만들어, ADC와 LCD가 정상적으로 동작되는지 확인해 본다. static char lcd_buf[2][16]; uint8_t row, col; static void clear_buf(void) { for (row=0; row
이번 글에서는 LCD 내부에서 제공하는 글자를 사용하지 않고 프로그래머가 직접 글자 패턴을 만들어서 LCD에 출력해보는 기능에 대해서 알아보도록 하겠다.먼저 다음과 같은 코드를 만들어 본다. static uint8_t count; static char buf[16]; static char spinner[] = {'|','/','-','\\'}; static void loop(void) { sprintf(buf, "Cnt = %3d", count++); lcd_pos_putc(1,0,spinner[count&3]); lcd_pos_puts(1,3,buf); _delay_ms(500); } 위의 코드는 500msec 마다 count 변수값을 LCD의 두번째 줄에 출력하는 코드이다. 이미 앞의 글들에서 계속 ..