11-1 認識聲音 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEH001831.pdf11-2...

Preview:

Citation preview

  • 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

Recommended