Reads all the ADC ports available on the Nucleo F303K8 and prints the results in Value Read, Volts and 16 bit unsigned short.

Dependencies:   mbed

Reads all ADC available on Nucleo-F303K8 and sends results to PC over USB UART.

main.cpp

Committer:
joeata2wh
Date:
2016-03-30
Revision:
2:9cc6c918161b
Parent:
1:a368dd17f04c

File content as of revision 2:9cc6c918161b:

/* Example of Reading all the ADC pins available on the Nucleo_F303K8. 
 
  By Joseph Ellsworth CTO of A2WH
  Take a look at A2WH.com Producing Water from Air using Solar Energy
  March-2016 License: https://developer.mbed.org/handbook/MIT-Licence 
*/

#include "mbed.h" 

 // Host PC Communication channels
 Serial pc(USBTX, USBRX); // tx, rx
 

AnalogIn   pa7(PA_7);
AnalogIn   pa6(PA_6);
AnalogIn   pa5(PA_5);
AnalogIn   pa4(PA_4);
//AnalogIn   pa2(PA_2); // conflicts with USB TX
//AnalogIn  pa3(PA_3);  // conflicts with USB RX
AnalogIn   pa1(PA_1); 
AnalogIn   pa0(PA_0); 
AnalogIn   pb0(PB_0); 
AnalogIn   pb1(PB_1); 
 
DigitalOut myled(LED1);
const float voltMeterARef = 3.3;

float readPrint(AnalogIn ain, char *label) {
  float tval = ain.read();
  float volts = tval * voltMeterARef;
  float perc = tval * 100.0;  
  unsigned short  tvalu16 = ain.read_u16 ();

  printf("adc %s R=%3.3f V=%3.3f%% U16=%u\r\n",label, tval, volts, tvalu16);
  
  return tval;
}
    

int main() {
    while(1) {
        myled = !myled; // toggle led 
        readPrint(pa7, "PA_7");
        readPrint(pa6, "PA_6");
        readPrint(pa5, "PA_5");
        readPrint(pa4, "PA_4");
        //readPrint(pa3, "PA_3");
        //readPrint(pa2, "PA_2");
        readPrint(pa1, "PA_1");
        readPrint(pa0, "PA_0");
        
        readPrint(pb0, "PB_0");
        readPrint(pb1, "PB_1");
        printf("\r\n\r\n");
        wait(7.0);        
    }
}