The purpose is to teach users to play a song by following the LEDs and play the corresponding pushbottons.
main.cpp
- Committer:
- hpham33
- Date:
- 2013-10-17
- Revision:
- 0:9fc296756703
File content as of revision 0:9fc296756703:
#include "mbed.h" DigitalIn pb1(p8); DigitalIn pb2(p9); DigitalIn pb3(p10); DigitalIn pb4(p12); DigitalIn pb5(p13); DigitalIn pb6(p17); DigitalIn pb7(p20); //PwmOut speaker(p21); DigitalOut led1(p30); DigitalOut led2(p29); DigitalOut led3(p28); DigitalOut led4(p26); DigitalOut led5(p25); DigitalOut led6(p5); DigitalOut led7(p6); class Speaker { public: Speaker(PinName pin) : _pin(pin) { // _pin(pin) means pass pin to the Speaker Constructor } // class method to play a note based on PwmOut class void PlayNote(float frequency, float duration, float volume) { _pin.period(1.0/frequency); _pin = volume/2.0; wait(duration); _pin = 0.0; } private: // sets up specified pin for PWM using PwmOut class PwmOut _pin; }; // no external PullUp resistor needed // Pushbutton from P8 to GND. int main() { Speaker mySpeaker(p21); pb1.mode(PullUp); pb2.mode(PullUp); pb3.mode(PullUp); pb4.mode(PullUp); pb5.mode(PullUp); pb6.mode(PullUp); pb7.mode(PullUp); while(1){ led1=1; while(led1==1){ if(pb1!=1) { mySpeaker.PlayNote(261.6, 0.5, 0.01); led1=0; wait(0.5); } } led2 = 1; while(led2==1){ if(pb2 !=1){ mySpeaker.PlayNote(293.7, 0.5, 0.01); led2 = 0; wait(0.5); } } led3=1; while(led3==1){ if(pb3 !=1){ mySpeaker.PlayNote(329.6, 0.5, 0.01); led3 = 0; wait(0.5); } } led4=1; while(led4==1){ if(pb4 !=1){ mySpeaker.PlayNote(349.2, 0.5, 0.01); led4 = 0; wait(0.5); } } led5=1; while(led5==1){ if(pb5 !=1){ mySpeaker.PlayNote(391.9, 0.5, 0.01); led5 = 0; wait(0.5); } } led6=1; while(led6==1){ if(pb6 !=1){ mySpeaker.PlayNote(440.0, 0.5, 0.01); led6 = 0; wait(0.5); } } led7=1; while(led7==1){ if(pb7 !=1){ mySpeaker.PlayNote(493.9, 0.5, 0.01); led7 = 0; wait(0.5); } } } }