Arduino Nano와 기타 부품에 전원을 공급하는 가장 효과적인 방법은 다음 링크를 참조하세요: 아두이노 나노 전원 공급 방법.
파이에조 부저를 프로그래밍하는 방법
아두이노 라이브러리 덕분에 멜로디를 연주하는 것이 간단합니다. 우리는 사각파를 생성하는 방법을 이해할 필요가 없습니다. 우리가 해야 할 일은 라이브러리에서 tone() 함수와 noTone() 함수를 사용하는 것입니다.
아두이노 나노 코드
#include"pitches.h"#define BUZZER_PIN 2 // 아두이노 나노 핀이 파이조 부저의 핀에 연결되어 있음// notes in the melody:int melody[] = {NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4};// note durations: 4 = quarter note, 8 = eighth note, etc.:int noteDurations[] = { 4, 8, 8, 4, 4, 4, 4, 4};voidsetup() {// iterate over the notes of the melody:for (int thisNote = 0; thisNote < 8; 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); }}voidloop() {// no need to repeat the melody.}
사용 방법
아두이노 나노를 USB 케이블을 사용하여 PC에 연결하세요.
아두이노 IDE를 열고, 적절한 보드와 포트를 선택하세요.
코드를 복사하고 아두이노 IDE로 열어보세요.
아두이노 IDE에서 pitches.h 파일을 다음과 같이 생성하세요:
시리얼 모니터 아이콘 바로 아래에 있는 버튼을 클릭하고 새 탭을 선택하거나, Ctrl+Shift+N 키를 사용하세요.
아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 컴파일하고 아두이노 나노에 업로드하세요.
새들의 노래를 들어보세요.
아두이노 나노 코드 수정하기
현재, 우리는 "징글 벨"이라는 노래를 연주하기 위해 코드를 변경할 예정입니다.
우리는 단지 두 배열의 값을 변경할 필요가 있습니다: int melody[]와 int noteDurations[].
/* * 이 아두이노 나노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 나노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-piezo-buzzer */#include"pitches.h"#define BUZZER_PIN 2 // 아두이노 나노 핀이 파이조 부저의 핀에 연결됨// 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};voidsetup() {// iterate over the notes of the melody:intsize = 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); }}voidloop() {// no need to repeat the melody.}
※ 주의:
위의 코드는 delay() 함수를 사용합니다. 이것은 멜로디 재생 중 다른 코드가 차단되게 합니다. 이를 방지하기 위해, ezBuzzer 라이브러리를 대신 사용할 수 있습니다. 이 라이브러리는 부저 사용을 위해 특별히 설계되었으며 다른 코드를 차단하지 않고 비프음을 내거나 멜로디를 재생할 수 있습니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.
도전하세요
좋아하는 노래를 연주하기 위해 피에조 버저를 활용하세요.
귀중품에 누군가 접근할 때 경보를 생성하기 위해 모션 센서를 이용하세요. 자세한 정보는 아두이노 나노 - 모션 센서를 참조하세요.