Sorry forgot to add here's the code I'm using
#include "Wire.h"
#include <HCRTC.h>
#include <Wire.h>
#include <Adafruit_ADS1015.h>
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <SD.h>
#define I2CDS1307Add 0x68
File myFile;
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);
Adafruit_ADS1115 ads; /* Use this for the 16-bit version */
HCRTC HCRTC;
int16_t adc0;
int16_t adc1;
int16_t adc2;
int16_t adc3;
uint16_t adcMax = 26280; // Max Valule for ads0,1,2 or 3 seen in serial monitor, when sensor is at max (minus a few for error/ voltage spikes)this is for pin mapping 5v input = 27000ish
uint16_t adcZero = 1000; // Min Valule for ads0,1,2 or 3 seen in serial monitor, when sensor is at min (minus a few for error/ voltage spikes)
uint16_t adcsensor = 700; // Max valve as stated on sensor eg. 700 = 7Bar
float adc0Pressure;
float adc1Pressure;
float adc2Pressure;
float adc3Pressure;
uint16_t adc0Map;
uint16_t adc1Map;
uint16_t adc2Map;
uint16_t adc3Map;
float calcPressure ( uint16_t Input, uint16_t Zero, uint16_t Max, uint16_t MaxOut )
{
uint16_t Span = Max - Zero;
return (((Input - Zero) /(float)Span) * MaxOut );
}
uint16_t mapPressure( uint16_t Input, uint16_t Zero, uint16_t Max, uint16_t MaxOut )
{
return (map( Input, Zero, Max, 0, MaxOut));
}
void setup(void)
{
Serial.begin(9600);
ads.begin();
lcd.begin (20,4);
while (!Serial) { // wait for serial port to connect. Needed for native USB port only
}
if (!SD.begin(10)) {
lcd.setCursor(0,0);
lcd.print("Insert SD Card");
lcd.setCursor(0,1);
lcd.print("Before switching");
lcd.setCursor(0,2);
lcd.print("OFF and back ON");
while (1);
}
}
void loop(void)
{
adc0 = ads.readADC_SingleEnded(0);
adc1 = ads.readADC_SingleEnded(1);
adc2 = ads.readADC_SingleEnded(2);
adc3 = ads.readADC_SingleEnded(3); //change the middle value to just below the lowest number seen in serial monitor (INPUT)
HCRTC.RTCRead(I2CDS1307Add);
lcd.setCursor(0,0);
lcd.print("P0 ");
lcd.print( calcPressure ( adc0, adcZero, adcMax, adcsensor ),2 );
lcd.setCursor(15,0);
lcd.print(" Kpa ");
lcd.setCursor(0,1);
lcd.print("P1 ");
lcd.print( calcPressure ( adc1, adcZero, adcMax, adcsensor ),2 );
lcd.setCursor(15,1);
lcd.print(" Kpa ");
lcd.setCursor(0,2);
lcd.print("P2 ");
lcd.print( calcPressure ( adc2, adcZero, adcMax, adcsensor ),2 );
lcd.setCursor(15,2);
lcd.print(" Kpa ");
lcd.setCursor(0,3);
lcd.print("P3 ");
lcd.print( calcPressure ( adc3, adcZero, adcMax, adcsensor ),2 );
lcd.setCursor(15,3);
lcd.print(" Kpa ");
myFile = SD.open("Data.csv", FILE_WRITE); // open the file. note that only one file can be open at a time,
if (myFile) { // if the file opened okay, data write:
myFile.print(HCRTC.GetDateString());
myFile.print(" ,");
myFile.print(HCRTC.GetTimeString());
myFile.print(" ,");
myFile.print("P0,");
myFile.print( calcPressure ( adc0, adcZero, adcMax, adcsensor ),2 );
myFile.print(" ,");
myFile.print("P1,");
myFile.print( calcPressure ( adc1, adcZero, adcMax, adcsensor ),2 );
myFile.print(" ,");
myFile.print("P2,");
myFile.print( calcPressure ( adc2, adcZero, adcMax, adcsensor ),2 );
myFile.print(" ,");
myFile.print("P3,");
myFile.print( calcPressure ( adc3, adcZero, adcMax, adcsensor ),2 );
myFile.println(" ,");
myFile.close(); // close the file:
} else
myFile = SD.open("Data.csv"); // re-open the file for reading:
if (myFile) {
while (myFile.available()) { // read from the file until there's nothing else in it:
Serial.write(myFile.read());
}
myFile.close(); // close the file:
}
Serial.print(HCRTC.GetDateString());
Serial.print(" ");
Serial.print(HCRTC.GetTimeString());
Serial.print(" adc0 ");
Serial.print(adc0);
Serial.print(" P0 = ");
Serial.print( calcPressure ( adc0, adcZero, adcMax, adcsensor ),2 );
Serial.print(" Kpa");
Serial.print(" adc1 ");
Serial.print(adc1);
Serial.print(" P1 = ");
Serial.print( calcPressure ( adc1, adcZero, adcMax, adcsensor ),2 );
Serial.print(" Kpa");
Serial.print(" adc2 ");
Serial.print(adc2);
Serial.print(" P2 = ");
Serial.print( calcPressure ( adc2, adcZero, adcMax, adcsensor ),2 );
Serial.print(" Kpa");
Serial.print(" adc3 " );
Serial.print(adc3);
Serial.print(" P3 = ");
Serial.print( calcPressure ( adc3, adcZero, adcMax, adcsensor ),2 );
Serial.println(" Kpa");
delay(500);
} // loop