Software for receiving ADC values from ADS1150
Dependencies: mbed ADS1015_fast USBDevice
main.cpp@0:7cd465e7206d, 2018-11-26 (annotated)
- Committer:
- RoelvdPlas
- Date:
- Mon Nov 26 13:44:39 2018 +0000
- Revision:
- 0:7cd465e7206d
Software for reading ADC values from scale using ST Nucleo MC;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
RoelvdPlas | 0:7cd465e7206d | 1 | //Including the needed libraries |
RoelvdPlas | 0:7cd465e7206d | 2 | #include "mbed.h" |
RoelvdPlas | 0:7cd465e7206d | 3 | #include "Adafruit_ADS1015.h" |
RoelvdPlas | 0:7cd465e7206d | 4 | #include "USBSerial.h" |
RoelvdPlas | 0:7cd465e7206d | 5 | |
RoelvdPlas | 0:7cd465e7206d | 6 | //Not sure if we need those? |
RoelvdPlas | 0:7cd465e7206d | 7 | #define SERIAL_BAUD_RATE 115200 |
RoelvdPlas | 0:7cd465e7206d | 8 | #define ADC_MAX_VALUE 2048 |
RoelvdPlas | 0:7cd465e7206d | 9 | |
RoelvdPlas | 0:7cd465e7206d | 10 | //Defining the I2C port connections |
RoelvdPlas | 0:7cd465e7206d | 11 | I2C i2c(PB_9,PB_8); |
RoelvdPlas | 0:7cd465e7206d | 12 | |
RoelvdPlas | 0:7cd465e7206d | 13 | //Defining the goto adress for the ADC |
RoelvdPlas | 0:7cd465e7206d | 14 | Adafruit_ADS1015 adc(&i2c, 0x48); |
RoelvdPlas | 0:7cd465e7206d | 15 | |
RoelvdPlas | 0:7cd465e7206d | 16 | //Serial pc(USBTX, USBRX); |
RoelvdPlas | 0:7cd465e7206d | 17 | |
RoelvdPlas | 0:7cd465e7206d | 18 | //Setting i2c frequency and baudrate |
RoelvdPlas | 0:7cd465e7206d | 19 | int i2c__frequency = 100000; |
RoelvdPlas | 0:7cd465e7206d | 20 | int baud_rate = 115200; |
RoelvdPlas | 0:7cd465e7206d | 21 | |
RoelvdPlas | 0:7cd465e7206d | 22 | //Variables |
RoelvdPlas | 0:7cd465e7206d | 23 | int adc0; |
RoelvdPlas | 0:7cd465e7206d | 24 | int dataset[10]; |
RoelvdPlas | 0:7cd465e7206d | 25 | int i; |
RoelvdPlas | 0:7cd465e7206d | 26 | int sum; |
RoelvdPlas | 0:7cd465e7206d | 27 | int average_val; |
RoelvdPlas | 0:7cd465e7206d | 28 | |
RoelvdPlas | 0:7cd465e7206d | 29 | |
RoelvdPlas | 0:7cd465e7206d | 30 | //Input/Output |
RoelvdPlas | 0:7cd465e7206d | 31 | DigitalOut myled(LED1); |
RoelvdPlas | 0:7cd465e7206d | 32 | Serial usb(SERIAL_TX, SERIAL_RX); |
RoelvdPlas | 0:7cd465e7206d | 33 | DigitalIn push(PC_13); |
RoelvdPlas | 0:7cd465e7206d | 34 | |
RoelvdPlas | 0:7cd465e7206d | 35 | //Main code |
RoelvdPlas | 0:7cd465e7206d | 36 | int main() |
RoelvdPlas | 0:7cd465e7206d | 37 | { |
RoelvdPlas | 0:7cd465e7206d | 38 | //Setting the baudrate |
RoelvdPlas | 0:7cd465e7206d | 39 | usb.baud(baud_rate); |
RoelvdPlas | 0:7cd465e7206d | 40 | //adc.setGain(GAIN_SIXTEEN); |
RoelvdPlas | 0:7cd465e7206d | 41 | |
RoelvdPlas | 0:7cd465e7206d | 42 | while(1) { |
RoelvdPlas | 0:7cd465e7206d | 43 | //Test code |
RoelvdPlas | 0:7cd465e7206d | 44 | //for(i=0; i< 10; i++){ |
RoelvdPlas | 0:7cd465e7206d | 45 | //dataset[i] = ldr.readADC_Differential(0); |
RoelvdPlas | 0:7cd465e7206d | 46 | //sum += dataset[i]; |
RoelvdPlas | 0:7cd465e7206d | 47 | //} |
RoelvdPlas | 0:7cd465e7206d | 48 | //average_val = sum/10; |
RoelvdPlas | 0:7cd465e7206d | 49 | |
RoelvdPlas | 0:7cd465e7206d | 50 | |
RoelvdPlas | 0:7cd465e7206d | 51 | //Getting digital value from ADC |
RoelvdPlas | 0:7cd465e7206d | 52 | adc0 = adc.readADC_Differential(0); |
RoelvdPlas | 0:7cd465e7206d | 53 | |
RoelvdPlas | 0:7cd465e7206d | 54 | //Printing digital value from ADC |
RoelvdPlas | 0:7cd465e7206d | 55 | usb.printf("%+.5d", adc0); //place adc0 if test code doesn't work |
RoelvdPlas | 0:7cd465e7206d | 56 | usb.printf("\r"); |
RoelvdPlas | 0:7cd465e7206d | 57 | usb.printf("\n"); |
RoelvdPlas | 0:7cd465e7206d | 58 | myled = 1; |
RoelvdPlas | 0:7cd465e7206d | 59 | |
RoelvdPlas | 0:7cd465e7206d | 60 | //Turn-off led when button gets pushed |
RoelvdPlas | 0:7cd465e7206d | 61 | if(push == 0) { |
RoelvdPlas | 0:7cd465e7206d | 62 | myled = 0; |
RoelvdPlas | 0:7cd465e7206d | 63 | } |
RoelvdPlas | 0:7cd465e7206d | 64 | } |
RoelvdPlas | 0:7cd465e7206d | 65 | } |