질문게시판 > 코딩질문입니다.

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

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

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

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

BASIC4MCU > 질문게시판

코딩질문입니다.

페이지 정보

작성자 ibis 작성일18-10-10 10:22 조회715회 댓글2건

본문

#include <Servo.h>
Servo hiServo;
//
float duration,distance;
int i,pos=0;
//
void sonic(){
  digitalWrite(10,HIGH); delayMicroseconds(10); digitalWrite(10,LOW);
  duration=pulseIn(9,HIGH); distance=duration/58.2;
  Serial.println(distance);
}
//
void setup(){
  pinMode(10,OUTPUT); //trig
  pinMode(9,INPUT); //echo
  hiServo.attach(3); //servo
  Serial.begin(9600);
}
//
void loop(){
  int s=pos/180;
  sonic();
  while(distance<15){ //distance<15cm
    sonic();
    pos=pos+1;
    if     (s==2){ pos=0; }
    else if(s==0){ i=pos;     hiServo.write(i); delay(30); }
    else         { i=360-poshiServo.write(i); delay(30); }
  }
}


코드제작 목적은 서보모터가 회전하다가 초음파센서에 일정 거리안에 물체가 있으면 서보모터가 정지하는 동작을 하게 하려고 합니다.

일단 while구문을 사용해서 서보모터가 한방향으로 회전하게 하려고 합니다
(ex 천천히 반시계로 돌다가 한계에 달하면 빠르게 시계방향으로 간 뒤 다시 반시계 회전)


일단 제가 올린 구문은 반시계로 천천히 가다 다시 시계로 천천히 가는 양방향 회전인데

어떻게 수정해야될지 모르겠네요,,,
  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 2

조회수 : 715

ibis님의 댓글

ibis 작성일

루프구문을
void loop(){
  int s=pos/180;
  sonic();
  while(distance>15)
  { //distance>15cm
    sonic();
    if(i>179)
    {
      i=i-179;
      hiServo.write(i);
    }
    else   
    {
    hiServo.write(i);
    }
    i++;
    delay(50);
  }
    hiServo.write(i);
    delay(100);
}

바꿔서 동작은 제대로 하는듯한데  코드상 다른 문제점은 없겠죠??

master님의 댓글

master 댓글의 댓글작성일

바퀴용 서보모터가 아니고 0~180도의 일반 서보모터군요?
//
#include <Servo.h>
Servo hiServo;
//
float distance;
int pos=0;
//
void setup(){
  pinMode(10,OUTPUT); //trig
  pinMode(9,INPUT);  //echo
  hiServo.attach(3);  //servo
  Serial.begin(9600);
  hiServo.write(pos);
}
//
void loop(){
  digitalWrite(10,HIGH); delayMicroseconds(10); digitalWrite(10,LOW);
  distance=pulseIn(9,HIGH)/58.2;
  Serial.println(distance);
  //
  if(distance>15){ //distance>15cm
    if(pos<180){ pos++; }
    else      { pos=0; delay(800); } // 빠르게 원점 이동

    }
  }
  hiServo.write(pos);
  delay(100);
}

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[9] master  17-10-29
공지 [무료 공개] 소스코드 하이라이트 v2.0 beta [… 댓글[1] 첨부파일master  18-01-23
질문 혹여나 습도값을 슬라이더로 바꿀 수 있을까요? 댓글[2] 첨부파일푸링이  19-09-16
질문 아두이노 포크레인 중 스텝모터질문 댓글[1] 노은우  19-09-16
질문 아트메가 댓글[2] 전자어렵  19-09-16
답변 답변 : 아트메가 master 새글 09:36
질문 도와주세요 ㅠㅠ 댓글[1] 민서가또  19-09-16
질문 아두이노 if문 실행문제 댓글[1] 첨부파일sun0100  19-09-16
질문 아트메가128 댓글[2] 전자어렵  19-09-15
답변 답변 : 아트메가128 댓글[4] master  19-09-15
질문 아두이노 IR센서 코딩질문입니다 댓글[2] rkskek  19-09-15
질문 아두이노 외부전원 질문드립니다! 댓글[2] 빵빵판  19-09-15
질문 Timer1_CTC 연습중인데요.. 댓글[4] 초짜  19-09-13
질문 안녕하세요, 인터페이스까지는 완료했습니다 ! 댓글[12] 첨부파일푸링이  19-09-12
질문 아래 앱인벤터 글에 이어서.. 댓글[1] 첨부파일푸링이  19-09-11
질문 memcmpf 질문이요 댓글[2] 초짜  19-09-10
질문 아두이노 네오픽셀 질문드립니다. 댓글[1] 호기심왕  19-09-10
질문 앱인벤터를 통해 스텝모터를 습도조건에 따라 움직이게 하… 댓글[5] 푸링이  19-09-10
질문 atmega128 의 PWM 모드 질문이요 댓글[6] 초짜  19-09-06
질문 아두이노 서보모터 제어문제입니다 ㅠ 댓글[3] 첨부파일졸업좀시켜줘요  19-09-05
질문 코딩질문이므니다.. 댓글[1] 첨부파일베이식  19-09-04
질문 아두이노 Oscillator.h 라이브러리 다운 하는법 댓글[1] bbhu  19-09-02
질문 atmega128a 질문이요 댓글[1] 초짜  19-08-30
질문 아두이노 이전 고분해능 엔코더 질문에 추가 궁금점이 있… 댓글[1] 첨부파일모터무  19-08-30
질문 스크래치X로 아두이노 제어 댓글[1] 승희엄마  19-08-29
질문 아두이노 세븐 세그먼트 제어 전전전전  19-08-29
답변 답변 : 아두이노 세븐 세그먼트 제어 master  19-08-29
질문 아두이노 모터제어 댓글[1] 오토의반란  19-08-29
질문 atmega128을 배우고 싶은 고등학생입니다. 고딩  19-08-28
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전