질문게시판 > (초보)초음파센서 시니얼모니터에 0cm라고 뜹니다

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

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

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

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

BASIC4MCU > 질문게시판

(초보)초음파센서 시니얼모니터에 0cm라고 뜹니다

페이지 정보

작성자 살려줘 작성일18-12-19 23:02 조회8,668회 댓글0건

본문

초음파 센서를 이용하여, 일정한 거리를 두고 아두이노를 배치한 뒤 기존에 배치한 센서의 거리가 믈체가 지나감으로써 

기존 거리가 변경될 때마다 카운트하여 수를 세는 프로그램을 만들고 있습니다

그런데 시니얼모니터에 0cm라고만 나오네요...

계속 방법을 찾아보지만 안되서 질문게시판에 올려봅니다

꼭 해결방안이 필요한데 도움 주시면 정말 감사하겠습니다

 

<코드>

 

int echo_i = digitalRead(A1); //수신

int trig_i = digitalRead(A2); //발신

int echo_o = digitalRead(A3); 

int trig_o = digitalRead(A4);

 

int dipin[] = {10,11,12,13};

int segment[] = {2,3,4,5,6,7,8,9}; //a,b,c,d,e,f,g,dp순

byte didata [10] = {0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE4,0xFE,0xE6};

 

int cnt = 0;

  

unsigned long duration_i;

unsigned long duration_o;

float distance_i;

float distance_o;

 

 

void setup()

{

  Serial.begin(9600);

  pinMode(echo_i, INPUT);

  pinMode(trig_i, OUTPUT);

  pinMode(echo_o, INPUT);

  pinMode(trig_o, OUTPUT);

  for (int i=0; i<8; i++){

    pinMode(segment[i], OUTPUT);}

  for (int i=0; i<4; i++){

    pinMode(dipin[i], OUTPUT);}

  }

   

 

void show_dipin(int position, int number) {

  //4자리 중 원하는 자리 선택

  for(int i = 0; i < 4; i++) {

    if(i + 1 == position){

      digitalWrite(dipin[i], LOW);

    } else {

      digitalWrite(dipin[i], HIGH);

    }

  }

 

  //8개 세그먼트를 제어해서 원하는 숫자 출력

  for(int i = 0; i < 8; i++){

     byte segment_data = (didata[number] & (0x01 << i)) >> i;

     if(segment_data == 1){

       digitalWrite(segment[7 - i], HIGH);

     } else {

       digitalWrite(segment[7 - i], LOW);

     }

  }

}

void loop()

{

  digitalWrite(trig_i,LOW); //찾아보니 오류 발생 방지로 추가

  delay(2);

  digitalWrite(trig_i,HIGH); //신호 보냄

  delay(10);//보낸상태 1/100초 정도 유지

  digitalWrite(trig_i,LOW); //보내지 않음

  

  duration_i = pulseIn(echo_i,HIGH); //신호 수신값

  distance_i = ((float)34000*duration_i / 1000000); //cm의 거리단위로 변경

  

  Serial.print(distance_i); //값 출력 / 프로그램엔 필요없지만 제작과정에서 올바른 값이 나오는지 확인하기 위해 필요

  Serial.println("cm/in"); // 프로그램엔 필요없지만 제작과정에서 올바른 값이 나오는지 확인하기 위해 필요

  

  digitalWrite(trig_o,LOW); //찾아보니 오류 발생 방지로 추가

  delay(2);

  digitalWrite(trig_o,HIGH);

  delay(10);

  digitalWrite(trig_o,LOW); 

  

  duration_o = pulseIn(echo_o,HIGH); 

  distance_o = ((float)34000*duration_o / 1000000); 

  

  Serial.print(distance_o); 

  Serial.println("cm/out");

  

  if (distance_i >= 0 && distance_i < 30 ){ //거리값 알아서 주세요 

    cnt += 1; 

  }

  

  if (distance_o >= 0 && distance_o < 30 ){ //거리값 알아서 주세요

    cnt -= 1;

  }

  

  //delay(1000);//1초에 한 번씩 측정(굳이 필요 없을듯?, 알아서 판단)

  

  if (cnt<10){

    show_dipin(4,cnt);

  }

  else if (cnt>9 and cnt<100){

    show_dipin(4,cnt%10);

    show_dipin(3,cnt/10);

  }

  else if (cnt>99 and cnt<1000){

    show_dipin(4,cnt%10);

    show_dipin(3,cnt/10%10);

    show_dipin(2,cnt/100);

  }

  else if (cnt>999 and cnt<10000){

    show_dipin(4,cnt%10);

    show_dipin(3,cnt/10%10);

    show_dipin(2,cnt/100%10);

    show_dipin(1,cnt/1000);

  }

 

}

 

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

댓글 : 0

조회수 : 8,668

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[28] master  17-10-29
질문 안녕하십니까? 아두이노를 배우고 있는 학생입니다. 도와… 첨부파일인하전자 새글 01:18
질문 pixy2 cam 을 이용한 색상인식 모터 제어 가나다라 새글 23-06-05
질문 안녕하세요 제품 품목 이름에 대해서 궁금합니다. 첨부파일알려주시면감사합니다 새글 23-06-05
질문 Atmega128 온도센서로 led제어 질문드려요 첨부파일얍얍 새글 23-06-05
질문 아구이노 코드를 atmega 128 코드로 변환 하고 … 기로롱 새글 23-06-05
질문 atmega128 uart 질문입니다. bme12 새글 23-06-05
질문 라즈베리파이에 풀 프레임 이미지센서 활용에 대한 질문이… 첨부파일KYLO 새글 23-06-04
질문 아두이노 시리얼 번호를 이용해 led 제어 wnion 새글 23-06-04
질문 ATMEGA128 혹시 여기서 왜 인터럽트 기능이 안되… IEEE 새글 23-06-04
질문 stm32f767을 이용해서 자이로가속도 센서의 값 받… rlchwjswk  23-06-03
질문 아두이노 모터제어 관련해서 질문드립니다! 댓글[1] 첨부파일아두이노어렵잖아  23-06-03
질문 atmega128 디지털조도센서 코드오류 댓글[1] 까미  23-06-02
질문 atmega128 디지털 조도 센서 댓글[1] 까미  23-06-02
질문 적외선리모콘으로 부저를제어 하는방법 질문입니다. 댓글[4] Tell  23-06-02
질문 lora 무선 모듈에 관한 질문입니다. 댓글[1] 로이스10  23-06-01
질문 적외선 송수신기 DC모터2개 제어 질문입니다. 댓글[5] Tell  23-06-01
질문 스텝모터 제어 코드 질문 댓글[5] pmh11  23-05-31
질문 초음파 센서를 이용한 인원 카운팅 댓글[1] 초음파야  23-05-31
질문 모터 Hall 스위치 연결 문의 댓글[1] 오후  23-05-31
질문 아두이노 lcd 문자 스크롤디스플레이 wnion  23-05-31
답변 답변 : 아두이노 lcd 문자 스크롤디스플레이 댓글[1] master  23-05-31
질문 아두이노 타이머 인터럽트 미ㅏㄴㅇ  23-05-30
답변 답변 : 아두이노 타이머 인터럽트 댓글[7] master  23-05-30
질문 THC-Soil Sensor with TTL 모듈 아두… 댓글[1] ppiickle  23-05-30
질문 stm32 psd센서구동 질문 댓글[2] 수포자  23-05-29
질문 앱인벤터 아두이노 보드 LCD 글씨 나타내기 질문 댓글[7] 당찬병아리  23-05-29
질문 atmega128 led와 fan 댓글[3] 이라  23-05-28
질문 stm32f767 스텝모터 속도 질문있습니다 123132  23-05-27
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전