pracuji na měření a regulaci fotovoltaického systému a nyní řeším rozšíření ADC vstupů u ESP8266, protože jeden je málo. Použil jsem ADS1115. Pokud použiji example kód, tak měření napětí se mi podařilo, ale za boha nemůžu přijít na měření proudu. Používám knihovnu emonlib, tudíž zadávám pin a kalibraci. Nevím ale, jak s připojením senzoru na ADS1115 definuji pin.
Pokud použiju kód ADS uvedený níže, tak měření napětí funguje bez problémů. Ještě aby ne .. je to example kód. Ověřil jsem tim ale to, že ADS není vadný a mohl jsem se posunout dále.
Kód: Vybrat vše
#include <Adafruit_ADS1X15.h>
Adafruit_ADS1115 ads; /* Use this for the 16-bit version */
void setup(void)
{
Serial.begin(9600);
ads.setGain(GAIN_ONE); // 1x gain +/- 4.096V 1 bit = 2mV 0.125mV
if (!ads.begin()) {
Serial.println("Failed to initialize ADS.");
while (1);
}
}
void loop(void)
{
int16_t adc0, adc1, adc2, adc3;
float volts0;
adc0 = ads.readADC_SingleEnded(0);
volts0 = ads.computeVolts(adc0);
Serial.print("AIN0: "); Serial.print(adc0); Serial.print(" "); Serial.print(volts0); Serial.println("V");
delay(1000);
}
Kód: Vybrat vše
#include "EmonLib.h"
EnergyMonitor emon1;
void setup()
{
Serial.begin(9600);
emon1.current(1, 111.1); // Current: input pin, calibration.
}
void loop()
{
double Irms = emon1.calcIrms(1480); // Calculate Irms only
Serial.println(Irms); // Irms
}
Kód: Vybrat vše
emon1.current(1, 111.1);
Kód: Vybrat vše
ads.readADC_SingleEnded(0)
Mnohokrát děkuji za rady. Snad se zase něco přiučím.