Nucleo-transfer

Dependencies:   ADS1015 MPU6050 PixelArray PixelArray-Nucleo mbed WS2813

Fork of Nucleo-transfer by Momo Medical

Revision:
17:6ec7d594c1f1
Parent:
16:adbbac0c79f9
Child:
18:3b2686cdbcb7
--- a/Sensorplate/main.cpp	Thu Sep 28 18:00:14 2017 +0000
+++ b/Sensorplate/main.cpp	Thu Sep 28 20:19:21 2017 +0000
@@ -34,12 +34,12 @@
 DigitalOut speaker2(p22);
 
 I2C i2c(p28, p27);                  // I2C
-I2C i2cAccu(p23, p18);
+I2C i2cAccu(p7, p6);
 MPU6050 agu(p28,p27);               // Accelerometer/Gyroscope Unit
 Adafruit_ADS1115 pr1(&i2c, 0x48);   // first PiëzoResistive ADC
 Adafruit_ADS1115 pr2(&i2c, 0x49);   // second PiëzoResistive ADC
 Adafruit_ADS1115 pel(&i2c, 0x4B);   // PiëzoElectric ADC
-Adafruit_ADS1015 adsAccu(&i2cAccu);
+Adafruit_ADS1015 adsAccu(&i2cAccu, 0x48);
 Serial pc(USBTX, USBRX); // tx, rx  // Serial USB connection
 Serial pi(p9, p10);      // tx, rx  // Setup serial communication for pi.
 Timer t;                            // Timer for equally time-spaced samples
@@ -66,7 +66,7 @@
 int buttondelay_ms = 750;                                                   // Button delay in ms.
 int delay_lock_interface = 3000*60;                                         // Delay for non using interface locktime.
 int speaker_active_ms = 750;                                                // Time to iterate speaker on and off when alarm occurs.
-double alarm_voltage = 0.2;                                                 // Needed voltage for alarm expressed as a percentage (0 - 100 % => 0 - 3.3 V).
+int alarm_voltage = 5867;                                                   // Needed voltage for alarm expressed as a digital 15 bit value (=20% of max battery voltage)
 int red_var, green_var, blue_var, intensity;                                // Variables to set LED intensity.
 uint16_t batteryvoltage_current = 0, batteryvoltage_last = 0;
 int intensity_day = 50, intensity_night = 25;                               // Intensity settings for LED's to wall.
@@ -246,7 +246,7 @@
 {
     LED_intern3 = 0;
 
-    if (batteryvoltage.read() > alarm_voltage) {                            // If supplyvoltage (readed from input) is greater then the setted alarmvoltage.
+    if (batteryvoltage_current > alarm_voltage) {                    // If supplyvoltage (readed from input) is greater then the setted alarmvoltage.
         alarm = 0;                                                          // Alarm is off.
         speaker_state = 0;
     } else {
@@ -278,7 +278,7 @@
         speaker_timer.reset();
     }
     
-    batteryvoltage_current = adsAccu.readADC_SingleEnded(0); // read channel 0
+    batteryvoltage_current = adsAccu.readADC_SingleEnded(0);                // Read channel 0
 
     if (supplyvoltage.read() == 0) {
         power_plug_state = 1;
@@ -346,7 +346,7 @@
 
     elec[4] = pel.readADC_SingleEnded(0);       //Fifth PE readout
 
-    while(t.read_us()<(4.5*(cycle_time/5))) {}  //Wait untill 90% of cycle
+    while(t.read_us()<(4.25*(cycle_time/5))) {}  //Wait untill 85% of cycle
     pi.printf("!,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%f,%f,%f,%f,%f,%f,\n", res[4], res[7], res[6], res[5], res[1], res[0], res[2], res[3], elec[0], elec[1], elec[2], elec[3], elec[4], acce[0]*100, acce[1]*100, acce[2]*100, gyro[0]*100, gyro[1]*100, gyro[2]*100); // print all to serial port
     //receiving order: 8 resistive sensors, 5 electric readings, 3 accelerometer axes, 3 gyroscope axes
     
@@ -438,9 +438,9 @@
     pc.baud(baud);
     pi.baud(baud);
     pr1.setGain(GAIN_TWOTHIRDS); // set range to +/-6.144V
-    pr2.setGain(GAIN_TWOTHIRDS)
-    ; // set range to +/-6.144V
+    pr2.setGain(GAIN_TWOTHIRDS); // set range to +/-6.144V
     pel.setGain(GAIN_TWOTHIRDS); // set range to +/-6.144V
+    adsAccu.setGain(GAIN_TWOTHIRDS); // set range to +/-6.144V
     pi.format(8, SerialBase::None, 1);
 
     lock.rise(&trigger_lock);                                               // Interrupt for rising edge lock button.