Page 585 - 2
P. 585
void clean_up_on(void) // 로봇청소기 ON
{
cleaner_on; // 청소기 모터 ON
go; // 전진
led_output=1; //LED ON 으로 청소기가 켜졌음을 알림
if(sense==1) // 초음파 센서로부터 sense 에 1 이 넣어지면 실행
{
back; // 뒤로 0.5 초
delay_ms(500);
right; // 오른쪽으로 0.5 초
delay_ms(500);
sense = 0; //sense 에 0 을 넣어서 청소기 정상 작동
}
go; // 전진
}
void clean_up_off(void) // 로봇청소기 OFF
{
cleaner_off; // 청소기 모터OFF
stop; // 멈춤
led_output=0; //LED OFF
}
void sonic_pulse(void) // 초음파센서 제어
{
TRIG=1;
delay_us(10);
TRIG=0;
}
void sense_obstacle(void)
{
dist=sonic_timer;
if (dist<10) sense=1;
// 초음파 센서 10cm 범위 안에 장애물이 있으면 sense 에 1 을 넣어줌
else if (dist<30) { led_output=1; delay_ms(50); led_output=0; delay_ms(50); }
// 초음파 센서 30cm 범위 안에 장애물이 있으면 LED 가 켜졌다 꺼졌다 반복,
delay_ms(20);
}
interrupt [TIM0_OVF] void pulse_timer(void)
{
sonic_timer++; // 초음파센서 제어
}
interrupt [EXT_INT0] void call_TC(void) // 초음파센서에 장애물이 감지되면 초음파센서를 ON/OFF 하
며 거리 감지
{
- 585 -