ads_converter for the a ads1015 using all mbed

Dependencies:   ADS1015 USBDevice mbed

Files at this revision

API Documentation at this revision

Comitter:
NunchukPiledrivers
Date:
Thu Dec 10 19:11:44 2015 +0000
Commit message:
Final code - Punlished by paul

Changed in this revision

ADS1015.lib Show annotated file Show diff for this revision Revisions of this file
USBDevice.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /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