질문게시판 > 답변 : 아두이노와 초음파 센서로 모터 제어 코드 질문있습니다.

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

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

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

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

BASIC4MCU > 질문게시판

답변 : 아두이노와 초음파 센서로 모터 제어 코드 질문있습니다.

페이지 정보

작성자 master 작성일22-12-07 17:00 조회495회 댓글1건

본문

int trig=3,echo=4;

//

unsigned long duration,distance;

//

#define FORWARD  1  // 모터 정방향

#define BACKWARD 2  // 모터 역방향

#define RELEASE  3  // 모터 정지

 

int enablePin=5,motorPin1=7,motorPin2=6,motorPin3=9,motorPin4=8;

//

void setup(){

  Serial.begin(9600);

  // 초음파 인풋

  pinMode(trig,OUTPUT); pinMode(echo,INPUT);

  // 모터 인풋

  pinMode(enablePin,OUTPUT); digitalWrite(enablePin,1);

  pinMode(motorPin1,OUTPUT); pinMode(motorPin2,OUTPUT);

  pinMode(motorPin3,OUTPUT); pinMode(motorPin4,OUTPUT);

  motorMove(RELEASE);

}

//

void loop(){

  digitalWrite(trig,1); delayMicroseconds(10); digitalWrite(trig,0);

  long duration=pulseIn(echo,1);

  long distance=(duration*340)/2/10000;

  //

  if(distance>50){  // 50cm 이상 // 물제가 감지 안되었을때 0, 멈춰있다가

    digitalWrite(motorPin1,0); digitalWrite(motorPin2,0); // 왼쪽은 정지

    digitalWrite(motorPin3,0); digitalWrite(motorPin4,0); // 오른쪽은 정지

  }

  else if(distance>30){  // 30~50cm // 50 cm 앞에 물체가 감지 되었을때 왼쪽 작동

    digitalWrite(motorPin1,1); digitalWrite(motorPin2,0); // 왼쪽은 정회전

    digitalWrite(motorPin3,0); digitalWrite(motorPin4,0); // 오른쪽은 정지

  }

  else if(distance>10){  // 10~30cm // 30cm 앞에 물체가 감지 되었을때 오른쪽 작동

    digitalWrite(motorPin1,0); digitalWrite(motorPin2,0); // 왼쪽은 정지

    digitalWrite(motorPin3,1); digitalWrite(motorPin4,0); // 오른쪽은 정회전

  }

  else{ // 0~10cm // 10cm 앞에 물체가 왔을때 둘다 돌아가는

    digitalWrite(motorPin1,1); digitalWrite(motorPin2,0); // 왼쪽 정회전

    digitalWrite(motorPin3,1); digitalWrite(motorPin4,0); // 오른쪽 정회전

  }

}

//

void motorMove(int key){

  switch(key){

    case 1:

      digitalWrite(motorPin1,1); digitalWrite(motorPin2,0);

      digitalWrite(motorPin3,1); digitalWrite(motorPin4,0);

      break;

    case 2:

      digitalWrite(motorPin1,0); digitalWrite(motorPin2,1);

      digitalWrite(motorPin3,0); digitalWrite(motorPin4,1);

      break;

    case 3:

      digitalWrite(motorPin1,1); digitalWrite(motorPin2,1);

      digitalWrite(motorPin3,1); digitalWrite(motorPin4,1);

      break;

  }  

}

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

댓글 : 1

조회수 : 495

blackbunn님의 댓글

blackbunn 작성일

도와주셔서 감사합니다

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[28] master  17-10-29
질문 아두이노 코딩 질문 첨부파일pmh11 새글 23-04-01
질문 라즈베리 파이 질문 댓글[1] rasp 새글 23-03-31
질문 아두이노 코드관련 질문 댓글[1] 왕초봉 새글 23-03-31
질문 아두이노 led 부저 스위치 김똘  23-03-30
답변 답변 : 아두이노 led 부저 스위치 댓글[4] master  23-03-30
질문 아두이노 근접센서 2개 연결 질문 댓글[1] 김민종  23-03-29
질문 아두이노 코딩 에러 질문 댓글[1] 첨부파일박무농  23-03-25
질문 아두이노를 이용한 타이머, 태양전지 제어 댓글[2] 박무농  23-03-25
질문 sd카드 이미지 전송 댓글[2] 던지기마스터  23-03-24
질문 초음파센서를 이용한 모터제어 질문있습니다. 댓글[3] 첨부파일뉴비에오  23-03-24
질문 부품 관련 문의 댓글[1] 타코  23-03-23
질문 모터 작동 시, 일부 모듈이 꺼지는 현상에 대해 질문드… 그렇찌  23-03-22
답변 답변 : 모터 작동 시, 일부 모듈이 꺼지는 현상에 대… master  23-03-23
질문 ESP로 원격 모터제어를 할 수 있나용? 댓글[1] 비차  23-03-22
질문 HC06을 마스터로 설정하면 HC06끼리만 통신되나요? 댓글[4] 비차  23-03-21
질문 아두이노 제어하기 댓글[3] 매드닥터  23-03-19
질문 atmega128 압력센서 관련 질문입니다 댓글[1] 공린이  23-03-19
질문 아두이노 스텝모터 각도제어 질문 댓글[3] master  23-03-17
질문 아두이노와 파이썬(중점좌표) 시리얼 통신 질문드립니다. 댓글[1] 첨부파일아두이노어렵잖아  23-03-16
질문 아두이노 3LED 버튼 관련 질문 댓글[1] 이츤  23-03-16
질문 ATmega328p로 pca9685를 이용하여 서보모터… 댓글[1] 첨부파일토비  23-03-15
질문 hm-10 다중연결 질문있습니다. 댓글[1] 첨부파일뉴비에오  23-03-14
질문 while loop 실행 속도 댓글[1] 412904  23-03-12
질문 AND 연산 질문드립니다. 댓글[1] 412904  23-03-11
질문 아두이노 테트리스 게임 댓글[1] 첨부파일지욱애  23-03-02
질문 아두이노우노 블루투스 2개 연결 댓글[1] dsfadfs  23-02-28
질문 스텝모터 코딩 질문입니다.. 댓글[2] 무야더싱  23-02-25
질문 아두이노 나노33 IOT 의 BLE 연결 문제 가루밀  23-02-24
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전