The purpose is to teach users to play a song by following the LEDs and play the corresponding pushbottons.

Dependencies:   mbed

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);
      }
      }
}
}