Subhradeep Dutta
/
Nucleo_Audio
Final Code for Nucleo Audio
main.cpp
- Committer:
- subhradeep
- Date:
- 2018-03-13
- Revision:
- 0:41c4dd155646
File content as of revision 0:41c4dd155646:
/*---------------------------------------------------------------------------- LAB EXERCISE 9 - Analog input and PWM ---------------------------------------- Use two potentiometers to adjust the volume and pitch of the output sound wave. Inputs: Virtual potentiometers 1 and 2 Output: Virtual speaker, Real PC GOOD LUCK! *----------------------------------------------------------------------------*/ #include "mbed.h" /* Define the PWM speaker output Define analog inputs Define serial output */ #define POT1 (PA_0) // Analog input for potentiomenter 1: volume #define POT2 (PA_1) // Analog input for potentiometer 2: pitch #define PWM_SPEAKER (PB_10) // output pin connected to speaker float constant1 = 0.003; // within range 320Hz to 8kHz float constant2 = 0.000125; AnalogIn pot1(POT1); //Create an AnalogIn , connected to the specified pin AnalogIn pot2(POT2); float pot1_value; // To read values from potentiometers float pot2_value; PwmOut speaker(PWM_SPEAKER); Serial serial_output(USBTX, USBRX); /*---------------------------------------------------------------------------- MAIN function *----------------------------------------------------------------------------*/ int main() { double i = 0; while(1) { // Read values from the potentiometers pot1_value = pot1.read(); pot2_value = pot2.read(); printf("\n\r%f %f",pot1_value, pot2_value); // Print potentiometer values wait(0.5); for(i=0; i<pot1_value; i+=0.05) // adjusting the PWM steps. s { speaker = i; speaker.period(constant1*pot2_value + constant2); // variations in pitch is given to output } speaker.write(pot1_value); // volume output given to speaker } } // *******************************ARM University Program Copyright � ARM Ltd 2014*************************************