본문 바로가기

아두이노

버튼과 초음파 센서로 LED 깜빡이기 제어

반응형

버튼과 초음파 센서를 사용하여 LED를 깜빡이는 아두이노 프로젝트를 만들어보겠습니다. 아래는 해당 프로젝트를 순차적으로 설명하는 가이드입니다.

1. 이론 소개:

  • 이 프로젝트에서는 버튼과 초음파 센서를 사용하여 LED를 깜빡이는 기능을 제어합니다.
  • 버튼을 누르면 LED가 켜지고, 초음파 센서를 통해 물체가 가까이 다가오면 LED가 깜빡입니다.

2. 준비물:

  • 아두이노 보드 (예: Arduino Uno)
  • LED (빨간색 또는 다른 색상)
  • 220옴 저항 (빨간색, 빨간색, 갈색)
  • 초음파 센서 (HC-SR04 또는 비슷한 모델)
  • 푸시 버튼 스위치
  • 점퍼 와이어 (메스-메스 및 메스-피스)
  • 브레드보드
  • USB 케이블 (아두이노 보드와 컴퓨터 연결용)

3. 비슷한 센서 모델:

  • HC-SR04 이외에도 다양한 초음파 센서 모델이 있을 수 있으며, 연결 방법은 유사합니다.

4. 추천 보드 및 간단한 설명:

  • Arduino Uno: 초보자 및 중급자에게 적합한 아두이노 보드로 다양한 라이브러리와 예제가 있습니다.

5. 회로 구성:

  • 초음파 센서(HC-SR04)와 버튼, LED를 브레드보드에 연결합니다.
  • 초음파 센서의 VCC 핀을 아두이노 5V 핀에 연결하고, GND 핀을 아두이노 GND 핀에 연결합니다.
  • 초음파 센서의 Trig 핀을 아두이노 디지털 핀 7에 연결하고, Echo 핀을 아두이노 디지털 핀 6에 연결합니다.
  • 푸시 버튼 스위치의 한 쪽 단자를 아두이노 디지털 핀 2에 연결하고, 다른 쪽 단자를 GND에 연결합니다.
  • LED의 긴 다리를 아두이노 디지털 핀 9에 연결하고, 짧은 다리를 220옴 저항을 경유하여 지도에 연결합니다.

6. 코딩 내용 (주석 포함):

 

const int trigPin = 7; // 초음파 센서 Trig 핀
const int echoPin = 6; // 초음파 센서 Echo 핀
const int buttonPin = 2; // 버튼 연결 핀
const int ledPin = 9; // LED 연결 핀

long duration; // 초음파 신호의 이동 시간 (마이크로초)
int distance; // 물체와의 거리 (cm)

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buttonPin, INPUT_PULLUP); // 풀업 내장 버튼 설정
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600); // 시리얼 통신 시작 (선택 사항)
}

void loop() {
  // 버튼이 눌리면 LED 켜기
  if (digitalRead(buttonPin) == LOW) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }

  // 초음파 센서로 거리 측정
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2; // 마이크로초를 센티미터로 변환

  // 거리에 따라 LED 깜빡이기
  if (distance < 10) { // 물체가 10cm 이내에 있으면
    digitalWrite(ledPin, HIGH); // LED 켜기
    delay(200); // 0.2초 대기
    digitalWrite(ledPin, LOW); // LED 끄기
    delay(200); // 0.2초 대기
  }

  Serial.print("거리: ");
  Serial.print(distance);
  Serial.println(" cm");
  delay(500); // 0.5초 대기
}

 

7. 코딩 내용 설명:

  • 초음파 센서로 거리를 측정하고, 버튼 상태에 따라 LED를 제어합니다.
  • 물체가 일정 거리 이내에 있으면 LED를 깜빡입니다.

8. 코드 업로드 및 테스트:

  • 아두이노 보드를 컴퓨터에 연결하고 위의 코드를 아두이노 IDE에 복사하여 업로드합니다.
  • 버튼을 누르면 LED가 켜지고, 물체가 가까이 다가오면 LED가 깜빡입니다.

9. 응용 업그레이드:

  • LED 대신 부저나 다른 출력 장치를 사용하여 제어합니다.
  • 물체 감지 시 경보나 알람을 추가합니다.

10. 전문용어 설명:

- 초음파 센서 (Ultrasonic Sensor): 초음파를 사용하여 물체와의 거리를 측정하는 센서.

- 버튼 연결 핀 (Button Pin): 버튼의 상태를 감지하고 아두이노에 전달하는 핀.

- 풀업 내장 버튼 (Pull-up Internal Button): 아두이노 내부에서 풀업 저항이 활성화된 버튼.

- 펄스인 함수 (pulseIn Function): 펄스의 길이를 측정하여 시간을 계산하는 아두이노 함수.

 

11. 기타: - 초음파 센서의 회로 연결 방식 및 핀 번호는 모델에 따라 다를 수 있습니다.

반응형