Mam Arduino NANO i ESP32 oraz moduł ADC Adafruit ADS1115 - próbuję odczytywać napięcie 3,3V (faktyczne zmierzone multimetrem 3,26V) jednak ciągle dostaję zawyżony wynik ~3,62V. Ktoś ma pomysł dlaczego?
@PieknyWojciech: 1) Jakie napięcie jest podłączone do drugiego kanału ADC? 0V? 2) Jak dokładnie jest podłączony sygnał do ADC? Jaka jest impedacja źródła sygnału? 3) Jaka konkretnie konfiguracja ADC? - sampling rate, full scale rate. 4) Offset jest stały, niezależnie od wartości podanego napięcia czy się zmienia wraz z wartością
@groman43: jest mały rozrzut, ale dokładność jest wystarczająca żeby stwierdzić, ze coś jest nie tak. Na początku zaczynałem od zasilacza laboratoryjnego, Owona XDM1041 (tutaj pokazywało mi wydaje sie bardziej precyzyjny wynikbz 4 miejscami po przecinku)i źródła TL431. Zamiast 2,5V pokazywało więcej. Wtedy postanowiłem użyć ESP32 i nie zasilać płytki z USB komputera tylko z power banka a dane wysyłać po BT, ale efekt ten sam. Póki co jedynie nie mogę
Mam Arduino NANO i ESP32 oraz moduł ADC Adafruit ADS1115 - próbuję odczytywać napięcie 3,3V (faktyczne zmierzone multimetrem 3,26V) jednak ciągle dostaję zawyżony wynik ~3,62V.
Ktoś ma pomysł dlaczego?
#include <Adafruit_ADS1X15.h>
Adafruit_ADS1115 ads;
void setup(void)
{
Serial.begin(9600);
Serial.println("Hello!");
Serial.println("Getting single-ended readings from AIN0..3");
ads.setGain(GAIN_TWOTHIRDS);
if (!ads.begin()) {
Serial.println("Failed to initialize ADS.");
while (1);
}
}
void loop(void)
{
int16_t adc2, adc3;
float volts2, volts3;
adc2 = ads.readADC_SingleEnded(2);
adc3 = ads.readADC_SingleEnded(3);
volts2 = ads.computeVolts(adc2);
volts3 = ads.computeVolts(adc3);
Serial.println("-----------------------------------------------------------");
Serial.print("AIN2: "); Serial.print(adc2); Serial.print(" "); Serial.print(volts2); Serial.println("V");
Serial.print("AIN3: "); Serial.print(adc3); Serial.print(" "); Serial.print(volts3); Serial.println("V");
delay(2000);
}
źródło: image
Pobierzhttps://learn.adafruit.com/calibrating-sensors
1) Jakie napięcie jest podłączone do drugiego kanału ADC? 0V?
2) Jak dokładnie jest podłączony sygnał do ADC? Jaka jest impedacja źródła sygnału?
3) Jaka konkretnie konfiguracja ADC? - sampling rate, full scale rate.
4) Offset jest stały, niezależnie od wartości podanego napięcia czy się zmienia wraz z wartością
1) Wise w powietrzu - jeśli podłączę pod GND to mam:
19:41:09.820 -> AIN2: -45 -0.01V19:41:09.854 -> AIN3: 19362 3.63V
19:41:11.871
[edit] - jednak da się zmienić data rate - defaultowo 128 - po zmianie na 8 to samo
Być może problem sprawia sam przetwornik a niestety nie mam innego na podmianę do sprawdzenia
1) Napięcie na wejściach nie powinno przekraczać VDD + 0.3V
2) Jest ścisła zależność pomiędzy FSR a VDD.
Na 99.9% Twoje VDD to 3.3V a FSR 6.144V. Dlatego ADC głupieje.
źródło: Screenshot 2025-07-19 at 19.21.14
PobierzNapięcie nie przekraczało Vdd +0,3V.
Nie przekraczało nawet Vdd
źródło: Screenshot_20250719_204547_Gallery
Pobierzads.setGain(GAIN_TWOTHIRDS);na
ads.setGain(GAIN_ONE);Póki co jedynie nie mogę