[WAT-S012] 중요한 아두이노 센서키트 12번째 [패시브 버저]

[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 에서 구매하실 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다