목차
[WAT-S012] 패시브 버저
본 제품은 [WAT-SK114]중요한 아두이노 센서키트(초급) 중 12번째 모듈로 패시브 버저입니다.
핀 번호
번호 | 핀명 | I/O | 기능 |
---|---|---|---|
1 | S | Signal Input | 신호 입력 |
2 | + | x | x |
3 | – | GND | GROUND |
WAT-Arduino128 예제
핀 연결
번호 | I/O | WAT-Arduino128 |
---|---|---|
1 | S | PA0 |
2 | + | x |
3 | – | GND |
소스코드1
최신 소스코드는 [파일]=>[예제] => [WhiteAT]=>[Sensor37] => [12_Passive_Buzzer1] 에 있으며
라이브러리는 아두이노 개발환경 을 참조하세요
/* 중요한 아두이노 센서키트 37종 예제 중 12-1 번째 WAT-Arduino128 과 패시브 부저 예제입니다. WAT-Arduino128 : https://kit128.com/goods/view?no=64 [WAT-SK114] 중요한 아두이노 센서키트 (초급): https://kit128.com/goods/view?no=114 [WAT-S012] 패시브 부저 모듈 : https://kit128.com/goods/view?no=408 출처: http://whiteat.com/Arduino */ int S = PA0; // OUTPUT PIN // 프로그램 시작 - 초기화 작업 void setup() { Serial.begin(115200); // 디버깅 포트 초기화 Serial.println("Arduino Examples - Passive Buzzer"); Serial.println(" https://docs.whiteat.com/?p=1182"); pinMode(S, OUTPUT); } int i; void loop() { for (i = 0; i <160; i ++) // outputs sound 1 { digitalWrite (S, HIGH) ;// send pulse delay (1) ;// delay 1ms digitalWrite (S, LOW) ; // do not send pulse delay (1) ;// delay 1ms } for (i = 0; i <80; i ++) // outputs sound 2 { digitalWrite (S, HIGH) ;// send pulse delay (2) ;// delay 1ms digitalWrite (S, LOW) ; // do not send pulse delay (2) ;// delay 1ms } }
2가지 음이 반복적으로 재생됩니다.
소스코드2
최신 소스코드는 [파일]=>[예제] => [WhiteAT]=> [Sensor37] => [12_Passive_Buzzer2] 에 있습니다.
/* 중요한 아두이노 센서키트 37종 예제 중 12-2 번째 WAT-Arduino128 과 패시브 부저(멜로디) 예제입니다. WAT-Arduino128 : https://kit128.com/goods/view?no=64 [WAT-SK114] 중요한 아두이노 센서키트 (초급): https://kit128.com/goods/view?no=114 [WAT-S012] 패시브 부저 모듈 : https://kit128.com/goods/view?no=408 출처: http://whiteat.com/Arduino */ int S = PA0; // OUTPUT PIN // TONES ========================================== // Start by defining the relationship between // note, period, & frequency. #define m_c 3830 // 261 Hz #define d 3400 // 294 Hz #define e 3038 // 329 Hz #define f 2864 // 349 Hz #define g 2550 // 392 Hz #define a 2272 // 440 Hz #define b 2028 // 493 Hz #define C 1912 // 523 Hz // Define a special note, 'R', to represent a rest #define R 0 // MELODY and TIMING ======================================= // melody[] is an array of notes, accompanied by beats[], // which sets each note's relative length (higher #, longer note) int melody[] = { C, b, g, C, b, e, R, C, m_c, g, a, C }; int beats[] = { 16, 16, 16, 8, 8, 16, 32, 16, 16, 16, 8, 8 }; int MAX_COUNT = sizeof(melody) / 2; // Melody length, for looping. // Set overall tempo long tempo = 10000; // Set length of pause between notes int pause = 1000; // Loop variable to increase Rest length int rest_count = 100; //<-BLETCHEROUS HACK; See NOTES // Initialize core variables int tone_ = 0; int beat = 0; long duration = 0; // PLAY TONE ============================================== // Pulse the speaker to play a tone for a particular duration void playTone() { long elapsed_time = 0; if (tone_ > 0) { // if this isn't a Rest beat, while the tone has // played less long than 'duration', pulse speaker HIGH and LOW while (elapsed_time < duration) { digitalWrite(S, HIGH); delayMicroseconds(tone_ / 2); // DOWN digitalWrite(S, LOW); delayMicroseconds(tone_ / 2); // Keep track of how long we pulsed elapsed_time += (tone_); } } else { // Rest beat; loop times delay for (int j = 0; j < rest_count; j++) { // See NOTE on rest_count delayMicroseconds(duration); } } } // 프로그램 시작 - 초기화 작업 void setup() { Serial.begin(115200); // 디버깅 포트 초기화 Serial.println("Arduino Examples - Passive Buzzer(Melody)"); Serial.println(" https://docs.whiteat.com/?p=1182"); pinMode(S, OUTPUT); } void loop() { for (int i = 0; i<MAX_COUNT; i++) { tone_ = melody[i]; beat = beats[i]; duration = beat * tempo; // Set up timing playTone(); // A pause between notes... delayMicroseconds(pause); } }
멜로디 예제 입니다.
Arduino UNO R3 예제
핀 연결
번호 | I/O | UNO R3 |
---|---|---|
1 | S | 2 |
2 | + | x |
3 | – | GND |
소스코드1
최신 소스코드는 [파일]=>[예제]=>[WhiteAT UNO]=>[Sensor37] => [12_Passive_Buzzer1] 에 있으며
라이브러리는 아두이노 개발환경 (https://docs.whiteat.com/?page_id=5449) 을 참조하세요
/* 중요한 아두이노 센서키트 37종 예제 중 12-1 번째 UNO 와 패시브 부저 예제입니다. UNO R3 : https://kit128.com/goods/view?no=337 [WAT-SK114] 중요한 아두이노 센서키트 (초급): https://kit128.com/goods/view?no=114 [WAT-S012] 패시브 부저 모듈 : https://kit128.com/goods/view?no=408 출처: http://whiteat.com/Arduino */ int S = 2; // OUTPUT PIN // 프로그램 시작 - 초기화 작업 void setup() { Serial.begin(115200); // 디버깅 포트 초기화 Serial.println("Arduino Examples - Passive Buzzer"); Serial.println(" https://docs.whiteat.com/?p=1182"); pinMode(S, OUTPUT); } int i; void loop() { for (i = 0; i <160; i ++) // outputs sound 1 { digitalWrite (S, HIGH) ;// send pulse delay (1) ;// delay 1ms digitalWrite (S, LOW) ; // do not send pulse delay (1) ;// delay 1ms } for (i = 0; i <80; i ++) // outputs sound 2 { digitalWrite (S, HIGH) ;// send pulse delay (2) ;// delay 1ms digitalWrite (S, LOW) ; // do not send pulse delay (2) ;// delay 1ms } }
2가지 음이 반복적으로 재생됩니다.
소스코드2
최신 소스코드는 [파일]=>[예제]=>[WhiteAT UNO] => [Sensor37] => [12_Passive_Buzzer2] 에 있으며
라이브러리는 아두이노 개발환경 (https://docs.whiteat.com/?page_id=5449) 을 참조하세요
/* 중요한 아두이노 센서키트 37종 예제 중 12-2 번째 UNO 와 패시브 부저(멜로디) 예제입니다. UNO R3 : https://kit128.com/goods/view?no=337 [WAT-SK114] 중요한 아두이노 센서키트 (초급): https://kit128.com/goods/view?no=114 [WAT-S012] 패시브 부저 모듈 : https://kit128.com/goods/view?no=408 출처: http://whiteat.com/Arduino */ int S = 2; // OUTPUT PIN // TONES ========================================== // Start by defining the relationship between // note, period, & frequency. #define m_c 3830 // 261 Hz #define d 3400 // 294 Hz #define e 3038 // 329 Hz #define f 2864 // 349 Hz #define g 2550 // 392 Hz #define a 2272 // 440 Hz #define b 2028 // 493 Hz #define C 1912 // 523 Hz // Define a special note, 'R', to represent a rest #define R 0 // MELODY and TIMING ======================================= // melody[] is an array of notes, accompanied by beats[], // which sets each note's relative length (higher #, longer note) int melody[] = { C, b, g, C, b, e, R, C, m_c, g, a, C }; int beats[] = { 16, 16, 16, 8, 8, 16, 32, 16, 16, 16, 8, 8 }; int MAX_COUNT = sizeof(melody) / 2; // Melody length, for looping. // Set overall tempo long tempo = 10000; // Set length of pause between notes int pause = 1000; // Loop variable to increase Rest length int rest_count = 100; //<-BLETCHEROUS HACK; See NOTES // Initialize core variables int tone_ = 0; int beat = 0; long duration = 0; // PLAY TONE ============================================== // Pulse the speaker to play a tone for a particular duration void playTone() { long elapsed_time = 0; if (tone_ > 0) { // if this isn't a Rest beat, while the tone has // played less long than 'duration', pulse speaker HIGH and LOW while (elapsed_time < duration) { digitalWrite(S, HIGH); delayMicroseconds(tone_ / 2); // DOWN digitalWrite(S, LOW); delayMicroseconds(tone_ / 2); // Keep track of how long we pulsed elapsed_time += (tone_); } } else { // Rest beat; loop times delay for (int j = 0; j < rest_count; j++) { // See NOTE on rest_count delayMicroseconds(duration); } } } // 프로그램 시작 - 초기화 작업 void setup() { Serial.begin(115200); // 디버깅 포트 초기화 Serial.println("Arduino Examples - Passive Buzzer(Melody)"); Serial.println(" https://docs.whiteat.com/?p=1182"); pinMode(S, OUTPUT); } void loop() { for (int i = 0; i<MAX_COUNT; i++) { tone_ = melody[i]; beat = beats[i]; duration = beat * tempo; // Set up timing playTone(); // A pause between notes... delayMicroseconds(pause); } }
멜로디 예제 입니다.
제품 구매
[WAT-SK114]중요한 아두이노 센서키트(초급)은 https://kit128.com/goods/view?no=114 에서
[WAT-S012]패시브 부저 모듈은 https://kit128.com/goods/view?no=408 에서 구매하실 수 있습니다.