CODE 3.6 | 자동차 후방 감지기 코드
| 01 | #define ECHO 3 |
| 02 | #define TRIG 4 |
| 03 | |
| 04 | void setup() { |
| 05 | Serial.begin(9600); // 컴퓨터와 통신 시작 |
| 06 | pinMode(TRIG, OUTPUT); // 4번 핀(초음파 발사)을 출력 모드로 설정 |
| 07 | pinMode(ECHO, INPUT); // 3번 핀(초음파 수신)을 입력 모드로 설정 |
| 08 | } |
| 09 | |
| 10 | void loop() { |
| 11 | // 1. 거리 측정하기 |
| 12 | digitalWrite(TRIG, LOW); |
| 13 | delayMicroseconds(2); |
| 14 | digitalWrite(TRIG, HIGH); |
| 15 | delayMicroseconds(10); |
| 16 | digitalWrite(TRIG, LOW); |
| 17 | |
| 18 | long dist = pulseIn(ECHO, HIGH) / 58.2; // 거리 계산 (cm) |
| 19 | Serial.println(dist); // 거리 값 확인용 출력 |
| 20 | |
| 21 | // 2. 거리에 따른 경고음 울리기 |
| 22 | if (dist < 10) { // 거리가 10cm 미만이면 (매우 위험) |
| 23 | tone(11, 362, 100); // 11번 핀 부저 울리기 |
| 24 | delay(100); // 아주 짧게 쉬기 (빠른 박자) |
| 25 | } |
| 26 | else if (dist < 20) { // 거리가 20cm 미만이면 (주의) |
| 27 | tone(11, 362, 100); |
| 28 | delay(250); // 적당히 쉬기 (중간 박자) |
| 29 | } |
| 30 | else if (dist < 30) { // 거리가 30cm 미만이면 (관심) |
| 31 | tone(11, 362, 100); |
| 32 | delay(500); // 길게 쉬기 (느린 박자) |
| 33 | } |
| 34 | else { // 거리가 30cm 이상이면 (안전) |
| 35 | noTone(11); // 소리 끄기 |
| 36 | } |
| 37 | } |
댓글 없음:
댓글 쓰기