질문게시판 > 센서로 서보모터 컨트롤

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

센서로 서보모터 컨트롤

페이지 정보

작성자 Winavr 작성일18-12-05 12:16 조회8,094회 댓글3건

첨부파일

본문

#include <avr/io.h>

#include <avr/interrupt.h>

//

void RC_Motor(int angle){

    OCR1A=angle*18+3000; //PB5

}

//

ISR(TIMER0_COMP_vect){

    static char mode1=0,mode2=0; static int count1=0,count2=0; float f,S;

    if(ADMUX==0x41){

        f=ADCW; f=f*5.001/1024.0; ADMUX=0x42; // 전압으로 변환

        if(mode1==0){ // 물이 찰 때까지 펌프 구동

            if(f<1.00){ PORTE=0x04;                       } // 펌프 정회전 시켜서 물을 채움

            else      { PORTE=0x00; mode1=1; count1=1500; } // 물이 차면 모터 정지,mode=1,3초 설정

        }

        else if(mode1==1){ // count1 감소하면서 대기

            if(count1){

                if(--count1==0)mode1=2;

            }

        }

        else if(mode1==2){ // 물이 빠질 때까지 대기

            if(f>=0.5){ PORTE=0x10;                       } // 펌프 역회전 시켜서 물을 뺌

            else      { PORTE=0x00; mode1=3; count1=1500; } // 물이 빠지면 모터 정지,mode=3,3초 설정

        }

        else{ // mode1=3 // count1 감소하면서 대기

            if(count1){

                if(--count1==0)mode1=0; // 다시 처음으로

            }

        }

    }

    else{ // (ADMUX==0x42)

        S=ADCW; S=S*5.001/1024.0; ADMUX=0x41;

        if(mode2==0){

          if(S>1.00){ RC_Motor(30);                       } //감지가 안되면 5V가 출력이 되므로 서보모터 작동

          else      { RC_Motor(0); count2=3000; mode2=1; } //감지가 되면 서보모터 동작 중지 및 3초 대기

        }

        if(mode2==1){

             if(count2){

                if(--count2==0)mode2=0;

            }

        }

    }

}

//

int main(void){

    DDRE=0xFF;

    DDRB=0x20;   // PB5 out

    TCCR1A=0x82; TCCR1B=0x1A; OCR1A=2999; ICR1=39999;

    TCCR0=0x0D;  OCR0=124;    TIMSK=2;

    ADMUX=0x41;  ADCSRA=0xE7;

    sei();

    while(1);

}

 

센서는 감지가 안되면 5V가 나옵니다. 그리고 감지가 되면 바로 0.2V정도로 낮아집니다.

ADC핀 역시 센서를 F2번에, 모터를 B5번에 연결하였습니다...

 

첨부파일에 부친 코드를 그대로 실행하면 작동이 90~-90으로만 계속 돌아갑니다.

그래서 그대로 적용시켜서 RC_Motor(각도) 의 값에서 각도를 조절하거나

OCR1A, ICR!을 바꿔도 아예 멈추거나 그냥 반대로 돌아가기만 합니다....

서보모터인데 왜 DC모터 마냥 돌아가는지....

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 3

조회수 : 8,094

master님의 댓글

master 작성일

서보모터 모양의 DC모터도 있습니다.(일반 DC모터처럼 2선 이므로 이 모터는 아닐테고)
//
바퀴형 서보모터는 0도(1500us)에서 멈추고,
+쪽으로 일정각도 이상이면 +로 무한회전
-쪽으로 일정각도 이상이면 -로 무한회전 합니다.
모터 모델명으로 검색해서 바퀴형 서보모터인지 체크하세요

Winavr님의 댓글

Winavr 댓글의 댓글작성일

MG996R인데 바퀴형이 맞는거 같습니다. 그럼 모터를 바꿔야 하나요?

master님의 댓글

master 댓글의 댓글작성일

본인이 판단할 수 있는 문제 아닌가요?

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[28] master  17-10-29
질문 아두이노 lcd 디지털시계 (도와주시면 감사하겠습니다!… 첨부파일김리 새글 05:43
질문 아두이노 디지털 시계 첨부파일1233 새글 02:03
질문 dfplayer 블루투스 연결 앱인벤터 첨부파일아두이노우 새글 01:28
질문 아두이노 LCD 글자 출력질문입니다. Tell 새글 23-06-10
답변 답변 : 아두이노 LCD 글자 출력질문입니다. master 새글 23-06-10
질문 아두이노 delay함수를 millis함수로 대체하는방법 댓글[1] 첨부파일이게아닌데 새글 23-06-09
답변 답변 : 아두이노 delay함수를 millis함수로 대… master 새글 23-06-09
질문 atmega128 적외선센서 관련질문입니다. 댓글[7] 춘배  23-06-08
질문 아두이노 whillis 함수 delay처럼 사용하는방법… 댓글[1] 이게아닌데  23-06-08
질문 아두이노 로드셀 질문 댓글[3] 첨부파일아두이노노노논  23-06-08
질문 아트메가 128 DHT22온도센서 댓글[1] tmet  23-06-08
질문 압력센서에 따른 진동모터를 버튼으로 제어 회로도 질문 도와주세용용  23-06-07
질문 아두이노 리니어 제어 모듈 설계중입니다. 도와주세요 갓비타  23-06-06
답변 답변 : 아두이노 리니어 제어 모듈 설계중입니다. 도와… master  23-06-07
질문 dc모터 제어 관련 질문 드려요 ㅠㅠ!! 댓글[2] dpwl  23-06-06
답변 답변 : dc모터 제어 관련 질문 드려요 ㅠㅠ!! master  23-06-07
질문 pixy2 cam 을 이용한 색상인식 모터 제어 댓글[1] 가나다라  23-06-05
질문 안녕하세요 제품 품목 이름에 대해서 궁금합니다. 첨부파일알려주시면감사합니다  23-06-05
질문 Atmega128 온도센서로 led제어 질문드려요 댓글[1] 첨부파일얍얍  23-06-05
질문 아구이노 코드를 atmega 128 코드로 변환 하고 … 댓글[1] 기로롱  23-06-05
질문 atmega128 uart 질문입니다. 댓글[1] bme12  23-06-05
질문 라즈베리파이에 풀 프레임 이미지센서 활용에 대한 질문이… 댓글[1] 첨부파일KYLO  23-06-04
질문 아두이노 시리얼 번호를 이용해 led 제어 wnion  23-06-04
답변 답변 : 아두이노 시리얼 번호를 이용해 led 제어 master  23-06-07
질문 ATMEGA128 혹시 여기서 왜 인터럽트 기능이 안되… 댓글[1] IEEE  23-06-04
질문 stm32f767을 이용해서 자이로가속도 센서의 값 받… 댓글[1] rlchwjswk  23-06-03
질문 아두이노 모터제어 관련해서 질문드립니다! 댓글[1] 첨부파일아두이노어렵잖아  23-06-03
질문 atmega128 디지털조도센서 코드오류 댓글[1] 까미  23-06-02
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전