O Módulo Sensor de Corrente ACS712 foi desenvolvido para ser utilizado em conjunto com microcontroladores na medição de correntes AC ou DC.
O módulo ACS712 nada mais é que um placa com o ACS712 e tudo que é preciso para usá-lo de maneira mais simples. Lembrando que este é um sensor de corrente invasivo, onde é necessário interromper o circuito para que ele seja instalado. Para este tutorial, será utilizado o módulo ACS712 30A, que por sua vez, consegue ler valores de corrente de até 30 Ampères.
Modelos disponíveis:
ACS712ELCTR-05B-T
ACS712ELCTR-20A-T
ACS712ELCTR-30A-T
Algumas características do modulo usado em automações com Arduíno, ESP32 e ESP32
- Faixa de medição + ou - de 5A, 20A e 30A
- Alimentação de até 5.5V
- Tempo de resposta de 5µs (micro segundos)
- Saída analógica proporcional de 66 mV/A para sensor de 30A, para sensor de 5A use 185 mV/A e para de 20A use 100 mV/A
- Dimensões 30 x 12 x 12mm
Datasheet contendo detalhes da configuração pode ser baixado do link abaixo:
Abaixo pode ver um exemplo de código para poder testar seu modulo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | float vetCorrente[300]; float valor_medio; float valor_Corrente; void setup() { Serial.begin(9600); pinMode(A0, INPUT); } void loop() { double maior_Valor = 0; double valor_Corrente = 0; float tensao = 127; float potencia = 0; for(int i = 0; i < 300; i++) { vetCorrente[i] = analogRead(A0); delayMicroseconds(600); } int somaTotal = 0; for(int i = 0; i < 300; i++) { somaTotal = vetCorrente[i] + somaTotal; } valor_medio = somaTotal / 300; valor_medio = valor_medio * 0.004882812; valor_Corrente = valor_medio - 2.5; valor_Corrente = valor_Corrente * 1000; valor_Corrente = valor_Corrente / 66; //sensibilidade : 66mV/A para ACS712 30A / 185mV/A para ACS712 5A Serial.print("Corrente = "); Serial.print(valor_Corrente); Serial.println(" A"); potencia = valor_Corrente * tensao; Serial.print("Potência = "); Serial.print(potencia); Serial.println(" W"); Serial.print("."); delay(500); Serial.print("."); delay(500); Serial.print("."); delay(500); Serial.println(""); } |