DEV/잡다한 개발 일지

아두이노로 만든 자동으로 열리는 쓰레기통의 종이컵 ver

jobchae 2018. 1. 3. 22:56

수능이 끝나고 모든 입시가 끝나니 정말 할게 없었다.

예전에 학교에서 조금 해봤던 아두이노를 만져보려고 마음 먹고 용산 전자상가 지하에 있는  샘플전자와 동신전자에서 아두이노, 초음파센서, 점퍼선, 서보모터, 저항, led 몇 개를 사왔다. 

그런데 집에와서 보니,,,,, 점퍼선을 MF로 사온 것을 깨닫게 되었다.. 정말 짜증이 났지만 브레드보드와 아두이노를 연결하기 위해 다음 날 다시 용산에 가 MM 점퍼선을 구매해왔다. 

 

오랜만에 하는 거니 감을 익히기 위해 간단한 led 끄고 켜기, 초음파 센서로 led 키기 등등을 만들어 봤다.

 

어떤 분 인스타에서 자동으로 열리는 쓰레기통을 종이컵으로 만든 영상을 보고 난 후로 그걸 꼭 만들고 싶었다.

 

여~~러 시행착오 끝에 완성했다.. 비주얼은 좀 구리지만

 

 

완성작

 

영상도 있다.

 

 

ㅋㅋ 허접하네 

 

서보모터 위치랑 각도 맞추는게 참.. 애매해서 애먹었다.

 

사용한 소스코드는 다음과 같다.

 

#include  <Servo.h>

 

Servo myservo;  

 

int pos = 0;

int servo=12;

int echoPin = 3;

int trigPin = 2;

 

 

float duration;

float distance = 100;

 

void setup() {

  myservo.attach(servo);  

  pinMode(trigPin, OUTPUT);

  pinMode(echoPin, INPUT);

 

}

 

void loop() {

  digitalWrite(trigPin, HIGH);

  delay(10);

  digitalWrite(trigPin, LOW);

 

  duration = pulseIn(echoPin, HIGH); 

  distance = ((float)(340 * duration) / 10000) / 2; 

  

 

  if (distance < 10) {

  

    for (pos = 10; pos < 250; pos += 2)

    {

      myservo.write(pos);

      delay(30);

    }

    delay(2000); 

    

  }

  delay(50);

}

 

각도를 0~90으로 했더니 영 안돌아 가서 이것저것 해보다 10에서 250도로 맞췄다.

사실 if 부분에서 delay(2000) 후이 다시 250에서 10으로 가야하는데 코드를 그렇게 짜니 이상하게 뚜껑 열고 닫는게 반대로 되버렸다.. 어찌어찌하다 아예 저렇게 해버리니 그럭저럭 된 것 같다.

 

다음은 피에조부저를 사서 종이 피아노를 만들 계획이다~~

 

그나저나 저거 다시 분해하기 뭔가 아깝다.