-
아두이노 프로젝트 | 자동차 후방 감지기Technology/Arduino 2023. 12. 1. 18:00
1. 자동차 후방 감지기
일상에서 쉽게 발견할 수 있는 자동차 후방 감지기를 아두이노 플랫폼으로 구현해보자. 구현하고자 하는 자동차 후방 감지기는 피에조 부저와 초음파센서로 구성되어 있으며, 초음파센서로 측정한 거리에 따라 피에조 부저가 내는 알림음의 빠르기가 달라진다. 자동차 후방과 벽 사이 거리가 멀면 피에조 부저가 느린 박자의 소리를 내고, 거리가 가까워질수록 빠른 박자의 소리를 내도록 프로그램을 작성해보자.
2. 프로젝트
2.1. 회로 구성
2.2. 프로그램 작성
int Trigger = 12; // 정수형 변수 선언 후 디지털 핀 번호 12로 초기화 int Echo = 11; int Buzzer = 7; // 정수형 변수 선언 후 디지털 핀 번호 7로 초기화 void setup() { pinMode(Trigger, OUTPUT); // 디지털 12번 핀을 출력(OUTPUT) 모드로 설정 pinMode(Echo, INPUT); // 디지털 11번 핀을 입력(INPUT) 모드로 설정 pinMode(Buzzer, OUTPUT); // 디지털 2번 핀을 출력(OUTPUT) 모드로 설정 } void loop() { digitalWrite(Trigger, HIGH); // 디지털 12번 핀에 디지털 신호 HIGH 출력 delayMicroseconds(10); // 10 µs 대기 digitalWrite(Trigger, LOW); // 디지털 12번 핀에 디지털 신호 LOW 출력 // 정수형 변수 선언 후 디지털 11번 핀이 디지털 신호 HIGH를 유지한 시간을 µs 단위로 변수에 저장 long Duration = pulseIn(Echo, HIGH); // 실수형 변수 선언 후 초음파가 횡단한 거리를 계산하여 변수에 저장 float Distance = 346.13 * Duration / 10000 / 2 ; // 거리 판별 if (Distance >= 300) // 거리가 300 cm 이상이면 실행 { tone(Buzzer, 784); // 디지털 7번 핀에 주파수 784 Hz인 디지털 신호 출력 delay(100); // 100 ms 대기 noTone(Buzzer); // 디지털 7번 핀에 디지털 신호 미출력 delay(3000); // 3000 ms 대기 } else if (Distance >= 200 && Distance < 300) // 거리가 200 cm 이상이고 300 cm 미만이면 실행 { tone(Buzzer, 784); delay(100); noTone(Buzzer); delay(2000); } else if (Distance >= 100 && Distance < 200) // 거리가 100 cm 이상이고 200 cm 미만이면 실행 { tone(Buzzer, 784); delay(100); noTone(Buzzer); delay(1000); } else if (Distance >= 10 && Distance < 100) // 거리가 10 cm 이상이고 100 cm 미만이면 실행 { tone(Buzzer, 784); delay(100); noTone(Buzzer); delay(500); } else // 거리가 10 cm 미만 실행 { tone(Buzzer, 784); delay(100); noTone(Buzzer); delay(100); } }
[함께 읽으면 좋은 페이지]
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 | 릴레이 DC 5V 모듈 (0) 2023.12.15 아두이노 시리얼 통신: 데이터 입력 (1) 2023.12.08 아두이노 | 초음파센서 모듈 HC-SR04 (1) 2023.11.24 아두이노 프로젝트 | 젤다의 전설 시간의 오카리나 (0) 2023.11.17 아두이노 프로젝트 | 디지털 피아노 (0) 2023.11.10