게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
서보 모터 코딩문제
게시물ID : programmer_10825짧은주소 복사하기
작성자 : 그래여
추천 : 0
조회수 : 475회
댓글수 : 3개
등록시간 : 2015/06/04 11:42:17
옵션
  • 본인삭제금지

#include <avr/io.h> //16MHz
#define  F_CPU 16000000UL  // 16 MHz
#include <util/delay.h>
#include"ATmega128_v20m.h"
#define DEBOUNCING_DELAY 20

void RC_Motor(int angle){ // angle : -90도 ~ +90도
    int i;
    if(angle<-90)angle=-90;
    if(angle> 90)angle= 90;
    i=(angle)*18 + 3000;
    OCR3A=i; //PB5
    OCR3B=i; //PB6
}
int angle=0;


int main(void){


MCU_initialize();
Delay_ms(50);
LCD_initialize();

int floor = 3;

PORTE = 0x00;
PORTB = 0x00;
DDRB = 0x00;
    //RC서보모터
    DDRE=0x18;   // PB5,6 out
    TCCR3A=0xAA; // FAST PWM
    TCCR3B=0x1A; // 8분주=0.5usec
    OCR3A=3000;  // 1500usec=0도
    OCR3B=3000;  // 1500usec=0도
    ICR3=47999;  // 0.5usec*48000=24000usec=41.67Hz
   
    while(1){


if((PINB&0x08)==0){ 
        if(angle>-90){
            angle--;
            RC_Motor(angle); ;
        }

LCD_string(0xc3, "CLOSE DOOR");
Delay_ms(1000);
LCD_initialize();
    }
}
}


구현하고 싶은 방식은 4번 스위치를 누르면 서보모터가 -90까지 가며 lcd에는 close door이 뜨게 하는 방법입니다..

위의 소스대로 작성하고 실행하여 봤는데 lcd에 close door만 뜨며 서보모터는 동작하지 않고, 
LCD_string(0xc3, "CLOSE DOOR");
Delay_ms(1000);
LCD_initialize();
문을 지우고 사용하였을때는 서보모터가 동작을 -90까지 정상동작합니다...

이 두가지 동작에서 소스가 어떻게 잘못된건지 전혀 몰라서 질문드립니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호