정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

초음파 센서를 시험하는중인데,…
이정우 | 2016-03-07

초음파센서로 거리를 측정하여, 결과를 cm 단위로 LCD에 출력하는 스케치입니다.

첫 작동에서, 근거리에 대상물이 있는 조건에서는 잘 동작합니다.

그러나 측정 범위를 벗어나는 순간, 측정거리는 “0” 으로 표기되며,

이 후로는 다시 물체 앞에 놓아도, 거리는 측정되지 않고, “0”으로만 표기됩니다.

Reset 버튼을 눌러도 안되며, 전원을 off/on 한 후에야 다시 작동합니다.

 

어느 초음파 센서나 다 그런 것인지, 내가 사용하는 초음파 센서(HC-SR04)의 특징인지,

아니면 어느 부분의 작동이 멈춰서인지 모르겠습니다.

스케치는 쉽게 얻을 수 있는 것들을 편집한 것이기 때문에 별 문제가 없을 듯 합니다.

 

<스케치 소스>

#include <LiquidCrystal.h>
LiquidCrystal lcd(4, 5, 6, 7, 8, 9);
int trig = 11;
int echo = 12;

void setup() {
  lcd.begin(16, 2);
  lcd.clear(); 
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
}

int getDistance() {
  int distance;
  unsigned long pulseduration = 0;

  digitalWrite(trig, LOW);
  delayMicroseconds(5);
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);

  pulseduration = pulseIn(echo, HIGH);
  pulseduration = pulseduration/2;
  distance = int(pulseduration/29);
  return distance;
}

void loop() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Distance: ");
  lcd.print(getDistance());
  lcd.print(" cm");
 
  delay(500);
}

이전글   |    led cube 4x4x4 질문입니다 2016-03-04
다음글   |    예제중에 초음파 센서로 거리 측정하기를 하는데... 2016-03-08