BASIC4MCU | 질문게시판 | atmega128 서보모터3개연결
페이지 정보
작성자 로봇 작성일2018-12-08 14:25 조회8,619회 댓글3건본문
서보모터 3개를 한번에 구동시키고 싶어서 연결도 다했고 코드도 다있는데
모터 2개만 움직오고 나머지 한개가 움직이질 않습니다.
자리를 바꿔봐도 다른하나만 안되서 모터고장은 아닌것같아요..
전력 맞출려고 aaa베터리 4개짜리 홀더 두개도 더연결했구요
코드에맞게 pin연결도 했고 breadboard에 +-도 연결해서 atmega로 모아서 옮겨줬어요
왜안될까요..
코드입니다
#define F_CPU 16000000L
#include <avr/io.h>
#include <util/delay.h>
//
void sv1(int a){ OCR3A=a*19+3000; } // a = -90 ~ +90
void sv2(int a){ OCR3B=a*19+3000; }
void sv3(int a){ OCR3C=a*19+3000; }
//
int main(void){
DDRE=0x38; //OC3A,B,C 출력
OCR1A=OCR1B=OCR1C=3000; TCCR3A=0xAA; TCCR3B=0x1A; ICR3=39999;
while(1){
if((PINA&2)){
sv1( 0); sv2( 45); sv3( 90); _delay_ms(3000);
sv1( 45); sv2( 90); sv3( 45); _delay_ms(3000);
sv1( 90); sv2( 45); sv3( 0); _delay_ms(3000);
sv1( 45); sv2( 0); sv3(-45); _delay_ms(3000);
sv1( 0); sv2(-45); sv3(-90); _delay_ms(3000);
sv1(-45); sv2(-90); sv3(-45); _delay_ms(3000);
sv1(-90); sv2(-45); sv3( 0); _delay_ms(3000);
sv1(-45); sv2( 0); sv3( 45); _delay_ms(3000);
}
}
}
댓글 3
조회수 8,619master님의 댓글
master 작성일
OCR3A=OCR3B=OCR3C=3000; TCCR3A=0xAA; TCCR3B=0x1A; ICR3=39999;
로봇님의 댓글
로봇 작성일위의 코드로 바꿔봤는데도 똑같아요...ㅜㅠㅠㅠㅠㅠ
master님의 댓글
master
엉뚱한 핀에 꼽거나
핀이 고장난 것이 아닌가요?