Brennon Farmer / Mbed 2 deprecated 4180_Final_Project_Menu_Music

Dependencies:   mbed mbed-rtos 4180Final SDFileSystem

Committer:
bfarmer
Date:
Mon Apr 27 14:47:49 2020 +0000
Revision:
8:5cd90280b90f
Parent:
1:e14104308237
added star wars music

Who changed what in which revision?

UserRevisionLine numberNew contents of line
William12 0:c5d6f214ba01 1 #include "mbed.h"
William12 1:e14104308237 2 //Adafruit MEMs SPW2430 microphone demo - LEDs display audio level
William12 1:e14104308237 3 BusOut led_strip(p21,p22,p23, p24, p25, p26);
William12 1:e14104308237 4 PwmOut led1(p21);
William12 1:e14104308237 5 PwmOut led2(p22);
William12 1:e14104308237 6 PwmOut led3(p23);
William12 1:e14104308237 7 PwmOut led4(p24);
William12 1:e14104308237 8 PwmOut led5(p25);
William12 1:e14104308237 9 PwmOut led6(p26);
William12 0:c5d6f214ba01 10
William12 0:c5d6f214ba01 11 class microphone
William12 0:c5d6f214ba01 12 {
William12 0:c5d6f214ba01 13 public :
William12 0:c5d6f214ba01 14 microphone(PinName pin);
William12 0:c5d6f214ba01 15 float read();
William12 0:c5d6f214ba01 16 operator float ();
William12 0:c5d6f214ba01 17 private :
William12 0:c5d6f214ba01 18 AnalogIn _pin;
William12 0:c5d6f214ba01 19 };
William12 0:c5d6f214ba01 20 microphone::microphone (PinName pin):
William12 0:c5d6f214ba01 21 _pin(pin)
William12 0:c5d6f214ba01 22 {
William12 0:c5d6f214ba01 23 }
William12 0:c5d6f214ba01 24 float microphone::read()
William12 0:c5d6f214ba01 25 {
William12 0:c5d6f214ba01 26 return _pin.read();
William12 0:c5d6f214ba01 27 }
William12 0:c5d6f214ba01 28 inline microphone::operator float ()
William12 0:c5d6f214ba01 29 {
William12 0:c5d6f214ba01 30 return _pin.read();
William12 0:c5d6f214ba01 31 }
William12 1:e14104308237 32
William12 1:e14104308237 33 microphone mymicrophone(p16);
William12 1:e14104308237 34
William12 1:e14104308237 35 int get_sound()
William12 1:e14104308237 36 {
William12 1:e14104308237 37 //while(1) {
William12 1:e14104308237 38 //read in, subtract 0.67 DC bias, take absolute value, and scale up .1Vpp to 15 for builtin LED display
William12 1:e14104308237 39 int val = int(abs((mymicrophone - (0.67/3.3)))*500.0);
William12 1:e14104308237 40 if(val <= 2.5){
William12 1:e14104308237 41 led_strip = 0b100000;
William12 1:e14104308237 42 } else if (2.5 > val && val < 5){
William12 1:e14104308237 43 led_strip = 0b110000;
William12 1:e14104308237 44 } else if (val > 5 && val < 7.5){
William12 1:e14104308237 45 led_strip = 0b111000;
William12 1:e14104308237 46 } else if (val > 7.5 && val < 10){
William12 1:e14104308237 47 led_strip = 0b111100;
William12 1:e14104308237 48 } else if (val > 10 && val < 12.5){
William12 1:e14104308237 49 led_strip = 0b111110;
William12 1:e14104308237 50 } else if (val > 12.5 && val < 15){
William12 1:e14104308237 51 led_strip = 0b111111;
William12 1:e14104308237 52 } else {
William12 1:e14104308237 53 led_strip = 0;
William12 1:e14104308237 54 }
William12 1:e14104308237 55 wait(0.2);
William12 1:e14104308237 56 //Use an 8kHz audio sample rate (phone quality audio);
William12 1:e14104308237 57 //wait(1.0/8000.0);
William12 1:e14104308237 58 // }
William12 1:e14104308237 59 return val;
William12 1:e14104308237 60 }