ads_converter for the a ads1015 using all mbed
Dependencies: ADS1015 USBDevice mbed
Revision 0:e9b3484aed88, committed 2015-12-10
- Comitter:
- NunchukPiledrivers
- Date:
- Thu Dec 10 19:11:44 2015 +0000
- Commit message:
- Final code - Punlished by paul
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ADS1015.lib Thu Dec 10 19:11:44 2015 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/arve0/code/ADS1015/#aa277517f0ad
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/USBDevice.lib Thu Dec 10 19:11:44 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/USBDevice/#849c0c0f2769
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Dec 10 19:11:44 2015 +0000 @@ -0,0 +1,87 @@ +#include <mbed.h> +#include <Adafruit_ADS1015.h> +using namespace std; +/*************************************** +LED 1 = Standy by mode +LED 2 = Reading Message +LED 3 = Wrighting Message +From The Keyboard +Cell Zero == 3 is if they are talking to us +Second character 0 == start + 1 == stop +***************************************/ +/************************************** +Initial Parameters +***************************************/ +I2C i2c(p28, p27); //pins 27/28 for I2C interface +Adafruit_ADS1015 ads(&i2c); +Serial pc(USBTX, USBRX); // tx, rx +DigitalOut led(LED1); // LED 1 for state 1 +DigitalOut led2(LED2); // LED 2 for state 2 +DigitalOut led3(LED3); // LED 3 for state 3 +CAN can(p30, p29); //p30(rx) and p29(tx) +LocalFileSystem local("local"); //Output file location +CANMessage msg; +char state; +FILE *fp = fopen("/local/out.txt", "w"); //File initialization +int i = 0; +/************************************* +Function Status keeps checking the bus waiting for the KeyBoard Subgroup +To tell us to start reading from the blackbox. +*************************************/ +void get_state() +{ + can.read(msg); + char Cell_One = msg.data[0]; + char Cell_Two = msg.data[1]; + if (Cell_One == '3' && Cell_Two == '0') { + pc.printf("Reading \r \n"); + state = 2; + } else if (Cell_One == '3' && Cell_Two == '1') { + pc.printf("Writing \r \n"); + state = 3; + i = 0; + } else + pc.printf("Waiting \r \n"); + state = state; + +} +int main() +{ + state = 1; + pc.baud(9600); + pc.printf("\r \n"); + pc.printf("\r \n"); + pc.printf("Hello! \r \n"); + pc.printf("Note: ADC Range +/- 6.144 (1 bit = 3mV/ADS1015, 0.1875mV/ ADS1115)\r \n"); + pc.printf("Waitng.... \r \n"); + uint16_t adc0; // channel coming from the black box + float conversion_factor = .003; + can.attach(&get_state , CAN::RxIrq); + while (1) { + + if (state == 2) { + adc0 = ads.readADC_SingleEnded(0); // read channel 0 + pc.printf("AIN0: %f\r\n", adc0*conversion_factor); // print channel 0 + fprintf(fp, "%f\r\n", adc0*conversion_factor); + led = 0; + led2 = 1; + led3 = 0; + wait(0.01); //100 hz + } else if (state == 3) { + fclose(fp); + led = 0; + led2 = 0; + led3 = 1; + if(i == 0) { + pc.printf("File Complete \r \n"); + i++; + } + state = 1; + } else { + led = 1; + led2 = 0; + led3 = 0; + } + } +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Dec 10 19:11:44 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/34e6b704fe68 \ No newline at end of file