융합인재 수업(STEAM/프로젝트)

아두이노 손소독제 자동 누름기 (3D펜, 아두이노 레오나르도 비틀 사용)

종보샘 2020. 10. 21. 12:42

 

 

그린 클린 울산! 자동 손 소독제 누름기
그린 클린 울산! 자동 손 소독제 누름기

완성했습니다.

재료는 아래 링크

초음파  센서 1,100원 https://mecha.kr/119

초소형 아두이노 호환 보드 비틀 (Beetle) 12,100원 (부가세 포함) https://mecha.kr/2043

MG996R 호환 서보모터 / 120도 / 토크 11  4,080원 (부가세 포함) https://mecha.kr/8622

4xAAA 배터리홀더 880원 (부가세 포함) https://mecha.kr/537832 (AAA*3짜리 했는데 파워가 좀 약해요. 보조배터리나 전원 연결 추천합니다. 아니면 AA*4로 추천합니다.)

40핀 커넥터 F-M / M-F (Female - Male) 10, 20, 30 cm 점퍼케이블 / 점퍼선 990원 (부가세 포함) https://mecha.kr/586438

40핀 커넥터 M-M (Male - Male) 10, 20, 30 cm 점퍼케이블 / 점퍼선 990원 (부가세 포함) https://mecha.kr/586440

총 20,140원 (배터리, 3D펜 별도)

 

코드는 핀 번호만 살짝 바꿨어요. 

 

/*
Title: 아두이노 손소독제 자동 펌핑키트 Arduino Sanitizer Auto Pumping Kit
Youtube Link: https://youtu.be/fLsvbnxbabY 
소스코드 공유 시 위 사항을 포함하여 공유해주세요.
When sharing the source code, please include the source as shown above.

echo = 9
trig = 10
servo = 11
*/

#include <Servo.h>

Servo myservo;
int echo = 9;
int trig = 10;

int first_angle = 100; //you can change the value.
int second_angle = 150; //you can change the value.
int detection_distance = 20; //(cm)you can change the value.

void setup() {
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  myservo.attach(11);
myservo.write(first_angle);
}

void loop() {
  digitalWrite(trig, LOW);
  digitalWrite(echo, LOW);
  delayMicroseconds(2);

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

  unsigned long duration = pulseIn(echo, HIGH);

  float distance = duration / 29.0 / 2.0;

  if(distance<10) // 감지거리 10cm - 편의상 조절하여 업로드 합니다.
  {
    delay(250);
     myservo.write(second_angle);
      delay(800);
      myservo.write(first_angle);
      delay(800);
  }
  else
  {
        myservo.write(first_angle);
  }

}

 

 

참고 자료: 아두이노 모든 손소독제 호환형 자동 펌핑 장치 V2.0