Page 584 - 2
P. 584
나. ATmega128 에서 데이터 처리를 위한 프로그램 소스
1) RC 카 <-----------------------------------------------
#include <mega128.h>
#include <delay.h>
// 로봇청소기
#define cleaner_on PORTB.4 = 0, PORTB.5 = 1;
#define cleaner_off PORTB.4 = 0, PORTB.5 = 0;
#define led_output PORTB.6
// 먹이 ON/OFF
#define servo PORTB.7
// 바퀴
#define stop PORTC.0 = 0, PORTC.1 = 0 , PORTC.2 = 0, PORTC.3 = 0;
#define go PORTC.0 = 0, PORTC.1 = 1 , PORTC.2 = 0, PORTC.3 = 1;
#define back PORTC.0 = 1, PORTC.1 = 0, PORTC.2 = 1, PORTC.3 = 0;
#define left PORTC.0 = 1, PORTC.1 = 0, PORTC.2 = 0, PORTC.3 = 1;
#define right PORTC.0 = 0, PORTC.1 = 1, PORTC.2 = 1, PORTC.3 = 0;
// 초음파 센서
#define ECHO PORTD.0
#define TRIG PORTD.1
unsigned int sense = 0; // 청소기 작동 중 장애물이 있을 때 sense 에 1 을 넣어서 청소기 관리
unsigned int sonic_timer, dist = 16, flag; // 초음파 센서
unsigned char word; // RC 카 작동
unsigned int time;
void servo_motor(void) // 먹이통 열림 닫힘 제어,
{
for(time=0;time<=10;time++) // 열린 상태
{
servo = 1; delay_us(1000);
servo = 0; delay_ms(20);
}
for(time=0;time<=10;time++) // 닫은 상태
{
servo = 1; delay_us(625);
servo = 0; delay_ms(20);
}
}
- 584 -