BASIC4MCU | 질문게시판 | Atmega128 서보모터 제어
페이지 정보
작성자 rarety 작성일2019-06-07 13:32 조회4,973회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=9253
본문
안녕하세요 학교 수업 작품 으로 도어락을 만들던 중 서보모터 동작을 알아보려고 검색을 시도하다가 master님의 소스글
#define F_CPU 16000000L#include <avr/io.h>#include <util/delay.h>//void sv1(int a){ OCR1A=a*19+3000; } // PB5 // a=-90~+90void sv2(int a){ OCR1B=a*19+3000; } // PB6void sv3(int a){ OCR1C=a*19+3000; } // PB7void sv4(int a){ OCR3A=a*19+3000; } // PE3 // a=-90~+90void sv5(int a){ OCR3B=a*19+3000; } // PE4void sv6(int a){ OCR3C=a*19+3000; } // PE5//int main(void){DDRB=0xE0; //OC1A,B,C 출력DDRE=0x38; //OC3A,B,C 출력OCR1A=OCR1B=OCR1C=3000; TCCR1A=0xAA; TCCR1B=0x1A; ICR1=39999;OCR3A=OCR3B=OCR3C=3000; TCCR3A=0xAA; TCCR3B=0x1A; ICR3=39999;while(1){if((PINA&2)){sv1( 0); sv2( 45); sv3( 90); sv4( 0); sv5( 45); sv6( 90); _delay_ms(3000);sv1( 45); sv2( 90); sv3( 45); sv4( 45); sv5( 90); sv6( 45); _delay_ms(3000);sv1( 90); sv2( 45); sv3( 0); sv4( 90); sv5( 45); sv6( 0); _delay_ms(3000);sv1( 45); sv2( 0); sv3(-45); sv4( 45); sv5( 0); sv6(-45); _delay_ms(3000);sv1( 0); sv2(-45); sv3(-90); sv4( 0); sv5(-45); sv6(-90); _delay_ms(3000);sv1(-45); sv2(-90); sv3(-45); sv4(-45); sv5(-90); sv6(-45); _delay_ms(3000);sv1(-90); sv2(-45); sv3( 0); sv4(-90); sv5(-45); sv6( 0); _delay_ms(3000);sv1(-45); sv2( 0); sv3( 45); sv4(-45); sv5( 0); sv6( 45); _delay_ms(3000);}}}이걸 참고로 서보모터 동작을 할려고 합니다 저희가 사용하는 서보모터는 MG945 모델의 서보모터인데요 서보모터에서 나오는 배선 3개중에 2개는 각각 +,-에 남은 하나는 PB5~7 PE3~5 에 연결해서 동작을 해볼려고 했지만 모터가 동작을 하지 않아 이렇게 질문을 남기게 되었습니다 혹시 모델이 달라서 그런건지 아니면 다른 어떤 문제가 있는지 잘 모르겠습니다 ㅠㅠ 도와주세요
댓글 1
조회수 4,973master님의 댓글
master 작성일
PA1이 스위치인가요?
풀다운 저항을 외부에 부착하는 방식으로 회로를 구성해야합니다.
//
서보모터 소모전류가 상당히 큽니다.
외부 5V 3A 아답터를 사용하세요
전류가 부족하면 아답터 2개를 사용해서 3개씩 나누어서 전원을 공급해주면 됩니다.
아답터와 AVR의 GND는 모두 연결합니다.