이번에 할것은  아두이노에 초음파센서를 연결하여 거리측정을 한뒤 LCD 화면에 띄울 것이다.



#include<LiquidCrystal.h>

#define trig 0                                  // 초음파 센서 trig - 초음파를 발생하는 신호      (디지털 0번핀 연결)

#define echo 1                                // 초음파 센서 echo - 반사되어 오는 초음파를 받는 역할   (디지털 1번핀 연결)


LiquidCrystal lcd(12,11,5,4,3,2);           // LCD 디지털 핀(12,11,5,4,3,2)로 연결


void setup()                                   // 업로드하면 가장 먼저 setup부터 실행 (딱 1번)

{

  pinMode(trig,OUTPUT);                  // trig핀 출력으로 설정

  pinMode(echo,INPUT);                   // echo핀 입력으로 설정

  lcd.begin(16,2);                             // LCD(16x2)이므로 설정 요롷게 함

}


long microsecondsToCentimeters(long microseconds)         //  340 = 초당 초음파(소리)의 속도, 10000은 밀리세컨드를 세컨드로 10000/340 = 29

{                                                                             //  왕복거리이므로 2로 나눔.

  return microseconds/29/2;

}


void loop()                                        // setup후에 loo()가 무한루프로 계속 돈다.

{

  long duration, cm;

  lcd.clear();                                        // lcd화면을 깨끗이 클리어 

  digitalWrite(trig,LOW);                        // trig(초음파 발생하는 신호)를 껏다

  delayMicroseconds(2);                        //  2마이크로초 동안 딜레이(멈춤) , 1초 = 1000밀리초, 1밀리초 = 1000마이크로초 , 1초 = 1000000마이크로초

  digitalWrite(trig,HIGH);                       //  trig(초음파 발생하는 신호)를 킴

  delayMicroseconds(10);                        

  digitalWrite(trig,LOW);

  duration = pulseIn(echo,HIGH);            // echo가 HIGH를 유지한 시간을 저장 duration에 저장


  cm = microsecondsToCentimeters(duration);  // cm에 함수를 통해 거리를 저장


  lcd.setCursor(5,0);

  lcd.print(cm);                    // LCD 화면에 변수 cm를 띄움

  lcd.print("cm");                 


  delay(1000);                     // 1초동안 delay


}

+ Recent posts