아두이노 초음파센서, 서보모터 활용 차단기 만들기

아두이노 초음파센서, 서보모터 활용 차단기 만들기

정한솔 0 8687

안녕하세요^^

오늘은 오전 중에 시간이 남아 아두이노를 활용한 차단기를 만들어봤습니다.
거창한 건 아니고, 원리만 구현했습니다.
저도 초보라 인터넷 검색을 통해서 했습니다.
(기존에 보니 레고 마인드스톰으로 초음파 센서 및 모터로 제작한게 있긴 하더라구요. 아두이노도 가능할까 싶어서 해봤습니다.)

이 영상은 초음파 센서로 거리 측정하는 겁니다.


이 영상은 완성된 형태로 0~5cm까지 접근하면 차단기가 90도 돌아가서 열리고, 다시 3초후 제자리로.
그 다음 7~15cm까지는 아무 동작이 없고, 15cm 이상부터는 시리얼 모니터에 out of range 표시합니다.
아주 기초적인 원리만 구현했습니다.

소스는 이렇게 됩니다.
초음파센서 trig 2번 핀, echo 3번 핀, 서보모터 6번 핀에 지정했습니다.
인터넷에 공개된 거 참고해서 아주 조금만 수정한 겁니다...허접해도 이해해주세요~^^

#include <Servo.h>
const int trigPin1 = 2;
const int echoPin1 = 3;

Servo myservo;
int motor = 6;
long duration1, distance1;

void setup()
{
  Serial.begin(9600);
  myservo.attach(6);
  pinMode(trigPin1,OUTPUT);
  pinMode(echoPin1,INPUT);
}

void loop()
{
  long duration1, distance1;
  digitalWrite(trigPin1,LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin1, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin1, LOW);
  duration1 = pulseIn(echoPin1, HIGH);
  distance1 = (duration1/2) / 29.1;
  if (distance1 < 6 &&distance1 > 0)
  {
  myservo.write(0);
  delay(3000);
  myservo.write(90);
  delay(3000);
  }
  else if (distance1 >=7 && distance1<15)
  {
   digitalWrite(motor, LOW);
  }
  else if (distance1 >= 15){
    Serial.println("Out of range");
  }
  Serial.println(distance1);
  delay(1000);
}

다음에 시간 나면 학생들에게 지도해볼까합니다! 

0 Comments