뉴티씨



  • HOME
  • 고객지원
  • 질문답변

 

 
am-cd2l-v01 모터 드라이버 관련 입니다.
 글쓴이 : 관리자
작성일 : 17-12-12 19:52
조회 : 2,040  
   http://cafe.naver.com/carroty/297457 [812]
안녕하세요? 고객님,
저희 뉴티씨를 이용해 주셔서 감사합니다.

질문하신 내용을 찬찬히 보았는데, 열정이 대단하고 접근 방법이 매우 정확하고 잘하셨습니다.

다만, PORTB의 PB2와 PB3을 쓰고 계시므로 아래1 부분이 잘못되었습니다.  아래2와 같이 변경바랍니다.
가능하면 PORTC를 사용해 주세요.  PORTB에는 ISP의 신호들이 있어서 간섭될수 있습니다.
-아래 1-
#define MOTOR_CW 0x80
#define MOTOR_CCW 0x40

-아래 2-
#define MOTOR_CW 0x08
#define MOTOR_CCW 0x04

감사합니다.

>
>
> 일단 그림 한장으로 설명 드리겠습니다.
> 오른쪽 위의 파란색 검은색 점프선부터 시작합니다.
> 검은색은 그라운드, 파란색은 vcc입니다.
> 그리고 이 두 선은 AM-CD2L-VO1의 포트연결커넥터(J951) 맨오른쪽 9,10번 핀에 꼽혀있습니다.
> 그 왼쪽 3,4번 핀에는 atmega128의 PB6(노란색),PB7(초록색)와 연결해주는 선이 있습니다.
> 이제 마지막으로 모터는 모터 드라이버 오른쪽의 모터 커넥터에 연결되어있구요.
>
> 그림 첨부 합니다.
>
> 그리고 소스입니다.
> #include <avr/io.h>
> #define F_CPU 16000000UL
> #include <util/delay.h>
> #define MOTOR_CW 0x80
> #define MOTOR_CCW 0x40
> #define MOTOR_STOP1 0x00
> #define MOTOR_STOP2 0x11
>
>
> void delay_sec(int sec)
> {
>    int i;
>    for(i=0; i<1000*sec; i++)
>      _delay_ms(1);
> }
>
> int main(void)
> {
>  DDRB = 0xff;
>  while(1)
>  {
>  PORTB = MOTOR_CW;
>  delay_sec(3);
>
>  PORTB = MOTOR_CCW;
>  delay_sec(6);
>
>  }
> }
>
> 제 생각엔 아무런 문제가 없기에 당연하게
> 모터가 돌아야하는데 안돌아가네요.....
> 여러가지 시도해봤는데도 안됩니다 후 ㅡㅡ..
>
> 뭐가 문제일까요 ㅠㅠ...
>
> +
> 링크에 있는 글은 최초시도때 했던 부분입니다. 저렇게 했는데도 안되더군요..
>

 
   
 

 


1