Code:
#include <ADC.h>
ADC *adc = new ADC();
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
//analogReadRes(16);
//analogReadAveraging(32);
pinMode(A10, INPUT); //Diff Channel 0 Positive
pinMode(A11, INPUT); //Diff Channel 0 Negative
adc->setAveraging(32, ADC_0); // set number of averages
adc->setResolution(12, ADC_0); // set bits of resolution
adc->setConversionSpeed(ADC_VERY_HIGH_SPEED, ADC_0); // change the conversion speed
adc->setSamplingSpeed(ADC_VERY_HIGH_SPEED, ADC_0); // change the sampling speed
adc->setReference(ADC_REF_1V2, ADC_0);
adc->enablePGA(64,ADC_0);
adc->setAveraging(32, ADC_1); // set number of averages
adc->setResolution(12, ADC_1); // set bits of resolution
adc->setConversionSpeed(ADC_VERY_HIGH_SPEED, ADC_1); // change the conversion speed
adc->setSamplingSpeed(ADC_VERY_HIGH_SPEED, ADC_1); // change the sampling speed
adc->setReference(ADC_REF_3V3, ADC_1);
delay(2000);
}
int value;
int internalvalue;
int averages;
int average;
unsigned long lastmillis;
int internalaverage;
void loop() {
// put your main code here, to run repeatedly:
//int data1 = analogRead(A10);
//int data2 = analogRead(A11);
//int data = data1-data2;
value = adc->analogReadDifferential(A10, A11, ADC_0);
internalvalue = adc->analogRead(39);
averages++;
average = average + value;
internalaverage = internalaverage + internalvalue;
if (averages >= 50)
{
float refvolt = ((float)internalaverage)*3.3/(4096*averages);
float forceaverage = average;
float force = forceaverage*.4766*refvolt/averages;
int conversiontime = millis() - lastmillis;
lastmillis = millis();
int zero = 7;
int forcezeroed = force + zero;
Serial.println(forcezeroed);
Serial.println(conversiontime);
Serial.println(value);
Serial.println(refvolt,6);
// Serial.println(data);
Serial.println(forceaverage);
Serial.println(" ");
averages = 0;
average = 0;
internalaverage = 0;
delay(250);
}
}