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

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

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

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

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

BASIC4MCU > 질문게시판

코딩질문입니다.

페이지 정보

작성자 ibis 작성일18-10-10 10:22 조회1,119회 댓글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

조회수 : 1,119

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
공지 사이트 이용 안내 댓글[10] master  17-10-29
공지 [무료 공개] 소스코드 하이라이트 v2.0 beta [… 댓글[1] 첨부파일master  18-01-23
질문 두더지 정리본입니다. 아두이노배우기 새글 20-02-28
답변 답변 : 두더지 정리본입니다. master 새글 20-02-28
답변 답변 : 답변 : 두더지 정리본(늦은시간에 죄송합니다.… 아두이노배우기 새글 01:52
답변 답변 : 답변 : 답변 : 두더지 정리본(늦은시간에 죄… master 새글 08:19
답변 답변 : 답변 : 답변 : 답변 : 두더지 정리본(늦은… 댓글[3] 아두이노배우기 새글 16:09
질문 아두이노 두더지 잡기 아두이노배우기  20-02-27
답변 답변 : 아두이노 두더지 잡기 댓글[1] master  20-02-27
질문 아두이노+스텝모터+L298N 질문드립니다. 첨부파일빈군  20-02-27
답변 답변 : 아두이노+스텝모터+L298N 질문드립니다. 댓글[3] master  20-02-27
질문 STM32 MCU DFSDM기능 문의 댓글[1] 첨부파일Hongchoon  20-02-26
질문 DC모터 제어중 부저 추가 댓글[2] 아두이노배우기  20-02-25
질문 적외선 DC모터 제어 아두이노배우기  20-02-25
답변 답변 : 적외선 DC모터 제어 댓글[1] master  20-02-25
질문 아두이노 IDE (ino파일) 로 업로드 하면 작동되는… 댓글[1] 첨부파일이츠라  20-02-25
질문 atmega128 while 속 if문 실행 문제 이동욱  20-02-24
답변 답변 : atmega128 while 속 if문 실행 … master  20-02-24
질문 Limit Sensor 를 이용한 LED의 자동 작동에… 첨부파일아두이프로  20-02-24
답변 답변 : Limit Sensor 를 이용한 LED의 자… 댓글[1] master  20-02-24
질문 HC-11을 이용하여 1:N 통신중입니다. 댓글[4] 아두이노배우기  20-02-23
질문 스텝모터 정지 댓글[2] 아두이노배우기  20-02-23
답변 답변 : 스텝모터 정지 댓글[2] master  20-02-23
질문 정말 감사합니다. 박취  20-02-19
질문 ov9655카메라와 stm32f4 보드를 이용한 영상처… 댓글[7] flap  20-02-19
질문 GLCD 텍스트 출력 댓글[2] 전자학습자  20-02-17
질문 아두이노 HC-11 통신관련입니다. 아두이노배우기  20-02-15
답변 답변 : 아두이노 HC-11 통신관련입니다. master  20-02-16
답변 답변 : 답변 : 아두이노 HC-11 통신관련입니다. 아두이노배우기  20-02-16
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전