목차
[1]실제 모습
[2]동작설명
[3]회로도
(1) ATMEGA8515, 초음파, LCD
(2)전원부
(3)스텝모터부
[4]프로그램(CodeVisionAVR C Compiler에서 구현)
[2]동작설명
[3]회로도
(1) ATMEGA8515, 초음파, LCD
(2)전원부
(3)스텝모터부
[4]프로그램(CodeVisionAVR C Compiler에서 구현)
본문내용
>= -40 && (LL<100 || LR<100)) //Short_Left
BShort_Left();
else if (LLR < -40 && (LL<100 || LR<100)) //Long_Left
BLong_Left();
};
}
//************************************ Motor ***********************************
void MotorSeting()
{
while(PIND.4==0)
{
lcd_gotoxy(0,0);
lcd_putsf(" M-Seting M= ");
lcd_gotoxy(0,1);
lcd_putsf("1=+,2=0,3=-: 5=N");
if(PIND.0==1) { mv=mv+2;delay(10000);}
if(PIND.1==1) { mv=0;delay(10000);}
if(PIND.2==1) { mv=mv-2;delay(10000);}
if(mv> 8)mv= 8;
if(mv<-8)mv=-8;
lcd_gotoxy(12,0); sprintf(ddd,"M=%2d", mv); lcd_puts(ddd);
}
}
void MotorTest()
{
while(PIND.4==0)
{
lcd_gotoxy(0,0);
lcd_putsf(" Motor-test ");
lcd_gotoxy(0,1);
lcd_putsf(" NEXT = SW5 ");
forward();P4delay(10000);
FShort_Left(); P4delay(10000);
FLong_Left(); P4delay(10000);
FShort_Right(); P4delay(10000);
FLong_Right(); P4delay(10000);
backward(); P4delay(12000);
PORTB.4=0;
}
}
//------------------------------------------------------------------
//********************************* forward_Moving ********************************
void forward() {msr=11+mv; msl=11+mv; PORTB.1=0; PORTB.3=1; PORTB.4=1; delay(10000);}
void FShort_Left() {msr=10+mv; msl=15+mv; PORTB.1=0; PORTB.3=1; PORTB.4=1; delay(2000); }
void FLong_Left() {msr=10+mv; msl=15+mv; PORTB.1=0; PORTB.3=1; PORTB.4=1; delay(4000);}
void FShort_Right(){msr=15+mv; msl=10+mv; PORTB.1=0; PORTB.3=1; PORTB.4=1; delay(2000); }
void FLong_Right() {msr=15+mv; msl=10+mv; PORTB.1=0; PORTB.3=1; PORTB.4=1; delay(4000);}
//------------------------------------------------------------------
//******************************* backward_Moving ********************************
void backward() {msr=11+mv; msl=11+mv; PORTB.1=1; PORTB.3=0; PORTB.4=1; delay(10000); }
void BShort_Left() {msr=15+mv; msl=10+mv; PORTB.1=1; PORTB.3=0; PORTB.4=1; delay(4000); }
void BLong_Left() {msr=15+mv; msl=10+mv; PORTB.1=1; PORTB.3=0; PORTB.4=1; delay(7000);}
void BShort_Right(){msr=10+mv; msl=15+mv; PORTB.1=1; PORTB.3=0; PORTB.4=1; delay(4000); }
void BLong_Right() {msr=10+mv; msl=15+mv; PORTB.1=1; PORTB.3=0; PORTB.4=1; delay(7000);}
void Other() {PORTB.4=0;}
//------------------------------------------------------------------
//*********************************** Sensor ************************************
int sensorR()
{
while(PINC.2==0)
{
count=count;
}
if(PINC.2==1)
{
count=0;
while(PINC.2)
{
count++;
}
count=(int)(count*0.25);
//if(count>110)count=110;
lcd_gotoxy(0,1); sprintf(ddd,"R=%4d", count); lcd_puts(ddd);
}
mssE=0;
return(count);
}
int sensorL()
{
while(PINC.0==0)
{
count=count;
}
if(PINC.0==1)
{
count=0;
while(PINC.0)
{
count++;
}
count=(int)(count*0.25);
//if(count>110)count=110;
lcd_gotoxy(8,1); sprintf(ccc,"L=%4d", count); lcd_puts(ccc);
}
mssE=0;
return(count);
}
//------------------------------------------------------------------
void P4delay(long int i)
{
while(PIND.4==0 && i--);
}
void delay(long int i)
{
while(i--);
}
//------------------------------------------------------------------
BShort_Left();
else if (LLR < -40 && (LL<100 || LR<100)) //Long_Left
BLong_Left();
};
}
//************************************ Motor ***********************************
void MotorSeting()
{
while(PIND.4==0)
{
lcd_gotoxy(0,0);
lcd_putsf(" M-Seting M= ");
lcd_gotoxy(0,1);
lcd_putsf("1=+,2=0,3=-: 5=N");
if(PIND.0==1) { mv=mv+2;delay(10000);}
if(PIND.1==1) { mv=0;delay(10000);}
if(PIND.2==1) { mv=mv-2;delay(10000);}
if(mv> 8)mv= 8;
if(mv<-8)mv=-8;
lcd_gotoxy(12,0); sprintf(ddd,"M=%2d", mv); lcd_puts(ddd);
}
}
void MotorTest()
{
while(PIND.4==0)
{
lcd_gotoxy(0,0);
lcd_putsf(" Motor-test ");
lcd_gotoxy(0,1);
lcd_putsf(" NEXT = SW5 ");
forward();P4delay(10000);
FShort_Left(); P4delay(10000);
FLong_Left(); P4delay(10000);
FShort_Right(); P4delay(10000);
FLong_Right(); P4delay(10000);
backward(); P4delay(12000);
PORTB.4=0;
}
}
//------------------------------------------------------------------
//********************************* forward_Moving ********************************
void forward() {msr=11+mv; msl=11+mv; PORTB.1=0; PORTB.3=1; PORTB.4=1; delay(10000);}
void FShort_Left() {msr=10+mv; msl=15+mv; PORTB.1=0; PORTB.3=1; PORTB.4=1; delay(2000); }
void FLong_Left() {msr=10+mv; msl=15+mv; PORTB.1=0; PORTB.3=1; PORTB.4=1; delay(4000);}
void FShort_Right(){msr=15+mv; msl=10+mv; PORTB.1=0; PORTB.3=1; PORTB.4=1; delay(2000); }
void FLong_Right() {msr=15+mv; msl=10+mv; PORTB.1=0; PORTB.3=1; PORTB.4=1; delay(4000);}
//------------------------------------------------------------------
//******************************* backward_Moving ********************************
void backward() {msr=11+mv; msl=11+mv; PORTB.1=1; PORTB.3=0; PORTB.4=1; delay(10000); }
void BShort_Left() {msr=15+mv; msl=10+mv; PORTB.1=1; PORTB.3=0; PORTB.4=1; delay(4000); }
void BLong_Left() {msr=15+mv; msl=10+mv; PORTB.1=1; PORTB.3=0; PORTB.4=1; delay(7000);}
void BShort_Right(){msr=10+mv; msl=15+mv; PORTB.1=1; PORTB.3=0; PORTB.4=1; delay(4000); }
void BLong_Right() {msr=10+mv; msl=15+mv; PORTB.1=1; PORTB.3=0; PORTB.4=1; delay(7000);}
void Other() {PORTB.4=0;}
//------------------------------------------------------------------
//*********************************** Sensor ************************************
int sensorR()
{
while(PINC.2==0)
{
count=count;
}
if(PINC.2==1)
{
count=0;
while(PINC.2)
{
count++;
}
count=(int)(count*0.25);
//if(count>110)count=110;
lcd_gotoxy(0,1); sprintf(ddd,"R=%4d", count); lcd_puts(ddd);
}
mssE=0;
return(count);
}
int sensorL()
{
while(PINC.0==0)
{
count=count;
}
if(PINC.0==1)
{
count=0;
while(PINC.0)
{
count++;
}
count=(int)(count*0.25);
//if(count>110)count=110;
lcd_gotoxy(8,1); sprintf(ccc,"L=%4d", count); lcd_puts(ccc);
}
mssE=0;
return(count);
}
//------------------------------------------------------------------
void P4delay(long int i)
{
while(PIND.4==0 && i--);
}
void delay(long int i)
{
while(i--);
}
//------------------------------------------------------------------
키워드
추천자료
- (결과) 멀티미터 & 직류전원공급기
- 직류전원공급기사용법 실험 세미나자료
- 전자전기실험 - 실험 2 예비보고서 [전원내부저항, 전압안정 직류전원, DMM의 내부저항]
- 교류 전원 및 전력
- 직류전원 공급기 사용법
- DCPOWERSUPPLY(직류전원공급기)에 대해서
- NO.1 (만세터널) 예비전원의 개요
- 콘덴서 유도전동기 사전보고서 (콘덴서 기동 유도 전동기의 기동 및 운전, 콘덴서 운전 유도 ...
- 4. 전류계, 전압계 및 전원장치의 사용법
- [소방학] 비상방송설비의 배선, 전원, 경보방식에 대하여
- SMPS 교육 Flyback Converter[스위칭모드전원공급기 자려식 플라이백 컨버터]
- [실험예비]레포트 계측장비 및 교류전원의 접지상태의 측정방법 설계-실험예비레포트6