-
피에조 부저와 아두이노를 연결해서 여러 음을 출력하기Arduino/피에조 부저 2020. 10. 29. 17:37
부저와 아두이노의 하드웨어 연결
부저를 자세히 보면, 부저에 (+) 모양이 보인다.
이 (+)모양의 선을 아두이노의 9번핀으로 연결한다.
그 밑에 있는 검은 선은 아두이노의 GND에 연결한다.
부저를 통해 기본 음을 출력해보자.
음의 출력을 위해서는 주파수를 알고 있어야 한다.
소스 코드
#define SORI_PIN 9 // 부저의 핀으로 부저의 (+)를 아두이노의 9번핀으로 연결 // 부저의 주파수로 각 각 "도레미파솔라시도" 이다. int um[8] = {262, 294, 330, 340, 392, 440, 494, 523}; void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: for (int i = 0; i < 8; i++) { tone(SORI_PIN, um[i], 200); // 해당 주파수를 200은 길이 delay(500); // noTone(8); } }
소방차 사이렌을 울려보자.
소스 코드
#define SORI_PIN 9 // 부저의 핀으로 부저의 (+)를 아두이노의 9번핀으로 연결 // 소방차 사이렌 만들기 void setup() { // put your setup code here, to run once: pinMode(SORI_PIN,OUTPUT); } void loop() { // put your main code here, to run repeatedly: for (int hz = 300; hz <= 750; hz++) { tone(SORI_PIN, hz); delay(5); } for (int hz = 750; hz >= 300; hz--) { tone(SORI_PIN, hz); delay(5); } }
이번에는 음악을 출력해보자.
우리가 출력할 음을 하나의 배열로 저장을 한다.
소스 코드
const int BUZZER_PIN = 9; // 부저의 (+)핀을 아두이노의 9번핀에 연결 const int C = 261; // 도 const int D = 294; // 레 const int E = 330; // 미 const int F = 340; // 파 const int G = 392; // 솔 const int A = 440; // 라 const int B = 494; // 시 const int HC = 523; // 도 // 음과 음의 길이를 표현하는 구조체 typedef struct { int t; // 음 unsigned long d; // 음의 길이 }TAD; TAD music[]={ {G,100},{G,100},{A,100},{A,100},{G,100},{G,100},{E,200}, {G,100},{G,100},{E,100},{E,100},{D,200}, {G,100},{G,100},{A,100},{A,100},{G,100},{G,100},{E,200}, {D,100},{E,100},{C,200} }; int musicLen; // music 배열의 길이 void setup() { // put your setup code here, to run once: musicLen = sizeof(music) / sizeof(TAD); } void loop() { // put your main code here, to run repeatedly: for (int i = 0; i < musicLen; i++) { tone(BUZZER_PIN,music[i].t); delay(music[i].d * 5); delay(30); } // 한 곡이 끝나고 1초 쉬자. delay(1000); }
'Arduino > 피에조 부저' 카테고리의 다른 글
소리 센서와 피에조 부저를 연결해서 소리를 측정하기 (0) 2020.10.29