42 lines
752 B
C++
42 lines
752 B
C++
#include "measure_hall.h"
|
|
|
|
TwoWire wire();
|
|
Adafruit_ADS1115 ads; /* Use this for the 12-bit version */
|
|
uint64_t lastMeasurement = 0;
|
|
float ADCvolts = 0;
|
|
|
|
void initMeasureHall(void)
|
|
{
|
|
log_i("init ADC");
|
|
if(!Wire.setPins(ADC_SDA, ADC_SCL))
|
|
{
|
|
log_e("FAILED to set i2c pins");
|
|
return;
|
|
}
|
|
if (!ads.begin())
|
|
{
|
|
log_e("Failed to initialize ADS.");
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
log_i("init ADC OK");
|
|
}
|
|
lastMeasurement = millis();
|
|
}
|
|
|
|
void handleMeasureHall(void)
|
|
{
|
|
uint64_t currentmillis = millis();
|
|
if (currentmillis - lastMeasurement > MEASUREMENTINTERVAL)
|
|
{
|
|
ADCvolts = ads.computeVolts(ads.readADC_SingleEnded(MEAS_CHANNEL));
|
|
|
|
lastMeasurement = currentmillis;
|
|
}
|
|
}
|
|
|
|
float getMeasurement(void)
|
|
{
|
|
return ADCvolts;
|
|
} |