Помогите с датчиком ACS712

triis

✩✩✩✩✩✩✩
5 Янв 2024
2
0
Оформи код соответствующим тэгом
Помогите исправить код, необходимо снять значение тока с подключенной нагрузки. Подключал 1.5кВт, отображает 3.86А, при измерении клещами отображает около 8-8.5 A

Датчик ACS712 20A

// пин подключения контакта OUT
#define PIN_OUT A0
// подключение библиотеки
#include <TroykaCurrent.h>

// создание объекта
ACS712 dataI(PIN_OUT);

void setup()
{
// запуск последовательного порта
Serial.begin(9600);
}

void loop()
{
// вывод показаний в последовательный порт
Serial.print("Current is ");
Serial.print(dataI.readCurrentAC());
Serial.println(" A");
delay(1000);
}
 

Вложения

Chak

✩✩✩✩✩✩✩
6 Янв 2024
4
0
@triis,


недавно писал проект с этим датчиком

у меня это реальзовано вот так без стороних библиотек


C++:
const float currentSensorRatio = (5.0 / 1023.0) / 0.1; // значение 0.1 взято из даташита https://www.sparkfun.com/datasheets/BreakoutBoards/0712.pdf - вторая страница таблица Selection Guide

int calibrateCurrentRatio() // просто калибровка датчика, когда ток не идёт. вызываем в сетапе
{
  calibrationValue = analogRead(ammeterPin);
  Serial.println(calibrationValue, "calibrationValue: ", "A");
  return (calibrationValue);
}

float readCurrent() // считываем значения с сенсора
{
  int sensorValue = analogRead(ammeterPin);
  return ((sensorValue - calibrationValue) * currentSensorRatio);
}

void loop()
{
    Serial.print("Current: ");
    Serial.pritntln(readCurrent());
    delay(1000);
}