Problemas com o código do Arduino para o sensor "SparkFun Hall-Effect Current Sensor Breakout - ACS712"

Venho tentando fazer esse sensor funcionar mas só consigo fazer imprimir valores aleatórios no monitor serial do Arduino! Alguém aqui já usou ou tem alguma dica? 

Exibições: 408

Responder esta

Respostas a este tópico

Higor, bom dia.

Qual código voce utilizou?  Link?

Rui

Eu achei esse código aqui e fiz umas adaptações por não ter encontrado o específico desse sensor em questão. 
double sensorPin =A0;
 
int sensorValue_aux = 0;
double sensorValue = 0;
double currentValue = 0;
double voltsporUnidade = 0.004887586;// 5%1023
 
void setup() {
  Serial.begin(9600);
  pinMode(sensorPin, INPUT);
}
 
void loop() {
 
  
    sensorValue_aux = (analogRead(sensorPin) -511); // le o sensor na pino analogico A0 e ajusta o valor lido ja que a saída do sensor é (1023)vcc/2 para corrente =0
    sensorValue += pow(sensorValue_aux,2); // somam os quadrados das leituras.
 
  sensorValue = (sqrt(sensorValue/ 100)) * voltsporUnidade; // finaliza o calculo da méida quadratica e ajusta o valor lido para volts
  currentValue = (sensorValue/0.185); // calcula a corrente considerando a sensibilidade do sernsor (185 mV por amper)
 
  // mostra o resultado no terminal
  Serial.print(currentValue,3);
  Serial.print(" A \n" );
 
  delay(100);
 
}

O código original está no link que segue abaixo. Agradeço muito por  qualquer ajuda!

http://helpdev.com.br/2014/01/01/arduino-sensor-de-corrente-acs712-...

Segue link do sensor incluindo link do datasheet:

https://www.sparkfun.com/products/8882

O Rui já fez a pergunta correta, se possível poste seu código e descreva como esta usando o circuito.

Abs.

Olá, O código está no post anterior.

Usei o sensor ligado em série em um dos fios de uma extensão para que, ao ligar um equipamento, ele possa calcular a corrente que passa pelo fio. Estou alimentando com 5V DC conforme instruções do Datasheet e usando a saída Vout ligada na porta A0 do Arduino. Acredito que não seja nada com a ligação do circuito e sim em algum parâmetro do código. 

Segue link do sensor incluindo link do datasheet 

https://www.sparkfun.com/products/8882

Oi Higor,

O codigo que voce postou tem uma modificação em relação ao post do link indicado por voce.

No codigo original o autor faz 100 medidas e depois tira a média (dividindo por 100).

Com este recurso ele consegue melhorar a precisão da leitura e pelo meu ver é indispensavel em corrente alternada.

No seu codigo modificado será feita somente uma leitura, mas voce continuou dividindo por 100.

Nesta linha " sensorValue = (sqrt(sensorValue/ 100)) * voltsporUnidade; // "

Talvez seja isto que cause apresentações de valores aléatórios, pois o valores estão muito

pequenos. (100 vezes menores)

Voce está usando o sensor para medir corrente contínua ou corrente alternada?

Espero ter ajudado.

Rui

Agora me veio uma dúvida ridícula. Estou usando o sensor para medir a corrente exigida por um equipamento X ligado em corrente alternada. O sensor está ligado em série a um dos fios de uma extensão. Só começa a circular corrente quando eu ligo o equipamento na tomada...então é corrente alternada, certo? 

Então seria só tirar esse / 100? 

Já ajudou muito. Muito obrigado mesmo! 

Sim,

Se é da tomada de força residencial é alternada.

Concordo com o Rui, creio que se tirar os 100 vai funcionar.

Abs.

Muito obrigado! vou testar! 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço