메뉴 전체보기

회원메뉴

센서 감지 기능이 있는 간단한 플랩 > 게시판

본문 바로가기

쇼핑몰 검색

NO. 3210
제목 : 센서 감지 기능이 있는 간단한 플랩
2026-09-10 10:56

소개: 센서 감지 기능이 있는 간단한 플랩


주변에서 무언가를 감지하면 열리는 간단하고 쉬운 플랩입니다. 다른 물체가 가까이 다가왔을 때 무언가를 밀어내는 용도로 사용할 수 있습니다.


이 가이드는 몇 가지 부분으로 나눌 수 있습니다:

  1. 초음파 센서 설정하기 (1~4단계)
  2. 모터 설정하기 (5~6단계)
  3. 두 시스템 결합하기 (7~8단계)
  4. 문제 해결 (9단계)


센서는 빛, 온도, 움직임, 압력 또는 거리와 같이 주변의 사물을 감지하는 데 사용됩니다. 기계나 시스템이 주변에서 일어나는 일에 대한 정보를 필요로 할 때 사용됩니다. 이를 통해 시스템이 자동으로 반응할 수 있습니다.


이 설계의 주된 목적은 단순히 플랩을 움직이는 것이 아니라, 센서를 사용해 어떤 동작이든 실행되도록 만드는 방법을 배우는 것입니다. "센서가 무언가를 감지하면 --> 다른 무언가가 일어난다"라는 핵심 개념은 다양한 용도로 사용할 수 있습니다.

예를 들어 결과 동작으로 LED가 켜지거나, 부저가 소리를 내거나, 문이 열리도록 만들 수 있습니다. 아이디어는 무궁무진합니다.

대규모 사례로는 공장, 공항, 발전소, 스마트 시티 및 대규모 농장이 있습니다. 이러한 장소에서는 센서가 상태를 모니터링하고, 시스템을 자동으로 제어하며, 안전성을 향상하는 데 도움을 줍니다.


완성된 제작물은 여기에서 볼 수 있습니다:

https://youtu.be/qDbSEfrdBBY




STEP 1. 준비물


이 플랩 시스템을 만들려면 다음이 필요합니다;


  1. HC-SR04 초음파 센서 -- $1-5 USD.
  2. Arduino Nano 보드 -- $27-30 USD.
  3. Arduino Nano I/O 확장 실드 -- $2.5-7 USD.
  4. HITEC HS-311 서보 -- $14-20 USD.
  5. 암-암 점퍼 와이어 4개


  1. USB 데이터 케이블 (Arduino Nano의 종류에 따라 어댑터가 필요할 수도 있습니다).
  2. Arduino IDE용 컴퓨터


  1. 3D 프린터 사용 권한
  2. 필라멘트
  3. 접착제/테이프 (사용하는 경우)


안전:

전자 장치를 다룰 때는 주의하고, 배선 연결을 변경하기 전에 Arduino를 전원에서 분리하세요. 시스템을 켜기 전에 전원선과 접지선이 올바르게 연결되어 있는지 확인하세요.

플랩을 직접 3D 프린팅하는 경우, 노즐이나 가열된 프린트 베드가 뜨거울 때 만지지 마세요. 완성된 출력물이 식은 후 제거하세요.

접착제를 사용해 플랩을 부착하는 경우 제조업체의 안전 지침을 따르고 적절한 장소에서 작업하세요.




STEP 2. 센서 배선


센서 배선


센서 배선


센서 배선


먼저 센서가 작동하도록 만드는 것부터 시작했습니다.


HC-SR04 초음파 센서는 사람이 들을 수 없는 고주파 음파를 보내 작동합니다. 음파가 물체에 부딪혀 센서로 되돌아옵니다. 돌아오는 데 걸리는 시간을 측정하여 센서가 물체까지의 거리를 계산할 수 있습니다.


HC-SR04 초음파 센서에는 튀어나온 은색 핀 4개가 있습니다:

  1. VCC 핀은 센서에 전원을 공급합니다. 일반적으로 5V에 연결합니다.
  2. TRIG 핀은 트리거 핀입니다. 컨트롤러가 이 핀으로 짧은 신호를 보내 센서에 초음파를 발신하도록 지시합니다.
  3. ECHO 핀은 반사된 음파가 돌아오면 컨트롤러로 신호를 보냅니다.
  4. GND 핀은 접지 신호입니다. 회로의 접지/GND에 연결합니다.



다음으로 HC-SR04 초음파 센서를 Arduino Nano 보드에 연결하겠습니다.

반드시 암-암 점퍼 와이어를 사용해야 합니다. 색상은 중요하지 않습니다.

Nano 보드 뒷면에서 점퍼 와이어를 연결할 핀이 어느 것인지 확인하세요.

연결:

  1. VCC -> Nano 보드의 5V
  2. TRIG -> Nano 보드의 D9
  3. ECHO -> Nano 보드의 D10
  4. GND -> Nano 보드의 GND





STEP 3. Arduino 설정


Arduino 설정


Arduino 설정


Arduino 설정


Arduino 설정


Arduino 설정


이제 초음파 센서의 배선이 완료되었습니다. 다음 단계는 Arduino Nano를 컴퓨터에 설정하여 프로그래밍할 준비를 하는 것입니다.

먼저 공식 Arduino 웹사이트에서 Arduino IDE 소프트웨어를 다운로드하세요:

https://www.arduino.cc/en/software/

Arduino IDE는 코드를 작성하여 Arduino 보드에 업로드할 수 있게 해주는 프로그램입니다.

컴퓨터에 맞는 최신 버전을 다운로드하여 일반적인 방법으로 설치하세요. 설치가 완료되면 Arduino IDE를 여세요.


Arduino Nano 연결하기:

호환되는 USB 데이터 케이블을 사용하여 Arduino Nano를 컴퓨터에 연결합니다. Arduino가 연결되면 Arduino Nano에서 하나 이상의 LED가 켜지는 것을 볼 수 있습니다.


그다음 Arduino 창 상단에서 보드 선택기를 클릭합니다. Arduino Nano가 연결된 장치로 자동으로 표시될 수 있습니다.


표시되지 않으면 상단의 "Select Board"라고 표시된 드롭다운을 클릭한 다음, 하단의 "Select other board and port..."를 클릭합니다.

그런 다음 BOARDS 섹션에서 "Arduino Nano"를 검색하여 선택하고, PORTS 섹션에서 연결된 Nano를 선택합니다.




STEP 4. 초음파 센서 프로그래밍하기


초음파 센서 프로그래밍하기


이제 Arduino Nano가 Arduino IDE에 연결되고 인식되었으므로, 다음 단계는 초음파 센서를 프로그래밍하는 것입니다.

이 프로젝트에서는 간단한 코드 템플릿을 사용합니다. 센서의 동작 방식을 쉽게 변경할 수 있도록 중요한 설정은 코드 상단 근처에 배치되어 있습니다.

다음 코드를 Arduino IDE에 복사하되, 기존에 있던 내용을 모두 바꾸도록 합니다:

// -------------------- SETTINGS --------------------

// Pins connected to the HC-SR04
const int trigPin = 9;
const int echoPin = 10;

// Distance at which an object is considered detected
const float detectionDistance = 15.0; // centimetres

// How often the sensor checks for an object
const int detectionInterval = 200; // milliseconds

// --------------------------------------------------


void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

Serial.begin(9600);
}


void loop() {

// Send a short ultrasonic pulse
digitalWrite(trigPin, LOW);
delayMicroseconds(2);

digitalWrite(trigPin, HIGH);
delayMicroseconds(10);

digitalWrite(trigPin, LOW);


// Measure how long the reflected sound takes to return
long duration = pulseIn(echoPin, HIGH);


// Convert the time into distance in centimetres
float distance = duration * 0.0343 / 2;


// Show the measured distance in Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");


// Check whether an object is close enough
if (distance <= detectionDistance) {
Serial.println("OBJECT DETECTED");
}


// Wait before taking the next measurement
delay(detectionInterval);
}


감지 거리 변경하기:

코드 상단 근처에서 다음을 볼 수 있습니다:


const float detectionDistance = 15.0;


이 값은 Arduino가 물체를 감지하는 것으로 판단하기 전에 물체가 얼마나 가까이 있어야 하는지를 제어합니다.

값은 센티미터 단위로 측정됩니다.

예를 들어:


const float detectionDistance = 10.0;


은 감지되려면 물체가 10 cm 이내에 있어야 한다는 의미입니다.

프로젝트에 원하는 설정에 따라 detectionDistance 값을 나중에 또는 지금 변경할 수 있습니다.

저는 15 cm의 감지 거리를 사용했습니다.


센서 확인 주기 변경하기:

또한 다음을 볼 수 있습니다:


const int detectionInterval = 200;


이 값은 Arduino가 다음 측정을 수행하기 전에 기다리는 시간을 제어합니다.

값은 밀리초 단위로 측정됩니다.

1초에는 1000밀리초가 있습니다.

따라서 "1000"은 센서가 1초마다 한 번씩 확인한다는 의미입니다.

"500"은 약 1초에 두 번 확인한다는 의미입니다.

"200"은 약 1초에 다섯 번 확인한다는 의미입니다.


이 프로젝트에서는 센서가 불필요하게 빠르게 측정값을 보내지 않으면서도 자주 확인하므로 200밀리초가 좋은 시작점입니다.


핀 번호 확인하기:

코드 상단에서 다음도 볼 수 있습니다:


const int trigPin = 9;

const int echoPin = 10;


이 번호는 1단계에서 연결한 배선과 일치해야 합니다.

TRIG를 D9에 연결했고

ECHO를 D10에 연결했으므로,

코드에서는 핀 9와 10을 사용합니다.

센서를 다른 디지털 핀에 연결하는 경우 코드에서도 이 번호를 변경해야 합니다.


코드를 업로드하려면:

Arduino IDE 왼쪽 상단 근처에 있는 Upload Code 화살표를 클릭합니다.

그런 다음 코드가 컴파일되고 업로드될 때까지 기다립니다. 업로드가 성공하면 Arduino IDE에 "Done Uploading."과 비슷한 메시지가 표시됩니다.


코드의 작동 방식:

Arduino는 HC-SR04 센서에 초음파를 내보내라고 반복해서 지시합니다.

그러면 센서는 음파가 물체에 부딪혀 되돌아올 때까지 기다립니다.

Arduino는 이 과정에 걸린 시간을 측정하여 물체까지의 거리를 계산합니다.


이제 센서 설정이 완료되었습니다.




STEP 5. 초음파 센서 테스트하기


초음파 센서 테스트하기


계속하기 전에 초음파 센서가 작동하는지 테스트해야 합니다.


초음파 센서가 작동하는지 확인하려면 Arduino IDE 오른쪽 상단에서 Serial Monitor를 엽니다.

물체를 센서 쪽으로 이동했다가 멀리 이동하면 표시되는 거리가 변경되어야 합니다.

물체가 감지 거리 이내에 있으면 시리얼 모니터에 "OBJECT DETECTED"가 표시됩니다.

초음파 센서 앞에서 물체를 가까이 또는 멀리 이동할 때 거리 값이 변한다면 센서가 올바르게 작동하는 것입니다.




STEP 6. HS-311 Servo 설정하기


HS-311 Servo 설정하기


HS-311 Servo 설정하기


HS-311 Servo 설정하기


다음으로 플랩 시스템에 사용할 HS-311 Servo를 준비해야 합니다.

원한다면 플랩을 3D 프린팅할 수 있습니다.


플랩 디자인의 .stl CAD 파일이 첨부되어 있습니다. 직접 맞춤형 디자인을 만들고 싶다면, 이 플랩에 사용된 요소를 참고하여 자신의 디자인에 사용할 수 있습니다.


  1. 플랩에는 HS-311 서보에 직접 연결하도록 만든 추가 손잡이가 있습니다. 이 손잡이에는 서보 암의 형태가 파여 있어 암을 그 안에 간단히 접착하거나, 암의 가장자리를 테이프로 붙여 마찰력으로 고정할 수 있습니다.
  2. 육각형 패턴: 메인 플랩에는 속이 빈 육각형 패턴이 있어 플랩으로서의 기능은 유지하면서 전체 무게를 줄여 줍니다.
  3. 또한 플랩이 너무 무거우면 서보가 지지대 없이 똑바로 서 있지 못할 수 있습니다. 플랩의 육각형 홈 외에도 인필을 줄이고 3D 프린팅 설정을 맞춤 조정하여 플랩을 가능한 한 가볍게 만들 수 있습니다.


저는 Generic PLA를 사용하여 플랩을 출력했습니다. 출력 설정은 프린터에 따라 달라질 수 있지만, 서보에 가해지는 무게를 줄이기 위해 인필을 비교적 낮게 설정하는 것을 권장합니다.




STEP 7. HS-311 서보 연결하기


HS-311 서보 연결하기


이 프로젝트의 다음 단계는 Hitec HS-311 서보 모터를 연결하는 것입니다.

나중에 초음파 센서가 물체를 감지하면 서보가 플랩을 물리적으로 움직이는 데 사용됩니다.


HS-311 서보에는 서로 연결된 3개의 전선이 있습니다:

  1. 검은색 전선 - 접지(GND)
  2. 빨간색 전선 - 전원(5V)
  3. 노란색 전선 - 신호

검은색 전선과 빨간색 전선은 서보에 전원을 공급합니다. 노란색 신호선은 Arduino에서 명령을 전달하여 서보가 어느 각도로 움직여야 하는지 알려 줍니다.


서보를 확장 실드에 연결하기:

이 프로젝트에서는 Arduino Nano I/O Expansion Shield를 사용했습니다. 이 실드를 사용하면 서보 모터와 같은 부품을 더 쉽게 연결할 수 있습니다. 각 Arduino 핀에는 다음과 같은 3개의 연결부가 한 그룹으로 구성되어 있습니다:

G, V, S.

이는 다음을 의미합니다:

  1. G = Ground(접지)
  2. V = Voltage/Power(전압/전원)
  3. S = Signal(신호)

이 실드에는 Arduino의 디지털 핀에 해당하는 번호가 매겨진 열도 있습니다.

초음파 센서가 이미 D9와 D10을 사용하고 있으므로 서보는 D3을 사용합니다.

확장 실드에서 3이라고 표시된 열을 찾습니다.

다음과 같이 서보 커넥터를 해당 열에 연결합니다:

  1. 검은색 전선 = G
  2. 빨간색 전선 = V
  3. 노란색 전선 = S

이 3개의 서보 핀은 하나의 커넥터로 묶여 있으므로, 커넥터 전체를 D3 열의 3개 핀에 끼워야 합니다.


Arduino Nano를 확장 실드에 장착하기 전에 Nano에 현재 연결된 점퍼선을 모두 제거합니다.

이제 Arduino Nano를 확장 실드에 장착해야 합니다.

Arduino Nano의 두 핀 열을 확장 실드의 해당 소켓에 주의해서 맞춥니다.

다음을 확인합니다:

  1. Nano의 모든 핀이 소켓에 정확히 맞춰져 있어야 합니다.
  2. 핀이 휘어 있거나 소켓 밖으로 나와 있지 않아야 합니다.
  3. Nano가 올바른 방향을 향해야 하며, Nano 보드의 전원 플러그가 확장 실드 바깥쪽을 향해야 합니다.

모든 부분이 맞춰지면 Arduino Nano를 확장 실드 안으로 부드럽게 눌러 단단히 연결합니다.

확장 실드는 Arduino Nano를 대신하는 장치가 아닙니다. 대신 Nano의 핀에 직접 연결되어 각 핀의 Ground, Power, Signal 커넥터에 더 쉽게 접근할 수 있게 해 줍니다. 시스템은 여전히 Arduino Nano의 플러그를 통해 컴퓨터에 연결합니다.

이제 HS-311 서보는 D3에 연결되었고 Arduino Nano는 확장 실드에 연결되었습니다.


이제 초음파 센서를 확장 실드에 연결해야 합니다.

이제 다음과 같이 연결합니다:

  1. VCC를 V9에 연결
  2. TRIG를 S9에 연결
  3. ECHO를 S10에 연결
  4. GND를 G10에 연결

최종 배선 확인:

  1. 초음파 센서 VCC - V9
  2. 초음파 센서 TRIG - S9
  3. 초음파 센서 ECHO - S10
  4. 초음파 센서 GND - G10
  5. 서보 검은색 전선 - D3의 G
  6. 서보 빨간색 전선 - D3의 V
  7. 서보 노란색 전선 - D3의 S


위에 표시된 대로 전선이 연결되어 있는지 확인하세요. 그렇지 않으면 뒤에서 설명할 코드가 제대로 작동하지 않습니다.




STEP 8. 플랩 프로그래밍하기


이제 초음파 센서, 서보 모터 및 플랩이 연결되었으므로, 다음 단계는 물체가 감지될 때 플랩이 자동으로 움직이도록 Arduino를 프로그래밍하는 것입니다.

서보는 D3에 연결되어 있고 초음파 센서는 D9와 D10에 연결되어 있습니다.

이제 이전 단계의 초음파 센서 코드에 서보 제어 기능을 추가합니다.


이 코드를 Arduino IDE에 복사한 다음, 기존에 있던 모든 내용을 대체합니다:


#include <Servo.h>

// -------- CHANGE THESE VALUES --------

// Ultrasonic sensor pins
const int trigPin = 9;
const int echoPin = 10;

// Servo pin
const int servoPin = 3;

// Distance where the flap activates
const float detectionDistance = 15.0; // centimetres

// Flap positions
const int closedAngle = 0; // resting position
const int openAngle = 90; // activated position

// How often the sensor checks
const int detectionInterval = 200; // milliseconds

// How long the flap stays open
const int flapHoldTime = 1500; // milliseconds

// -------------------------------------


Servo flapServo;


void setup() {

pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

Serial.begin(9600);

flapServo.attach(servoPin);

// Start with flap closed
flapServo.write(closedAngle);
}


void loop() {

// Send ultrasonic pulse
digitalWrite(trigPin, LOW);
delayMicroseconds(2);

digitalWrite(trigPin, HIGH);
delayMicroseconds(10);

digitalWrite(trigPin, LOW);


// Measure returning pulse
long duration = pulseIn(echoPin, HIGH, 30000);


// Convert into distance
float distance = duration * 0.0343 / 2;


// Display distance
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");


// Detect object
if (duration > 0 && distance <= detectionDistance) {

Serial.println("OBJECT DETECTED");

// Open flap
flapServo.write(openAngle);

// Keep flap open
delay(flapHoldTime);

// Close flap again
flapServo.write(closedAngle);
}


// Wait before checking again
delay(detectionInterval);
}


변경할 수 있는 값:


감지 거리:

const float detectionDistance = 15.0;

flap이 작동하기 전에 물체가 얼마나 가까이 있어야 하는지 조정하려면 15.0을 변경하세요.


일반 flap 위치:

const int closedAngle = 0;

flap의 일반적인 대기 위치를 조정하려면 0을 변경하세요.


작동 시 flap 위치:

const int openAngle = 90;

물체가 감지되었을 때 flap이 얼마나 움직일지 조정하려면 90을 변경하세요.


*flap이 잘못된 방향으로 움직이면, 설정에 맞을 때까지 closedAngle과 openAngle 값을 변경하세요.


flap이 열려 있는 시간:

const int flapHoldTime = 1500;

이 값의 단위는 밀리초이며, 현재 1.5초로 설정되어 있습니다.



센서 확인 주기:

const int detectionInterval = 200;

이 값은 Arduino가 초음파 센서를 다시 확인하기 전에 기다리는 시간을 제어합니다.

200 = 0.2초입니다.

더 작은 숫자를 사용하면 센서가 더 자주 확인합니다.



일반적으로 이 다섯 가지 설정만 변경하면 됩니다.

또한 배선이 동일하게 유지되는 한 핀 번호는 다음과 같아야 합니다:

trigPin = 9

echoPin = 10

servoPin = 3

배선이 동일하게 유지되는 경우에 한합니다.




STEP 9. 완성된 시스템 테스트


테스트하기 전에 다음 사항을 확인하세요:

  1. 최종 코드가 Arduino에 업로드되어 있어야 합니다.
  2. Arduino에 전원이 공급되고 올바르게 연결되어 있어야 합니다.
  3. flap은 닫힌 위치에서 시작해야 합니다.


물체를 센서에 가까이 가져갔다가 멀리 이동하세요. 물체가 감지 거리 안으로 들어오면 servo는 다음과 같이 작동해야 합니다:

  1. flap을 열린 위치로 회전시킵니다.
  2. flap은 flapHoldTime과 같은 시간 동안 열린 상태를 유지합니다.
  3. 그런 다음 닫힌 위치로 돌아갑니다.


물체를 멀리 이동한 후 테스트를 여러 번 반복하여 시스템이 정확하고 일관되게 반응하는지 확인하세요.


이제 flap 시스템이 작동해야 합니다!


예상 결과:

이 가이드에 표시된 기본 설정을 사용하면 센서는 15 cm 이하의 거리에서 물체를 감지하고, flap을 0º에서 90º로 이동시킨 후 1.5초 동안 열어 두었다가 다시 닫아야 합니다.


완성된 시스템을 확인할 수 있는 링크입니다:

https://youtu.be/qDbSEfrdBBY




STEP 10. 문제 해결


시스템이 의도한 대로 작동하지 않으면 다음과 같은 일반적인 문제와 해당 해결 방법을 확인하세요.


문제: Arduino IDE에서 코드를 업로드할 수 없거나 오류가 많이 발생합니다.

해결 방법: 올바른 프로세서를 사용하고 있는지 확인하세요. "ATmega328P" 프로세서 또는 "ATmega328P (Old Bootloader)"를 선택하여 업로드해 보세요.

변경하려면 창 상단의 tools 를 클릭한 다음 processor를 선택하세요.


문제: 센서가 항상 잘못된 값을 읽습니다.

해결 방법: 초음파 센서의 VCC, GND, TRIG 및 ECHO 연결을 확인하세요.


문제: 값이 표시되지 않습니다.

해결 방법: 올바른 보드/포트가 선택되어 있는지 확인하고 Serial Monitor를 여세요.


문제: 서보가 움직이지 않습니다.

해결 방법: 서보 신호가 D3에 연결되어 있는지 확인하세요.


문제: 서보가 잘못된 방향으로 움직입니다.

해결 방법: closedAngleopenAngle 코드의 값을 조정하세요.


문제: 서보가 버거워하거나, 흔들리거나, 넘어집니다.

해결 방법: 플랩의 무게를 줄이고(설계를 변경하거나 출력 설정을 조정하여), 전원 연결을 확인하세요. 플랩의 무게가 문제를 일으키는 경우, 테이프를 사용해 서보의 바닥이나 측면을 안정적인 표면에 고정하세요.


문제: 플랩이 너무 일찍 또는 너무 늦게 작동합니다.

해결 방법: detectionDistance를 변경하세요.


원문: https://www.instructables.com/Easy-Flap-With-Sensor-Detection/

좋아요 0
게시판

회사명 공방유니언 주소 각 공방 주소 참조
사업자 등록번호 0000 대표 공방유니언 전화 019-60105846 팩스 0000 이메일 gongbangunion@gmail.com
통신판매업신고번호 0000 개인정보관리책임자 공방유니언
Copyright © 2017 공방유니언. All Rights Reserved.