아두이노 우노 R4 초음파 센서 피에조 버저

우리는 Arduino UNO R4와 초음파 센서를 사용하여 피에조 버저를 제어하는 방법을 배울 것입니다.

준비물

1×아두이노 우노 R4 와이파이 쿠팡 | 아마존
1×(또는) 아두이노 우노 R4 미니마 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×초음파 센서 쿠팡 | 아마존
1×3-24V 능동 피에조 버저 (Active Piezo Buzzer) 쿠팡 | 아마존
1×능동 피에조 버저 모듈 (Active Piezo Buzzer) 쿠팡 | 아마존
1×수동 피에조 버저 모듈 (Passive Piezo Buzzer Module) 쿠팡 | 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 전원 분배기 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

피에조 버저 및 초음파 센서에 대하여

튜토리얼에서 압전 부저와 초음파 센서에 대해 배우고, 핀 배열, 기능 및 프로그래밍에 대해 알아보세요.

이 가이드는 3-5V이 필요한 버저를 사용하지만, 12V 버저로 수정할 수도 있습니다. 이에 대한 자세한 내용은 아두이노 우노 R4 - 부저에서 확인하세요.

선연결

아두이노 우노 R4 초음파 센서 피에조 버저 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

Arduino Uno R4와 기타 부품에 전원을 공급하는 가장 효과적인 방법을 확인하시려면, 아래 링크를 참조하세요: 아두이노 우노 R4 전원 공급 방법.

Arduino UNO R4 코드 - 간단한 소리

/* * 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-ultrasonic-sensor-piezo-buzzer */ #define TRIG_PIN 6 // The Arduino UNO R4 pin connected to the ultrasonic sensor's TRIG pin #define ECHO_PIN 7 // The Arduino UNO R4 pin connected to the ultrasonic sensor's ECHO pin #define BUZZER_PIN 3 // The Arduino UNO R4 pin connected to Piezo Buzzer's pin #define DISTANCE_THRESHOLD 50 // centimeters float duration_us, distance_cm; void setup() { Serial.begin (9600); // initialize serial port pinMode(TRIG_PIN, OUTPUT); // set arduino pin to output mode pinMode(ECHO_PIN, INPUT); // set arduino pin to input mode pinMode(BUZZER_PIN, OUTPUT); // set arduino pin to output mode } void loop() { // generate 10-microsecond pulse to TRIG pin digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // measure duration of pulse from ECHO pin duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance distance_cm = 0.017 * duration_us; if(distance_cm < DISTANCE_THRESHOLD) digitalWrite(BUZZER_PIN, HIGH); // turn on Piezo Buzzer else digitalWrite(BUZZER_PIN, LOW); // turn off Piezo Buzzer // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); delay(500); }

자세한 사용 방법

이 지침을 단계별로 따르십시오:

  • Arduino Uno R4 WiFi/Minima를 처음 사용하는 경우 아두이노 우노 R4 - 소프트웨어 설치에 대한 튜토리얼을 참조하십시오.
  • 제공된 다이어그램에 따라 부품을 배선하십시오.
  • USB 케이블을 사용하여 Arduino Uno R4 보드를 컴퓨터에 연결하십시오.
  • 컴퓨터에서 Arduino IDE를 실행하십시오.
  • 적절한 Arduino Uno R4 보드(예: Arduino Uno R4 WiFi) 및 COM 포트를 선택하십시오.
  • USB 케이블을 사용하여 Arduino UNO R4를 컴퓨터에 연결하십시오.
  • Arduino IDE를 시작하고 올바른 보드와 포트를 선택하십시오.
  • Arduino IDE에 코드를 붙여넣으십시오.
  • Arduino IDE에서 Upload 버튼을 눌러 Arduino UNO R4에 코드를 전송하십시오.
  • 센서 근처에 손을 흔드십시오.
  • 피에조 부저에서 소리가 들립니다.

코드 설명

소스 코드의 주석을 보며 단계별 설명을 확인하세요!

아두이노 UNO R4 코드 - 멜로디

/* * 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-ultrasonic-sensor-piezo-buzzer */ #include "pitches.h" #define TRIG_PIN 6 // The Arduino UNO R4 pin connected to the ultrasonic sensor's TRIG pin #define ECHO_PIN 7 // The Arduino UNO R4 pin connected to the ultrasonic sensor's ECHO pin #define BUZZER_PIN 3 // The Arduino UNO R4 pin connected to Piezo Buzzer's pin #define DISTANCE_THRESHOLD 50 // centimeters float duration_us, distance_cm; // notes in the melody: int melody[] = { NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_G5, NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_F5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_E5, NOTE_D5, NOTE_D5, NOTE_E5, NOTE_D5, NOTE_G5 }; // note durations: 4 = quarter note, 8 = eighth note, etc, also called tempo: int noteDurations[] = { 8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 2, 8, 8, 8, 8, 8, 8, 8, 16, 16, 8, 8, 8, 8, 4, 4 }; void setup() { pinMode(TRIG_PIN, OUTPUT); // set arduino pin to output mode pinMode(ECHO_PIN, INPUT); // set arduino pin to input mode } void loop() { // generate 10-microsecond pulse to TRIG pin digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // measure duration of pulse from ECHO pin duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance distance_cm = 0.017 * duration_us; if(distance_cm < DISTANCE_THRESHOLD) buzzer(); // play a song delay(500); } void buzzer() { // iterate over the notes of the melody: int size = sizeof(noteDurations) / sizeof(int); for (int thisNote = 0; thisNote < size; thisNote++) { // to calculate the note duration, take one second divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000 / noteDurations[thisNote]; tone(BUZZER_PIN, melody[thisNote], noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(BUZZER_PIN); } }

자세한 사용 방법

이 지침을 단계별로 따르세요:

  • 아두이노 Uno R4 WiFi/Minima를 처음 사용하는 경우, 아두이노 우노 R4 - 소프트웨어 설치에 대한 튜토리얼을 참조하세요.
  • 제공된 다이어그램에 따라 부품들을 연결하세요.
  • USB 케이블을 사용하여 Arduino Uno R4 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 실행하세요.
  • 적절한 Arduino Uno R4 보드(예: Arduino Uno R4 WiFi)와 COM 포트를 선택하세요.
  • 코드를 복사하여 Arduino IDE에서 여세요.
  • Arduino IDE에서 pitches.h라는 파일을 만드세요:
    • 시리얼 모니터 아이콘 아래의 버튼을 클릭하고 새 탭을 선택하거나, Ctrl+Shift+N 키를 사용하세요.
    아두이노 ide 2에 파일 추가
    • 파일 이름 pitches.h을(를) 제공하고 OK 버튼을 누르세요.
    아두이노 ide 2는 파일 pitches.h를 추가합니다.
    • 아래 코드를 복사하여 생성한 pitches.h 파일에 붙여넣으세요.
    /************************************************* * Public Constants *************************************************/ #define NOTE_B0 31 #define NOTE_C1 33 #define NOTE_CS1 35 #define NOTE_D1 37 #define NOTE_DS1 39 #define NOTE_E1 41 #define NOTE_F1 44 #define NOTE_FS1 46 #define NOTE_G1 49 #define NOTE_GS1 52 #define NOTE_A1 55 #define NOTE_AS1 58 #define NOTE_B1 62 #define NOTE_C2 65 #define NOTE_CS2 69 #define NOTE_D2 73 #define NOTE_DS2 78 #define NOTE_E2 82 #define NOTE_F2 87 #define NOTE_FS2 93 #define NOTE_G2 98 #define NOTE_GS2 104 #define NOTE_A2 110 #define NOTE_AS2 117 #define NOTE_B2 123 #define NOTE_C3 131 #define NOTE_CS3 139 #define NOTE_D3 147 #define NOTE_DS3 156 #define NOTE_E3 165 #define NOTE_F3 175 #define NOTE_FS3 185 #define NOTE_G3 196 #define NOTE_GS3 208 #define NOTE_A3 220 #define NOTE_AS3 233 #define NOTE_B3 247 #define NOTE_C4 262 #define NOTE_CS4 277 #define NOTE_D4 294 #define NOTE_DS4 311 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_FS4 370 #define NOTE_G4 392 #define NOTE_GS4 415 #define NOTE_A4 440 #define NOTE_AS4 466 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_CS5 554 #define NOTE_D5 587 #define NOTE_DS5 622 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_FS5 740 #define NOTE_G5 784 #define NOTE_GS5 831 #define NOTE_A5 880 #define NOTE_AS5 932 #define NOTE_B5 988 #define NOTE_C6 1047 #define NOTE_CS6 1109 #define NOTE_D6 1175 #define NOTE_DS6 1245 #define NOTE_E6 1319 #define NOTE_F6 1397 #define NOTE_FS6 1480 #define NOTE_G6 1568 #define NOTE_GS6 1661 #define NOTE_A6 1760 #define NOTE_AS6 1865 #define NOTE_B6 1976 #define NOTE_C7 2093 #define NOTE_CS7 2217 #define NOTE_D7 2349 #define NOTE_DS7 2489 #define NOTE_E7 2637 #define NOTE_F7 2794 #define NOTE_FS7 2960 #define NOTE_G7 3136 #define NOTE_GS7 3322 #define NOTE_A7 3520 #define NOTE_AS7 3729 #define NOTE_B7 3951 #define NOTE_C8 4186 #define NOTE_CS8 4435 #define NOTE_D8 4699 #define NOTE_DS8 4978
    1. Arduino IDE에서 Upload 버튼을 눌러 코드 Arduino UNO R4로 전송합니다.
    2. 센서 근처에서 손을 흔듭니다.
    3. 피에조 부저에서 멜로디가 들립니다.

    코드 설명

    소스 코드 내의 주석에 작성된 각 설명을 보세요!

    ※ 주의:

    • 언급된 코드는 멜로디를 재생하는 동안 다른 코드가 실행되는 것을 중지시키는 delay() 함수를 사용합니다. 이를 방지하려면 ezBuzzer 라이브러리를 사용하세요. 이 라이브러리를 사용하면 다른 코드에 방해되지 않고 버저가 비프음을 내거나 멜로디를 연주할 수 있습니다.
    • 주어진 코드는 교육 목적을 위한 것입니다. 초음파 센서는 소음에 매우 민감합니다. 실질적인 초음파 센서의 사용을 위해서는 소음 필터링을 적용해야 합니다. 초음파 센서를 위한 소음 필터링 방법에 대해 알아보세요.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.