BASIC4MCU | 질문게시판 | Atmega128 가변저항을 이용해 lcd에 설정값 띄우기
페이지 정보
작성자 납땜마스터 작성일2022-12-01 12:07 조회938회 댓글0건본문
가변저항 변화에 따라 LED 상태 변화가변저항의 변화에 따라 PORTA 에 연결된 LED 상태를 변화시키는 예제(소스)입니다. PF1(ADC1) 핀에 연결된 가변 저항(5K) 값을 읽어 PORTA 에 연결된 LED에 출력 가변저항 0.6K 이하 => LED1개 ON… 화이트앳-ATMEGA128,AVR 정복,아두이노,Cortex-M3 |
안녕하세요 ! 요즘 아트메가를 공부하다가 아두이노에서는 가변저항 사용하는 것을 많이 봤는데 아트메가128에서는 사용해도 led로만 연결을 하길래
lcd로 연결을 하고싶은데 제가 너무 초보라 어떻게 해야되는지 잘 모르겠어요..
세탁기를 예시로 해서 가변저항값을 여덟구간으로 나눠서 돌릴때마다 모드가 lcd에 뜨고, 특정 모드가 떴을 때 스위치를 누르면 제가 코딩해놓은 세탁절차가 시작되게 하고싶은데
가변저항값을 들여오는 과정부터 너무 막막해요.. 다른데서 참고해서 붙여넣긴 했는데 while을 써야되는지 if를 써야되는지도 잘 모르겠구요..
아래처럼 프로그래밍 하니까 빌드는 되는데 제가생각한 대로는 안되네요.. 도와주세요ㅠㅠㅠ 너무 초보입니당
InitADC();
MCU_Init(); //MCU 초기화
LCDInit(); //LCD 초기화
LCDMove(0,0); //0행 0열 이동
LCDPuts(TITLE); //0행에 Washing Machine을 출력
DDRB = 0xF0;
DDRD = 0x00;
EICRA = 0x02; //하강 엣지 트리거
EIMSK = (1<<INT0); //INT0 인터럽트 허용
sei(); //전역 인터럽트 허용
while (1)
{
g_adc1 = 0;
// 노이즈를생각해서값을16번읽어평균을낸다.
for(uiTemp = 0; uiTemp<16;uiTemp++){
ADMUX=0x40 | 0x01;
ADCSRA = 0xD7;
while((ADCSRA & 0x10) != 0X10);
g_adc1 += ADCL + (ADCH*256);
}
g_adc1>>=4;
while(1)
{
char SW2W[] = {'W','a','s','h','i','n','g','.','.','.','\0'};
char SW2R[] = {'R','i','n','s','i','n','g','.','.','.','\0'};
char SW2D[] = {'D','e','h','y','d','r','a','t','i','o','n','\0'};
char SW2F[] = {'W','a','s','h',' ','F','i','n','i','s','h','!','!','!','\0'};
char SW4[] = {'O','F','F','.',' ','P','l','z',' ','R','e','s','e','t','\0'};
while( !(~g_adc1 <128)) // 1/8 회전
LCDMove(1,0); //1행 0열 이동
LCDPuts(SW4);
int i,j,k;
for(i=0;i<4;i++) //세탁
{
LCDMove(1,0); //1행 0열 이동
LCDPuts(SW2W); //Washing…출력
PORTB = pattern[i]; //LED가 순차적으로 점등
_delay_ms(1000); //LED간 1초 딜레이
}
for(j=0;j<4;j++) //헹굼
{
LCDMove(1,0); //1행 0열 이동
LCDPuts(SW2R); //Rinsing…출력
PORTB = pattern[j]; //LED가 순차적으로 점등
_delay_ms(1000); //LED간 1초 딜레이
}
for(k=0;k<4;k++) //탈수
{
LCDMove(1,0); //1행 0열 이동
LCDPuts(SW2D); //Dehydration…출력
PORTB = pattern[k]; //LED가 순차적으로 점등
_delay_ms(1000); //LED간 1초 딜레이
}
LCDMove(1,0); //1행 0열 이동
LCDPuts(SW2F); //세탁,헹굼,탈수가 끝나면 Washing Finish!!!를 LCD에 출력
PORTB = 0x00; //LED 모두 소등
댓글 0
조회수 938등록된 댓글이 없습니다.