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 -
   580   581   582   583   584   585   586   587   588   589   590