• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z odczytem wartości ADC w ADS1115
#1
Witam, 

Mam Arduino NANO i ESP32 oraz moduł ADC Adafruit ADS1115 - próbuję odczytywać napięcie 3,3V z płytki Arduino NANO (faktyczne zmierzone multimetrem 3,26V) jednak ciągle dostaję zawyżony wynik ~3,63V.

ADS1115 zasilany z nóżki 5V Arduino (faktyczne napięcie ~4,7V).

Ktoś ma pomysł dlaczego? 


18:58:59.604 -> AIN2: 3355  0.63V
18:58:59.604 -> AIN3: 19360  3.63V
18:59:01.617 -> -----------------------------------------------------------
18:59:01.660 -> AIN2: 3355  0.63V
18:59:01.660 -> AIN3: 19364  3.63V
18:59:03.671 -> -----------------------------------------------------------
18:59:03.714 -> AIN2: 3351  0.63V
18:59:03.714 -> AIN3: 19361  3.63V
18:59:05.725 -> -----------------------------------------------------------
18:59:05.769 -> AIN2: 3349  0.63V
18:59:05.769 -> AIN3: 19367  3.63V
18:59:07.791 -> -----------------------------------------------------------
18:59:07.791 -> AIN2: 3350  0.63V
18:59:07.824 -> AIN3: 19367  3.63V
18:59:09.846 -> -----------------------------------------------------------
18:59:09.888 -> AIN2: 3351  0.63V
18:59:09.888 -> AIN3: 19366  3.63V



Poniżej używany przeze mnie kod: 


Kod:
#include <Adafruit_ADS1X15.h>

Adafruit_ADS1115 ads;

void setup(void)
{
  Serial.begin(9600);
  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);
}
 
Odpowiedź
#2
(19-07-2025, 19:00)hkpl87 napisał(a): Witam, 

Mam Arduino NANO i ESP32 oraz moduł ADC Adafruit ADS1115 - próbuję odczytywać napięcie 3,3V z płytki Arduino NANO (faktyczne zmierzone multimetrem 3,26V) jednak ciągle dostaję zawyżony wynik ~3,63V.

ADS1115 zasilany z nóżki 5V Arduino (faktyczne napięcie ~4,7V).

Ktoś ma pomysł dlaczego? 
Pewnie kwestia napięcia odniesienia. Skoro zasilasz  układ napięciem trochę mniejszym od 5V to wynik wychodzi trochę więcej niż naprawde. Przetwornik tak naprawdę podaje jaką część napięcia odniesienia stanowi napięcie mierzone. Nie wiem jak w tym module rozwiązana jest sprawa napięcia odniesienia, być może jest brane napięcie zasilania. Może można to przełączyć, niektóre układy mają wewnętrzne napięcie odniesienia, niezależnie stabilizowane. Ale pewnie jest mniejsze niż 3V.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości