@ my_xy_projekt --> eventuell hast du ja jetzt mehr Information, als das mir bereits bekannte Datenblatt parat.
Ich habe auch die Kommentare drin gelassen, falls diese noch zur Urteilsfindung beitragen.
#include <Adafruit_ADS1015.h>
Adafruit_ADS1115 ads; /* Use this for the 16-bit version */
void setup(void)
{
Serial.begin(115200);
Serial.println("Hello!");
Serial.println("Getting single-ended readings from AIN0..3");
Serial.println("ADC Range: +/- 6.144V (1 bit = 3mV/ADS1015, 0.1875mV/ADS1115)");
// The ADC input range (or gain) can be changed via the following
// functions, but be careful never to exceed VDD +0.3V max, or to
// exceed the upper and lower limits if you adjust the input range!
// Setting these values incorrectly may destroy your ADC!
// ADS1015 ADS1115
// ------- -------
//ads.setGain(GAIN_TWOTHIRDS); // 2/3x gain +/- 6.144V 1 bit = 3mV 0.1875mV (default)
//ads.setGain(GAIN_ONE); // 1x gain +/- 4.096V 1 bit = 2mV 0.125mV
//ads.setGain(GAIN_TWO); // 2x gain +/- 2.048V 1 bit = 1mV 0.0625mV
// ads.setGain(GAIN_FOUR); // 4x gain +/- 1.024V 1 bit = 0.5mV 0.03125mV
//ads.setGain(GAIN_EIGHT); // 8x gain +/- 0.512V 1 bit = 0.25mV 0.015625mV
ads.setGain(GAIN_SIXTEEN); // 16x gain +/- 0.256V 1 bit = 0.125mV 0.0078125mV
ads.begin();
Serial.println("started");
}
void loop(void){
//int16_t adc0 = ads.readADC_SingleEnded(0);
int16_t adc0 = ads.readADC_SingleEnded(1);
float resistance = 10.2;
float mV = adc0 * 0.0078125;
float mA = mV/resistance;
float output = mapfloat(mA, 0, 20, 20, 125);
//Serial.print("mA: "); Serial.println(mA);
//Serial.print("mV: "); Serial.println(mV);
Serial.print("AIN0: "); Serial.println(adc0);
//Serial.print("temp: "); Serial.println(output);
//Serial.println(" ");
delay(100);
}
float mapfloat(float x, float in_min, float in_max, float out_min, float out_max){
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}