--->>> 예제 : Buzzer.c 음계 0~7 입력 <<<---------------------
#include <wiringPi.h>
#include <softTone.h>
#include <stdio.h>
#include <stdlib.h>
#define BUZZER_PIN 4
#define DO_L 523
#define RE 587
#define MI 659
#define FA 698
#define SOL 784
#define RA 880
#define SI 987
#define DO_H 1046
//int scale [8] = { 262, 294, 330, 349, 392, 440, 494, 525 };
unsigned int SevenScale (unsigned char scale)
{
unsigned int _ret = 0;
switch (scale)
{
case 0:
_ret = DO_L;
break;
case 1:
_ret = RE;
break;
case 2:
_ret = MI;
break;
case 3:
_ret = FA;
break;
case 4:
_ret = SOL;
break;
case 5:
_ret = RA;
break;
case 6:
_ret = SI;
break;
case 7:
_ret = DO_H;
break;
}
return _ret;
}
void Change_FREQ(unsigned int freq)
{
pwmWrite(BUZZER_PIN, freq);
softToneWrite (BUZZER_PIN, freq);
}
void STOP_FREQ (void)
{
softToneWrite (BUZZER_PIN, 0);
}
void Buzzer_Init (void)
{
softToneCreate (BUZZER_PIN) ;
STOP_FREQ();
}
int main (void)
{
if(wiringPiSetupGpio() == -1)
return 1;
// printf("Buzzer operationg..\n");
Buzzer_Init();
int i;
for(i=0; i < 8; i++) {
Change_FREQ (SevenScale(i));
delay(500);
STOP_FREQ();
}
while(1)
{
}
return 0;
}
------------------------------------------------------------------------
$ gcc -o scale_Buzzer scale_Buzzer.c -lwiringPi
$ sudo ./scale_Buzzer
--->>>예제 : schoolbell_Buzzer.c <<<------------------------------------
#include <wiringPi.h>
#include <softTone.h>
#define SPKR 6 /* GPIO25 */
#define TOTAL 32 /* 학교종의 전체 계이름의 수 */
int notes[] =
{ /* 학교종을 연주하기 위한 계이름 */
391, 391, 440, 440, 391, 391, 329.63, 329.63, \
391, 391, 329.63, 329.63, 293.66, 293.66, 293.66, 0, \
391, 391, 440, 440, 391, 391, 329.63, 329.63, \
391, 329.63, 293.66, 329.63, 261.63, 261.63, 261.63, 0
};
int musicPlay( )
{
int i;
softToneCreate(SPKR); /* 톤 출력을 위한 GPIO 설정 */
for (i = 0; i < TOTAL; ++i)
{
softToneWrite(SPKR, notes[i]); /* 톤 출력 : 학교종 연주 */
delay(280); /* 음의 전체 길이만큼 출력되도록 대기 */
}
return 0;
}
int main( )
{
wiringPiSetup( );
musicPlay( ); /* 음악 연주를 위한 함수 호출 */
return 0;
}
-------------------------------------------------------------------
$ gcc -o schoolbell_Buzzer schoolbell_Buzzert.c -lwiringPi
$ sudo ./schoolbell_Buzzer