Popis
Informačná stránka o senzore prúdu ACS712ELCTR-20A pre ESPHome
| Popis | Senzor prúdu ACS712ELCTR-20A je modul, ktorý umožňuje meranie prúdu pre jednosmerné aj striedavé obvody s rozsahom 20A. |
|---|---|
| Vlastnosti |
|
| ESPHome konfigurácia |
esphome:
name: tanque-agua
friendly_name: tanque-agua
libraries:
- https://github.com/RobTillaart/ACS712.git
includes:
- acs712_component.h
sensor:
- platform: custom
lambda: |-
auto acs712_sensor = new ACS712Sensor();
App.register_component(acs712_sensor);
return {acs712_sensor->current_sensor, acs712_sensor->power_sensor};
sensors:
- name: "Amperes"
unit_of_measurement: A
accuracy_decimals: 2
- name: "Watts"
unit_of_measurement: W
accuracy_decimals: 2
|
| Príklad pre ESPHome |
sensor:
- platform: custom
lambda: |-
auto acs712_sensor = new ACS712Sensor();
App.register_component(acs712_sensor);
return {acs712_sensor->current_sensor, acs712_sensor->power_sensor};
sensors:
- name: "Amperes"
unit_of_measurement: A
accuracy_decimals: 2
- name: "Watts"
unit_of_measurement: W
accuracy_decimals: 2
|
| Príkladový kód pre Arduino |
const int analogInputPin = A0; // Analógový vstup pre senzor prúdu
float voltage = 0; // Namerané napätie
float current = 0; // Nameraný prúd
void setup() {
Serial.begin(9600); // Inicializácia komunikácie sériového portu
}
void loop() {
voltage = analogRead(analogInputPin) * (5.0 / 1023.0); // Prevod hodnoty na napätie
current = (voltage - 2.5) / 0.066; // Výpočet prúdu na základe nameraného napätia
Serial.print("Namerané napätie: ");
Serial.print(voltage);
Serial.print(" V, Nameraný prúd: ");
Serial.print(current);
Serial.println(" A");
delay(1000); // Oneskorovanie 1 sekundu
}
|
https://github.com/marianomd/acs712-esphome
Použitie importovaného čipu ACS712ELCTR-20A.
Pozlátené dosky plošných spojov.
Napájanie 5v.
Rozsah merania: +/- 20A
Merateľné plus alebo mínus 20 ampérov.
Analógový výstup: 100 mV / A
Pracovný prúd: 10mA
Pracovná teplota: -40-85 ° C
Odpor vnútorného vodiča: 1,2 mΩ
Stabilné výstupné ofsetové napätie
Výstupná citlivosť: 66-185mV / A
Keď je prúd 0, výstupom je napätie v strednom bode napätia.
#include “ACS712.h”
class ACS712Sensor : public PollingComponent {
public:
ACS712 *ACS = new ACS712(A0, 3.3, 1023, 66);
Sensor *current_sensor = new Sensor();
Sensor *power_sensor = new Sensor();ACS712Sensor() : PollingComponent(15000) {}
void setup() override {
ACS->autoMidPoint();
ESP_LOGD(“acs712”, “MidPoint: %d”, ACS->getMidPoint());
ACS->setNoisemV(43);
ESP_LOGD(“acs712”, “Noise mV: %d”, ACS->getNoisemV());
}void update() override {
float average = 0;
//uint32_t start = millis();
int count = 5;
for (int i = 0; i < count; i++) { average += ACS->mA_AC();
}
float amps = average / count / 1000.0;
// float mA = ACS.mA_AC(50,10);
//uint32_t duration = millis() – start;//ESP_LOGD(“acs712”, “Time: %d A: “, duration, amps);
current_sensor->publish_state(amps);
power_sensor->publish_state(amps * 220);
}
};





