~

Dependencies:   4DGL-uLCD-SE SDFileSystem

Committer:
fkhan39
Date:
Fri Sep 23 19:45:44 2016 +0000
Revision:
4:f5bc5d9a790b
Parent:
3:99acbebbed6c
Child:
5:151b0fa1fb44
added mems microphone test;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fkhan39 0:570683b2d0c9 1 #include "mbed.h"
fkhan39 0:570683b2d0c9 2
fkhan39 4:f5bc5d9a790b 3 BusOut myleds(LED1,LED2,LED3,LED4);
fkhan39 4:f5bc5d9a790b 4
fkhan39 4:f5bc5d9a790b 5 class microphone
fkhan39 4:f5bc5d9a790b 6 {
fkhan39 4:f5bc5d9a790b 7 public :
fkhan39 4:f5bc5d9a790b 8 microphone(PinName pin);
fkhan39 4:f5bc5d9a790b 9 float read();
fkhan39 4:f5bc5d9a790b 10 operator float ();
fkhan39 4:f5bc5d9a790b 11 private :
fkhan39 4:f5bc5d9a790b 12 AnalogIn _pin;
fkhan39 4:f5bc5d9a790b 13 };
fkhan39 4:f5bc5d9a790b 14 microphone::microphone (PinName pin):
fkhan39 4:f5bc5d9a790b 15 _pin(pin)
fkhan39 4:f5bc5d9a790b 16 {
fkhan39 4:f5bc5d9a790b 17 }
fkhan39 4:f5bc5d9a790b 18 float microphone::read()
fkhan39 4:f5bc5d9a790b 19 {
fkhan39 4:f5bc5d9a790b 20 return _pin.read();
fkhan39 4:f5bc5d9a790b 21 }
fkhan39 4:f5bc5d9a790b 22 inline microphone::operator float ()
fkhan39 4:f5bc5d9a790b 23 {
fkhan39 4:f5bc5d9a790b 24 return _pin.read();
fkhan39 4:f5bc5d9a790b 25 }
fkhan39 4:f5bc5d9a790b 26
fkhan39 4:f5bc5d9a790b 27 microphone mymicrophone(p16);
fkhan39 4:f5bc5d9a790b 28
fkhan39 4:f5bc5d9a790b 29 int main()
fkhan39 4:f5bc5d9a790b 30 {
fkhan39 4:f5bc5d9a790b 31 while(1) {
fkhan39 4:f5bc5d9a790b 32 //read in, subtract 0.67 DC bias, take absolute value, and scale up .1Vpp to 15 for builtin LED display
fkhan39 4:f5bc5d9a790b 33 myleds = int(abs((mymicrophone - (0.67/3.3)))*500.0);
fkhan39 4:f5bc5d9a790b 34 //Use an 8kHz audio sample rate (phone quality audio);
fkhan39 4:f5bc5d9a790b 35 wait(1.0/8000.0);
fkhan39 4:f5bc5d9a790b 36 }
fkhan39 4:f5bc5d9a790b 37 }
fkhan39 4:f5bc5d9a790b 38 /*
fkhan39 4:f5bc5d9a790b 39
fkhan39 1:4ed94566512a 40 AnalogOut aout(p18);
fkhan39 1:4ed94566512a 41 AnalogIn ain(p15);
fkhan39 0:570683b2d0c9 42 DigitalOut led1(LED1);
fkhan39 1:4ed94566512a 43 DigitalOut led2(LED2);
fkhan39 1:4ed94566512a 44 DigitalOut led3(LED3);
fkhan39 1:4ed94566512a 45 DigitalOut led4(LED4);
fkhan39 0:570683b2d0c9 46
fkhan39 1:4ed94566512a 47 int main()
fkhan39 1:4ed94566512a 48 {
fkhan39 4:f5bc5d9a790b 49
fkhan39 4:f5bc5d9a790b 50
fkhan39 4:f5bc5d9a790b 51 /*
fkhan39 2:20b2a7eb4bd8 52 // part 1
fkhan39 1:4ed94566512a 53 const double pi = 3.141592653589793238462;
fkhan39 1:4ed94566512a 54 const double amplitude = 1.0f;
fkhan39 1:4ed94566512a 55 const double offset = 65535/2; // 0xFFFF/2
fkhan39 1:4ed94566512a 56 double rads = 0.0;
fkhan39 1:4ed94566512a 57 uint16_t sample = 0;
fkhan39 1:4ed94566512a 58
fkhan39 1:4ed94566512a 59 while(1) {
fkhan39 1:4ed94566512a 60 // analog out
fkhan39 1:4ed94566512a 61
fkhan39 1:4ed94566512a 62 for (int i = 0; i < 720; i++) {
fkhan39 1:4ed94566512a 63 rads = (pi * i) / 180.0f;
fkhan39 1:4ed94566512a 64 sample = (uint16_t)(amplitude * (offset * (cos(rads + pi))) + offset);
fkhan39 1:4ed94566512a 65 aout.write_u16(sample);
fkhan39 1:4ed94566512a 66 }
fkhan39 1:4ed94566512a 67
fkhan39 1:4ed94566512a 68
fkhan39 1:4ed94566512a 69 // analog in
fkhan39 1:4ed94566512a 70 led1 = (ain > 0.2f) ? 1 : 0;
fkhan39 1:4ed94566512a 71 led2 = (ain > 0.4f) ? 1 : 0;
fkhan39 1:4ed94566512a 72 led3 = (ain > 0.6f) ? 1 : 0;
fkhan39 1:4ed94566512a 73 led4 = (ain > 0.8f) ? 1 : 0;
fkhan39 1:4ed94566512a 74 wait(.01);
fkhan39 0:570683b2d0c9 75 }
kswanson31 3:99acbebbed6c 76
kswanson31 3:99acbebbed6c 77 /* part 5
kswanson31 3:99acbebbed6c 78 // demo from https://docs.mbed.com/docs/mbed-os-api-reference/en/5.1/APIs/communication/network_sockets/
kswanson31 3:99acbebbed6c 79
kswanson31 3:99acbebbed6c 80 printf("Example network-socket HTTP client\n");
kswanson31 3:99acbebbed6c 81
kswanson31 3:99acbebbed6c 82 // Brings up the network interface
kswanson31 3:99acbebbed6c 83 eth.connect();
kswanson31 3:99acbebbed6c 84 const char *ip = eth.get_ip_address();
kswanson31 3:99acbebbed6c 85 const char *mac = eth.get_mac_address();
kswanson31 3:99acbebbed6c 86 printf("IP address is: %s\n", ip ? ip : "No IP");
kswanson31 3:99acbebbed6c 87 printf("MAC address is: %s\n", mac ? mac : "No MAC");
kswanson31 3:99acbebbed6c 88
kswanson31 3:99acbebbed6c 89 // Open a socket on the network interface, and create a TCP connection to mbed.org
kswanson31 3:99acbebbed6c 90 socket.open(&eth);
kswanson31 3:99acbebbed6c 91 socket.connect("developer.mbed.org", 80);
kswanson31 3:99acbebbed6c 92
kswanson31 3:99acbebbed6c 93 // Send a simple http request
kswanson31 3:99acbebbed6c 94 char sbuffer[] = "GET / HTTP/1.1\r\nHost: developer.mbed.org\r\n\r\n";
kswanson31 3:99acbebbed6c 95 int scount = socket.send(sbuffer, sizeof sbuffer);
kswanson31 3:99acbebbed6c 96 printf("sent %d [%.*s]\r\n", scount, strstr(sbuffer, "\r\n")-sbuffer, sbuffer);
kswanson31 3:99acbebbed6c 97
kswanson31 3:99acbebbed6c 98 // Recieve a simple http response and print out the response line
kswanson31 3:99acbebbed6c 99 char rbuffer[64];
kswanson31 3:99acbebbed6c 100 int rcount = socket.recv(rbuffer, sizeof rbuffer);
kswanson31 3:99acbebbed6c 101 printf("recv %d [%.*s]\r\n", rcount, strstr(rbuffer, "\r\n")-rbuffer, rbuffer);
kswanson31 3:99acbebbed6c 102
kswanson31 3:99acbebbed6c 103 // Close the socket to return its memory and bring down the network interface
kswanson31 3:99acbebbed6c 104 socket.close();
kswanson31 3:99acbebbed6c 105 eth.disconnect();
kswanson31 3:99acbebbed6c 106
kswanson31 3:99acbebbed6c 107 printf("Done\n");
kswanson31 3:99acbebbed6c 108 */