Plays songs and changes LED Color

Dependencies:   C12832 mbed

Committer:
nadiyah
Date:
Thu Feb 13 22:47:05 2014 +0000
Revision:
1:028b0f4df520
Parent:
0:c6da9c77286d
hard coded frequency; ;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nadiyah 0:c6da9c77286d 1 #include "mbed.h"
nadiyah 0:c6da9c77286d 2
nadiyah 0:c6da9c77286d 3 //#include "TextLCD.h"
nadiyah 0:c6da9c77286d 4
nadiyah 0:c6da9c77286d 5
nadiyah 0:c6da9c77286d 6
nadiyah 1:028b0f4df520 7 //#define MASTER
nadiyah 1:028b0f4df520 8 #define SLAVE
nadiyah 0:c6da9c77286d 9 #include "mbed.h"
nadiyah 0:c6da9c77286d 10 PwmOut buzzer(p26);
nadiyah 0:c6da9c77286d 11 /*Table 4.3: Frequencies of notes used in tune
nadiyah 0:c6da9c77286d 12 Word/syllable Musical note Frequency (Hz) Beats
nadiyah 0:c6da9c77286d 13 Oran- E 659 1
nadiyah 0:c6da9c77286d 14 ges C# 554 1
nadiyah 0:c6da9c77286d 15 and E 659 1
nadiyah 0:c6da9c77286d 16 le- C# 554 1
nadiyah 0:c6da9c77286d 17 mons, A 440 1
nadiyah 0:c6da9c77286d 18 say B 494 ½
nadiyah 0:c6da9c77286d 19 the C# 554 ½
nadiyah 0:c6da9c77286d 20 bells D 587 1
nadiyah 0:c6da9c77286d 21 of B 494 1
nadiyah 0:c6da9c77286d 22 St E 659 1
nadiyah 0:c6da9c77286d 23 Clem- C# 554 1
nadiyah 0:c6da9c77286d 24 ent’s A 440 2
nadiyah 0:c6da9c77286d 25 Analog Output 73*/
nadiyah 0:c6da9c77286d 26
nadiyah 0:c6da9c77286d 27 PwmOut r(p23), g(p24), b(p25);
nadiyah 0:c6da9c77286d 28 Serial usbSerial(USBTX,USBRX);
nadiyah 0:c6da9c77286d 29 AnalogIn pot(p19);
nadiyah 0:c6da9c77286d 30 AnalogIn pot1(p20);
nadiyah 0:c6da9c77286d 31 DigitalIn JS(p14);
nadiyah 0:c6da9c77286d 32 //frequency array
nadiyah 0:c6da9c77286d 33 //float frequency[]={659,554,659,554,440,494,554,587,494,659,554,440};
nadiyah 0:c6da9c77286d 34
nadiyah 0:c6da9c77286d 35 #include "C12832.h"
nadiyah 0:c6da9c77286d 36
nadiyah 0:c6da9c77286d 37
nadiyah 0:c6da9c77286d 38 C12832 lcd(p5, p7, p6, p8, p11);
nadiyah 0:c6da9c77286d 39
nadiyah 1:028b0f4df520 40 char frequency[]={Gs4,E5,E5,D5,E5,GS4,GS4,A4,A4,C4,A4,A4,GS4,GS4,GS4,E5,E5,D5,E5,Gs4,Gs4,A4,A4,Gs4,C4,E5,D5,C4};
nadiyah 0:c6da9c77286d 41 float beat[]={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}; //beat array
nadiyah 1:028b0f4df520 42
nadiyah 1:028b0f4df520 43
nadiyah 1:028b0f4df520 44
nadiyah 1:028b0f4df520 45
nadiyah 1:028b0f4df520 46
nadiyah 1:028b0f4df520 47 #ifdef MASTER
nadiyah 1:028b0f4df520 48 I2C i2cPort(p9,p10);
nadiyah 1:028b0f4df520 49 #endif
nadiyah 1:028b0f4df520 50 #ifdef SLAVE
nadiyah 1:028b0f4df520 51 I2CSlave slave(p9,p10);
nadiyah 1:028b0f4df520 52 #endif
nadiyah 1:028b0f4df520 53 char note;
nadiyah 1:028b0f4df520 54 char length;
nadiyah 1:028b0f4df520 55 const int slaveAddress = 0x42;
nadiyah 1:028b0f4df520 56 int received = 0;
nadiyah 0:c6da9c77286d 57 int main() {
nadiyah 1:028b0f4df520 58
nadiyah 1:028b0f4df520 59
nadiyah 1:028b0f4df520 60 #ifdef SLAVE
nadiyah 1:028b0f4df520 61 slave.address(slaveAddress);
nadiyah 1:028b0f4df520 62 #endif
nadiyah 1:028b0f4df520 63 lcd.cls();
nadiyah 1:028b0f4df520 64 lcd.printf("hello world");
nadiyah 1:028b0f4df520 65
nadiyah 1:028b0f4df520 66
nadiyah 1:028b0f4df520 67
nadiyah 0:c6da9c77286d 68 while (1) {
nadiyah 0:c6da9c77286d 69 while(!JS){
nadiyah 0:c6da9c77286d 70 r=pot.read();
nadiyah 0:c6da9c77286d 71 g=pot1.read();
nadiyah 0:c6da9c77286d 72 }
nadiyah 0:c6da9c77286d 73 while(JS){
nadiyah 0:c6da9c77286d 74 for (int i=0;i<=29;i++) {
nadiyah 0:c6da9c77286d 75 buzzer.period(1/(2*frequency[i])); // set PWM period
nadiyah 0:c6da9c77286d 76 buzzer=0.5; // set duty cycle
nadiyah 0:c6da9c77286d 77 wait(0.7*beat[i]); // hold for beat period
nadiyah 0:c6da9c77286d 78
nadiyah 0:c6da9c77286d 79
nadiyah 0:c6da9c77286d 80 lcd.cls();
nadiyah 0:c6da9c77286d 81 lcd.locate(0,3);
nadiyah 0:c6da9c77286d 82 lcd.printf("Jesus Loves Me");
nadiyah 0:c6da9c77286d 83 r=pot.read();
nadiyah 0:c6da9c77286d 84 g=pot1.read();
nadiyah 0:c6da9c77286d 85 }
nadiyah 0:c6da9c77286d 86 while(!JS){
nadiyah 0:c6da9c77286d 87 r=pot.read();
nadiyah 0:c6da9c77286d 88 g=pot1.read();
nadiyah 0:c6da9c77286d 89 }
nadiyah 0:c6da9c77286d 90 }
nadiyah 0:c6da9c77286d 91 /////color change
nadiyah 0:c6da9c77286d 92
nadiyah 0:c6da9c77286d 93
nadiyah 0:c6da9c77286d 94
nadiyah 1:028b0f4df520 95 #ifdef MASTER
nadiyah 1:028b0f4df520 96 if(up)
nadiyah 1:028b0f4df520 97 {//master sends its song to slave
nadiyah 1:028b0f4df520 98 i2cPort.start();
nadiyah 1:028b0f4df520 99 //send address
nadiyah 1:028b0f4df520 100 i2cPort.write(slaveAddress);
nadiyah 1:028b0f4df520 101 //send tempo (BPM)
nadiyah 1:028b0f4df520 102 //loop through song
nadiyah 1:028b0f4df520 103 i2cPort.write(6);
nadiyah 1:028b0f4df520 104 // for(char j=0;j<10;j++)
nadiyah 1:028b0f4df520 105 // {
nadiyah 1:028b0f4df520 106 // //send frequency
nadiyah 1:028b0f4df520 107 // i2cPort.write(j);
nadiyah 1:028b0f4df520 108 // //play note
nadiyah 1:028b0f4df520 109 // //wait length
nadiyah 1:028b0f4df520 110 // wait(1);
nadiyah 1:028b0f4df520 111 // }
nadiyah 1:028b0f4df520 112 // //send stop code
nadiyah 1:028b0f4df520 113 // i2cPort.write(0xFF);
nadiyah 1:028b0f4df520 114 //close i2c port
nadiyah 1:028b0f4df520 115 i2cPort.stop();
nadiyah 1:028b0f4df520 116 }
nadiyah 1:028b0f4df520 117 else if(down)
nadiyah 1:028b0f4df520 118 {//slave should send it's song to master
nadiyah 1:028b0f4df520 119
nadiyah 1:028b0f4df520 120 }
nadiyah 1:028b0f4df520 121 #endif
nadiyah 1:028b0f4df520 122 #ifdef SLAVE
nadiyah 1:028b0f4df520 123 received = slave.receive();
nadiyah 1:028b0f4df520 124 if(I2CSlave::ReadAddressed==received){//master is requesting slave song
nadiyah 1:028b0f4df520 125
nadiyah 1:028b0f4df520 126 }
nadiyah 1:028b0f4df520 127 else if(I2CSlave::WriteAddressed==received){//master is sending its song
nadiyah 1:028b0f4df520 128 received = slave.read();
nadiyah 1:028b0f4df520 129 lcd.cls();
nadiyah 1:028b0f4df520 130 lcd.locate(0,0);
nadiyah 1:028b0f4df520 131 lcd.printf("Sent: %d",received);
nadiyah 1:028b0f4df520 132 }
nadiyah 1:028b0f4df520 133 #endif
nadiyah 1:028b0f4df520 134 }
nadiyah 1:028b0f4df520 135 }
nadiyah 0:c6da9c77286d 136
nadiyah 0:c6da9c77286d 137
nadiyah 0:c6da9c77286d 138
nadiyah 0:c6da9c77286d 139
nadiyah 1:028b0f4df520 140
nadiyah 1:028b0f4df520 141
nadiyah 1:028b0f4df520 142
nadiyah 1:028b0f4df520 143
nadiyah 0:c6da9c77286d 144
nadiyah 0:c6da9c77286d 145
nadiyah 0:c6da9c77286d 146 /* while(1){
nadiyah 0:c6da9c77286d 147 r=pot.read();
nadiyah 0:c6da9c77286d 148 g=pot1.read();
nadiyah 0:c6da9c77286d 149 }*/
nadiyah 0:c6da9c77286d 150
nadiyah 0:c6da9c77286d 151
nadiyah 0:c6da9c77286d 152
nadiyah 0:c6da9c77286d 153
nadiyah 0:c6da9c77286d 154
nadiyah 0:c6da9c77286d 155
nadiyah 1:028b0f4df520 156
nadiyah 0:c6da9c77286d 157
nadiyah 0:c6da9c77286d 158