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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /* Example of Reading all the ADC pins available on the Nucleo_F303K8. 
00002  
00003   By Joseph Ellsworth CTO of A2WH
00004   Take a look at A2WH.com Producing Water from Air using Solar Energy
00005   March-2016 License: https://developer.mbed.org/handbook/MIT-Licence 
00006 */
00007 
00008 #include "mbed.h" 
00009 
00010  // Host PC Communication channels
00011  Serial pc(USBTX, USBRX); // tx, rx
00012  
00013 
00014 AnalogIn   pa7(PA_7);
00015 AnalogIn   pa6(PA_6);
00016 AnalogIn   pa5(PA_5);
00017 AnalogIn   pa4(PA_4);
00018 //AnalogIn   pa2(PA_2); // conflicts with USB TX
00019 //AnalogIn  pa3(PA_3);  // conflicts with USB RX
00020 AnalogIn   pa1(PA_1); 
00021 AnalogIn   pa0(PA_0); 
00022 AnalogIn   pb0(PB_0); 
00023 AnalogIn   pb1(PB_1); 
00024  
00025 DigitalOut myled(LED1);
00026 const float voltMeterARef = 3.3;
00027 
00028 float readPrint(AnalogIn ain, char *label) {
00029   float tval = ain.read();
00030   float volts = tval * voltMeterARef;
00031   float perc = tval * 100.0;  
00032   unsigned short  tvalu16 = ain.read_u16 ();
00033 
00034   printf("adc %s R=%3.3f V=%3.3f%% U16=%u\r\n",label, tval, volts, tvalu16);
00035   
00036   return tval;
00037 }
00038     
00039 
00040 int main() {
00041     while(1) {
00042         myled = !myled; // toggle led 
00043         readPrint(pa7, "PA_7");
00044         readPrint(pa6, "PA_6");
00045         readPrint(pa5, "PA_5");
00046         readPrint(pa4, "PA_4");
00047         //readPrint(pa3, "PA_3");
00048         //readPrint(pa2, "PA_2");
00049         readPrint(pa1, "PA_1");
00050         readPrint(pa0, "PA_0");
00051         
00052         readPrint(pb0, "PB_0");
00053         readPrint(pb1, "PB_1");
00054         printf("\r\n\r\n");
00055         wait(7.0);        
00056     }
00057 }