mDot with ADS1115

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
jortronm
Date:
Mon Jul 31 13:37:07 2017 +0000
Revision:
40:1c33564c68c7
Parent:
29:0b58d21e87d6
mDot connected to a ADS1115

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jortronm 40:1c33564c68c7 1 #include "mbed.h"
jortronm 40:1c33564c68c7 2 #include "Adafruit_ADS1015.h"
jortronm 40:1c33564c68c7 3
jortronm 40:1c33564c68c7 4 //Pin definition
jortronm 40:1c33564c68c7 5 DigitalOut led1(PA_0); //External Red LED
jortronm 40:1c33564c68c7 6 DigitalOut led2(PB_1); //Second LED (Green)
jortronm 40:1c33564c68c7 7 DigitalOut reset(PA_7); //Pin to reset the ESP
jortronm 40:1c33564c68c7 8 DigitalIn User_Button(PC_13); //User button
jortronm 40:1c33564c68c7 9 DigitalOut Wire1(PA_4); //Sensor wire 1
jortronm 40:1c33564c68c7 10 DigitalOut Wire2(PA_1); //Sensor wire 2
jortronm 40:1c33564c68c7 11 DigitalOut Wire3(PC_1); //Sensor wire 3
jortronm 40:1c33564c68c7 12 DigitalIn Sensor_Switch(PA_11); //Pin to switch the peripherals on/off
jortronm 40:1c33564c68c7 13 DigitalOut SPI_cs(PB_0); // SPI chip select pin
jortronm 40:1c33564c68c7 14 #define D_SDA PC_9 //I2C SDA pin
jortronm 40:1c33564c68c7 15 #define D_SCL PA_8 //I2C SCL pin
jortronm 40:1c33564c68c7 16 #define Serial2_tx PA_2 //Serial2 tx pin
jortronm 40:1c33564c68c7 17 #define Serial2_rx PA_3 //Serial2 rx pin
jortronm 40:1c33564c68c7 18
jortronm 40:1c33564c68c7 19
jortronm 40:1c33564c68c7 20
jortronm 40:1c33564c68c7 21 //Interfaces definition
jortronm 40:1c33564c68c7 22 int BaudRate =115200;
jortronm 40:1c33564c68c7 23 Serial pc(USBTX, USBRX,BaudRate); //tx, rx : PA_9,PA_10 : pc Serial
jortronm 40:1c33564c68c7 24 Serial Serial2 (Serial2_tx,Serial2_rx,BaudRate); //tx, rx : Serial2 Serial
jortronm 40:1c33564c68c7 25 I2C i2c(D_SDA, D_SCL); //I2C interface, pins define in "Pin definition"
jortronm 40:1c33564c68c7 26 SPI spi(NC, PA_6, PA_5); //PI interface : mosi, miso, sclk
jortronm 40:1c33564c68c7 27 Adafruit_ADS1115 ads(&i2c);//ADS1115 library though I2C
jortronm 40:1c33564c68c7 28
jortronm 40:1c33564c68c7 29 //Function definition
jortronm 40:1c33564c68c7 30 void ADSReadinmg();
jortronm 40:1c33564c68c7 31 void SerialPrintData();
jortronm 40:1c33564c68c7 32
jortronm 40:1c33564c68c7 33 //Global variable definition
jortronm 40:1c33564c68c7 34 int Reading_Number=0;
jortronm 40:1c33564c68c7 35 int data[12]= {0,3,0,0,0,0,0,0,0,0,0,32}; //Reading_Number, V_bat, Wire1_1, Wire1_2, Wire1_3, Wire2_1, Wire2_2, Wire2_3, Wire3_1, Wire3_2, Wire3_3, Temp
jortronm 40:1c33564c68c7 36
jortronm 40:1c33564c68c7 37
jortronm 40:1c33564c68c7 38 int main()
jortronm 40:1c33564c68c7 39 {
jortronm 40:1c33564c68c7 40 wait(3);
jortronm 40:1c33564c68c7 41 ads.setGain(GAIN_SIXTEEN); // set range to +/-0.256V
jortronm 40:1c33564c68c7 42 pc.printf("\r\n"); //New carage return + new line
jortronm 40:1c33564c68c7 43 pc.printf("App Started \r\n"); //New carage return + new line
jortronm 40:1c33564c68c7 44 SerialPrintData();
jortronm 40:1c33564c68c7 45 while (1) {
jortronm 40:1c33564c68c7 46 Reading_Number++;
jortronm 40:1c33564c68c7 47 data[0]=Reading_Number;
jortronm 40:1c33564c68c7 48 ADSReadinmg();
jortronm 40:1c33564c68c7 49 SerialPrintData();
jortronm 40:1c33564c68c7 50 led1 = !led1;
jortronm 40:1c33564c68c7 51 wait(1);
jortronm 40:1c33564c68c7 52 }
jortronm 40:1c33564c68c7 53 }
jortronm 40:1c33564c68c7 54
jortronm 40:1c33564c68c7 55
jortronm 40:1c33564c68c7 56 void ADSReadinmg()
jortronm 40:1c33564c68c7 57 {
jortronm 40:1c33564c68c7 58 Wire1=0;
jortronm 40:1c33564c68c7 59 Wire2=0;
jortronm 40:1c33564c68c7 60 Wire3=0;
jortronm 40:1c33564c68c7 61 wait(1);
jortronm 40:1c33564c68c7 62
jortronm 40:1c33564c68c7 63 Wire1=1;
jortronm 40:1c33564c68c7 64 wait(1);
jortronm 40:1c33564c68c7 65 for(int i=1; i<4; i++) {
jortronm 40:1c33564c68c7 66 pc.printf("Wire1_X: %d\r\n",ads.readADC_SingleEnded(i)); //Wire 1
jortronm 40:1c33564c68c7 67 data[i+1]=ads.readADC_SingleEnded(i);
jortronm 40:1c33564c68c7 68 wait(1);
jortronm 40:1c33564c68c7 69 }
jortronm 40:1c33564c68c7 70 Wire1=0;
jortronm 40:1c33564c68c7 71 wait(1);
jortronm 40:1c33564c68c7 72
jortronm 40:1c33564c68c7 73 Wire2=1;
jortronm 40:1c33564c68c7 74 wait(1);
jortronm 40:1c33564c68c7 75 for(int i=1; i<4; i++) {
jortronm 40:1c33564c68c7 76 pc.printf("Wire2_?: %d\r\n",ads.readADC_SingleEnded(i)); //Wire 1
jortronm 40:1c33564c68c7 77 data[i+4]=ads.readADC_SingleEnded(i);
jortronm 40:1c33564c68c7 78 wait(1);
jortronm 40:1c33564c68c7 79 }
jortronm 40:1c33564c68c7 80 Wire2=0;
jortronm 40:1c33564c68c7 81 wait(1);
jortronm 40:1c33564c68c7 82
jortronm 40:1c33564c68c7 83 Wire3=1;
jortronm 40:1c33564c68c7 84 wait(1);
jortronm 40:1c33564c68c7 85 for(int i=1; i<4; i++) {
jortronm 40:1c33564c68c7 86 pc.printf("Wire3_?: %d\r\n",ads.readADC_SingleEnded(i)); //Wire 1
jortronm 40:1c33564c68c7 87 data[i+7]=ads.readADC_SingleEnded(i);
jortronm 40:1c33564c68c7 88 wait(1);
jortronm 40:1c33564c68c7 89 }
jortronm 40:1c33564c68c7 90
jortronm 40:1c33564c68c7 91 pc.printf("\r\n"); //Wire 1
jortronm 40:1c33564c68c7 92 Wire3=0;
jortronm 40:1c33564c68c7 93 wait(1);
jortronm 40:1c33564c68c7 94
jortronm 40:1c33564c68c7 95
jortronm 40:1c33564c68c7 96 /*
jortronm 40:1c33564c68c7 97 for(int i=0; i<4; i++) {
jortronm 40:1c33564c68c7 98 data[i+1]=ads.readADC_SingleEnded(i);
jortronm 40:1c33564c68c7 99 }
jortronm 40:1c33564c68c7 100 */
jortronm 40:1c33564c68c7 101 }
jortronm 40:1c33564c68c7 102
jortronm 40:1c33564c68c7 103
jortronm 40:1c33564c68c7 104 void SerialPrintData()
jortronm 40:1c33564c68c7 105 {
jortronm 40:1c33564c68c7 106 pc.printf("\r\n"); //New carage return + new line
jortronm 40:1c33564c68c7 107 pc.printf("Reading #: %d\r\n",data[0]); //Reading #
jortronm 40:1c33564c68c7 108 pc.printf("V_Bar: %d\r\n",data[1]); //Baterry voltage
jortronm 40:1c33564c68c7 109
jortronm 40:1c33564c68c7 110 pc.printf("Wire1_1: %d\r\n",data[2]); //Wire 1
jortronm 40:1c33564c68c7 111 pc.printf("Wire1_2: %d\r\n",data[3]); //Wire2
jortronm 40:1c33564c68c7 112 pc.printf("Wire1_3: %d\r\n",data[4]); //Wire3
jortronm 40:1c33564c68c7 113
jortronm 40:1c33564c68c7 114 pc.printf("Wire2_1: %d\r\n",data[5]); //Wire 1
jortronm 40:1c33564c68c7 115 pc.printf("Wire2_2: %d\r\n",data[6]); //Wire2
jortronm 40:1c33564c68c7 116 pc.printf("Wire2_3: %d\r\n",data[7]); //Wire3
jortronm 40:1c33564c68c7 117
jortronm 40:1c33564c68c7 118 pc.printf("Wire3_1: %d\r\n",data[8]); //Wire 1
jortronm 40:1c33564c68c7 119 pc.printf("Wire3_2: %d\r\n",data[9]); //Wire2
jortronm 40:1c33564c68c7 120 pc.printf("Wire3_3: %d\r\n",data[10]); //Wire3
jortronm 40:1c33564c68c7 121
jortronm 40:1c33564c68c7 122 pc.printf("Temp: %d\r\n",data[11]); //Temperature
jortronm 40:1c33564c68c7 123 pc.printf("\r\n"); //New carage return + new line
jortronm 40:1c33564c68c7 124
jortronm 40:1c33564c68c7 125 /*
jortronm 40:1c33564c68c7 126 int DataElements=sizeof(data)/sizeof(data[0]);
jortronm 40:1c33564c68c7 127 for(int i=0; i<DataElements; i++) {
jortronm 40:1c33564c68c7 128 pc.printf("Ch%d: %d\r\n",i,data[i+1]);
jortronm 40:1c33564c68c7 129 }
jortronm 40:1c33564c68c7 130 */
jortronm 40:1c33564c68c7 131 }