11-1 認識聲音 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/aeh001831.pdf11-2...
TRANSCRIPT
-
11-2
Arduino
Arduino
11-1
20Hz~20kHz 11-1(a)
Arduino tone() 11-1(b)
T
Vm
Vm
)(tv
t
T
VmVm
VmVm
)(tv
t
T
)(tv
t
5V
0T
)(tv
t
5V
0
(a) (b)
11-1
11-2
11-2-1 tone( )
tone( )tone( )
pin
frequency Hzduration
ms duration
noTone( )Arduino tone( )
timer2
noTone( )
tone(pin,frequency)
tone(pin,frequency,duration)
tone(2,1000,500) //21000Hz0.5
-
chapter 11
11-3
11-2-2 noTone( )
noTone( )noTone( )
pin
noTone(pin)
noTone(2); //2
11-3
11-3-1
Arduino 11-2 ringer
1 2
1 21 2
1 2
11-2
ATMEGA328P
UNOONL
IOR
EFR
ESET
3.3V
5V GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EFG
ND 13 12 ~11
~10
~9 8 7 ~6 ~5 4 ~3 2TX
1R
X 0
RXTX
RES
ET
DIGITAL (PWM~)
POWER
SCL
SDA
16MHz
+
100F/25V
ATMEGA328P
UNOONL
IOR
EFR
ESET
3.3V
5V GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EFG
ND 13 12 ~11
~10
~9 8 7 ~6 ~5 4 ~3 2TX
1R
X 0
RXTX
RES
ET
DIGITAL (PWM~)
POWER
SCL
SDA
16MHz
ATMEGA328P
UNOONL
IOR
EFR
ESET
3.3V
5V GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EFG
ND 13 12 ~11
~10
~9 8 7 ~6 ~5 4 ~3 2TX
1R
X 0
RXTX
RES
ET
DIGITAL (PWM~)
POWER
SCL
SDA
16MHz16MHz
+ +
100F/25V
11-3
-
11-4
Arduino
Arduino
11-4
ch11-1.ino const int speaker=2; //2
void setup()
{}
void loop()
{
for(int i=0;i
-
chapter 11
11-5
11-3-2
Arduino CDEFGAB C 8 tonebeat 11-1 C 12 2 f 1.059
= )1n(059.1)1n(2)n( 121
= fff 12~1n =
11-1 C
n 1 2 3 4 5 6 7 8 9 10 11 12
C
(Do)
C#
(Do#)
D
(Re)
D#
(Re#)
E
(Mi)
F
(Fa)
F#
(Fa#)
G
(So)
G#
(So#)
A
(La)
A#
(La#)
B
(Si)
(Hz) 262 277 294 311 330 349 370 392 415 440 466 494
(Hz) 523 554 587 622 659 698 740 784 831 880 932 988
(Hz) 1046 1109 1175 1245 1318 1397 1480 1568 1661 1760 1865 1976
11-3 11-4
ch11-2.ino const int speaker=2; //2
const int toneTable[8]={523,587,659,694,784,880,988,1046};//
void setup()
{}
void loop()
{ for(int i=0;i
-
11-6
Arduino
Arduino
delay(500); //0.5
}
noTone(speaker); //
}
1 Arduino CBAGFED C 8
2 Arduino 0 10k CDEFGAB C 8
11-3-3
Arduino 8 11-5 8 TACK CDEFGAB C 8
C D E F G A B
C# D# F# G# A#
C D E F G A B
C# D# F# G# A#
11-5
ATMEGA328P
UNOONL
IOR
EFR
ESET
3.3V
5V GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EFG
ND 13 12 ~11
~10 ~9 8 7 ~6 ~5 4 ~3 2
TX 1
RX
0
RXTX
RES
ET
DIGITAL (PWM~)
POWER
SCL
SDA
16MHz
+
100F/25V
C D E F G A B C()
ATMEGA328P
UNOONL
IOR
EFR
ESET
3.3V
5V GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EFG
ND 13 12 ~11
~10 ~9 8 7 ~6 ~5 4 ~3 2
TX 1
RX
0
RXTX
RES
ET
DIGITAL (PWM~)
POWER
SCL
SDA
16MHz
ATMEGA328P
UNOONL
IOR
EFR
ESET
3.3V
5V GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EFG
ND 13 12 ~11
~10 ~9 8 7 ~6 ~5 4 ~3 2
TX 1
RX
0
RXTX
RES
ET
DIGITAL (PWM~)
POWER
SCL
SDA
16MHz16MHz
+ +
100F/25V
C D E F G A B C()
11-6
-
chapter 11
11-7
11-7
ch11-3.ino const int speaker=2; //2
const int sw[8]={4,5,6,7,8,9,10,11}; //4~11
const int frequcncy[8]={523,587,659,694,784,880,988,1046};//
int i; //
int val; //
void setup()
{
for(i=0;i
-
11-8
Arduino
Arduino
1 Arduino 8 8 TACK
CDEFGAB C 8
2 Arduino 1~8 8
11-3-4
Arduino Little Bee 11-2 1~5 CDEFG 4 4 180 60/180 =60000/180
11-2
5 3 3 4 2 2 1 2 3 4 5 5 5
5 3 3 4 2 2 1 3 5 5 3
2 2 2 2 2 3 4 3 3 3 3 3 4 5
5 3 3 4 2 2 1 3 5 5 1
11-3 11-4
ch11-4.ino const int speaker=2; //2
unsigned int frequency[7]={523,587,659,694,784,880,988};//
char toneName[]="CDEFGAB"; //
char beeTone[]="GEEFDDCDEFGGGGEEFDDCEGGEDDDDDEFEEEEEFGGEEFDDCEGGC";
byte beeBeat[]={1,1,2,1,1,2,1,1,1,1,1,1,2,
1,1,2,1,1,2,1,1,1,1,4,
1,1,1,1,1,1,2,1,1,1,1,1,1,2,
1,1,2,1,1,2,1,1,1,1,4};
const int beeLen=sizeof(beeTone); //
-
chapter 11
11-9
unsigned long tempo=180; //180
int i,j;
void setup()
{}
void loop()
{
for(i=0;i
-
11-10
Arduino
Arduino
11-3-5
Arduino Little BeeLittle Star 1 TACK SW SWLittle BeeLittle Star 180
ATMEGA328P
UNOONL
IOR
EFR
ESET
3.3V
5V GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EFG
ND 13 12 ~11
~10 ~9 8 7 ~6 ~5 4 ~3 2
TX 1
RX
0
RXTX
RES
ET
DIGITAL (PWM~)
POWER
SCL
SDA
16MHz
+
100F/25V
SW
ATMEGA328P
UNOONL
IOR
EFR
ESET
3.3V
5V GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EFG
ND 13 12 ~11
~10 ~9 8 7 ~6 ~5 4 ~3 2
TX 1
RX
0
RXTX
RES
ET
DIGITAL (PWM~)
POWER
SCL
SDA
16MHz
ATMEGA328P
UNOONL
IOR
EFR
ESET
3.3V
5V GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EFG
ND 13 12 ~11
~10 ~9 8 7 ~6 ~5 4 ~3 2
TX 1
RX
0
RXTX
RES
ET
DIGITAL (PWM~)
POWER
SCL
SDA
16MHz16MHz
+ +
100F/25V
SW
11-8
11-9
-
chapter 11
11-11
ch11-5.ino const int speaker=2; //2
const int sw=4; //4SW
const int debounce=20; //20ms
char toneName[]="CDEFGAB"; //
unsigned int frequency[7]={523,587,659,694,784,880,988};//
char beeTone[]="GEEFDDCDEFGGGGEEFDDCEGGEDDDDDEFEEEEEFGGEEFDDCEGGC";
char starTone[]="CCGGAAGFFEEDDCGGFFEEDGGFFEEDCCGGAAGFFEEDDC";
byte beeBeat[]={1,1,2,1,1,2,1,1,1,1,1,1,2, //
1,1,2,1,1,2,1,1,1,1,4,
1,1,1,1,1,1,2,1,1,1,1,1,1,2,
1,1,2,1,1,2,1,1,1,1,4};
byte starBeat[]={1,1,1,1,1,1,2,1,1,1,1,1,1,2, //
1,1,1,1,1,1,2,1,1,1,1,1,1,2,
1,1,1,1,1,1,2,1,1,1,1,1,1,2};
unsigned long tempo=180; //180
const int beeLen=sizeof(beeTone); //
const int starLen=sizeof(starTone); //
int len=0; //
int num; //
int keyVal=0; //
void setup()
{ pinMode(sw,INPUT_PULLUP); //4
}
void loop()
{
if(digitalRead(sw)==0) //?
{
delay(debounce); //
while(digitalRead(sw)==0) //?
; //?
keyVal++; //1
if(keyVal>2) //2?
keyVal=0; //
num=0; //
if(keyVal==1) //1?
len=beeLen; //
-
11-12
Arduino
Arduino
else if(keyVal==2) //2?
len=starLen; //
}
if(keyVal==1 && len>0) //1len>0?
{ playTone(beeTone[num],beeBeat[num]); //
num++; //
len--; //1
}
else if(keyVal==2 && len>0) //2len>0?
{ playTone(starTone[num],starBeat[num]); //
num++; //
len--; //1
}
}
void playTone(char toneNo,byte beatNo) //
{
unsigned long duration=beatNo*60000/tempo; //(:)
int i;
for(i=0;i /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False
/Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure false /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles false /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /DocumentCMYK /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /UseDocumentProfile /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice