Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
caiosouzaa

Arduino Programação Sensor de Corrente ACS712 5A

Recommended Posts

Estou com um projeto de geração de energia com a utilização de uma bicicleta adaptada e quero medir a corrente gerada pelo dinamo acoplado na bicicleta com a utilização do arduino. Para isso comprei o sensor de corrente ACS712 5A, porém estou com dificuldade na programação. Alguém que já utilizou esse sensor para medir corrente DC e que tenha o código para ele poderia me ajudar? E também, alguém sabe dizer qual a corrente minima que esse sensor consegue medir?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segundo datasheet de +5A a -5A. Com erro de 1,5% e sensibilidade de 180 a mV/A. Acima dessa corrente acredito que ainda dá para medir mas a porcentagem de erro deve aumentar drasticamente(lembrando que se tem o máximo de tensão da saída ). 

 

Novamente no datasheet se você olhar a tabela "Output Voltage versus Sensed Current" você pode ver como o sensor se comporta com a tensão de saída em relação com os A quem passam. Note que naquele gráfico todas as curvas de temperatura estão uma em cima da outra... ou seja esse gráfico não varia tanto com a temperatura.

 

Sabendo do gráfico da para montar um formula do primeiro grau para saber a corrente, e claro você pode confirmar isso com um multímetro.

Editado por Bommu Perneta

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bommu Perneta obrigado pela ajuda, mas sou iniciante em programação com arduino, aí n sei mt bem como montar a equação e como colocar ela no código. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legalzin este sensor

 

4 horas atrás, caiosouzaa disse:

corrente minima que esse sensor consegue medir

Features

185 mV/A output sensitivity

5.0 V, single supply operation

Output voltage proportional to AC or DC currents

Factory-trimmed for accuracy

Extremely stable output offset voltage

Nearly zero magnetic hysteresis

Ratiometric output from supply voltage

Low-noise analog signal path

Device bandwidth is set via the new FILTER pin

5 µs output rise time in response to step input current

80 kHz bandwidth

Total output error 1.5% at TA = 25°C

Small footprint, low-profile SOIC8 package

1.2 mΩ internal conductor resistance

2.1 kVRMS minimum isolation voltage from pins 1-4 to pins 5-8

 

Portanto quem vai definir a corrente mínima é teu sistema, não necessariamente o sensor.  Teoricamente com um ad de 10 bits a 5V cada bit mede ~5mV. Tem que fazer umas continhas pros 185mV/A

 

 

Legalzin teu projeto

 

4 horas atrás, caiosouzaa disse:

medir a corrente gerada pelo dinamo acoplado na bicicleta com a utilização do arduino

Pra esta façanha, basta-lhe aplicar o sinal num canal e ler o valor analógico analógico e com uma matemática simples, converter para Amper e mostrar num display.

 

1 hora atrás, caiosouzaa disse:

sou iniciante em programação com arduino, aí n sei mt bem como montar a equação e como colocar ela no código

neste caso sugiro que volte à etapa do "pisca led"...não queimou ela né?

 

Deeeeeepois...

Dica: vá por partes: aprenda a escrever num display, aprenda a ler uma entrada analógica, aprenda a converter com uma simples operação de divisão e/ou multiplicação, una os três conhecimentos e seja feliz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Liga o sensor no Arduíno ... deve ter tutorial na net para ligar na porta analógica ... depois como é uma reta o gráfico só pegar dois pontos ... o primeiro no zero e outro em uma corrente conhecida usando um multímetro. Pronto manda o Arduíno enviar essa leitura através do serial monitor. Com dois pontos se faz uma equação da reta. Ai é com você. 
 

Segundo datasheet a tensão de -5A é 1,5V e +5A 3,5V. Ai você teria que olhar o datasheet do arduino e ver a resposta da porta analógicas para esse valor e fazer a formula de corrente e resposta analogica.... en

 

 

enfim melhor fazer na base da medição mesmo... o resto é conteúdo do ensino médio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, Bommu Perneta disse:

Liga o sensor no Arduíno ... deve ter tutorial na net para ligar na porta analógica ... depois como é uma reta o gráfico só pegar dois pontos ... o primeiro no zero e outro em uma corrente conhecida usando um multímetro. Pronto manda o Arduíno enviar essa leitura através do serial monitor. Com dois pontos se faz uma equação da reta. Ai é com você. 
 

Segundo datasheet a tensão de -5A é 1,5V e +5A 3,5V. Ai você teria que olhar o datasheet do arduino e ver a resposta da porta analógicas para esse valor e fazer a formula de corrente e resposta analogica.... en

 

 

enfim melhor fazer na base da medição mesmo... o resto é conteúdo do ensino médio.

Precisa disto não.

A corrente 0A é 2.5v(considerado 5v),e tem sensibilidade 0.185v/a(185mv/a),a equação já está pronta então:

corrente=(tensão_lida-2.5)/0.185

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

só que a porta analógica não é medida em volts

loat voltage = sensorValue * (5.0 / 1023.0);

 

mas ainda não quero fazer conta X)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai ter de enfrentar o problema de calcular a corrente média, e para isso vai ter de saber o tipo de forma de onda que vai ser gerada pelo seu dínamo.

 

Veja aqui, se seu dínamo fornece corrente contínua, a forma de onda é a do desenho mais à direita (b) :

 

13_T02_10.gif.f778fb229773c18ab49346b26a88937d.gif

 

Ou seja, é uma corrente do tipo pulsante, não é uma senoide pura, é uma semi-senoide, e o cálculo do valor médio dela vai precisar que você faça um monte de amostragens dentro do período dessa forma de onda, o qual é determinado pela velocidade com que você vai rodar o dínamo !

 

Se a velocidade é fixa e determinada, então facilita bastante o cálculo. Se não for fixa, sugiro colocar pelo menos dois sensores do tipo hall para determinar a velocidade de rotação do dínamo, usando interrupção para isso, assim você consegue ir mudando dinamicamente o tempo entre as suas amostragens, de acordo com essa velocidade, para conseguir fazer sempre o mesmo numero de amostragens em um período dessa sua forma de onda. Um bom número seriam 32 amostragens em cada período ( como período entendo o tempo de cada semi-senoide completa ).

 

Eu já descrevi algumas vezes o processo matemático para o cálculo da corrente RMS medida por um sensor ACS, usando amostragens no período da senoide aqui neste mesmo Fórum..... mas já fazem alguns anos e não me lembro aonde está isso kkkk sugiro uma boa pesquisa !

 

Paulo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Bommu Perneta ,

 

Esse método de usar o valor de pico só funciona para cargas bem comportadas, tipo 100% resistiva. 

 

Já o método baseado em integral funciona com cargas reais, com uma excelente precisão.

 

Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 horas atrás, Bommu Perneta disse:

Tipo um true rms?  ^^

 

Se a amostragem fosse feita com bem maior frequência, isto é, independente do período do sinal, sim, o resultado pode ser chamado de True RMS.... mas existem limites operacionais, basta ver os limites que os multímetros que se dizem True-Rms apresentam nos folhetos, como o principal deles a frequência dos sinais envolvida na medida, e o segundo maior se refere à forma de onda ser muito "maluca" kkkkk !

 

Por exemplo, se houverem, no sinal a ser medido, frequências em torno de 1 KHz, e quisermos uma boa precisão nas medidas, não adianta fazer samples a 2 KHz como inicialmente a gente pensaria baseado em Nyquist, pois queremos fazer um cálculo aproximado da integral do sinal ( seria como medir a "área" da forma de onda ! ) e para esse cálculo ser preciso, temos de usar o máximo de poder de sampling !

 

Se para o caso acima conseguirmos fazer 32 samplings dentro dessa frequência máxima apresentada pelo sinal que é de 1 KHz, ( significa fazer samplings a 32 KHz ! ) , vamos ter uma boa precisão dessa medida da área, e poderemos fazer o cálculo do True-Rms com boa precisão !

 

Vamos considerar agora a dificuldade disso : Usando um Arduíno que roda a 16 MHz, e considerando o datasheet do Atmega328, não podemos ultrapassar o clock do conversor A/D de 200 KHz.... ( sob pena de perder a precisão nos últimos bits, certo ? ) , então usando um prescaler de 128, teremos 16Mhz/128 = 125 KHz; sabemos que o conversor demora 13 ciclos desse clock, então teremos um sampling máximo de cerca de 9.615 Hz ..... que seria suficiente para fazer a medida de um sinal com frequências máximas de 9615 / 32 = 300 Hz aproximadamente !!!!

 

Claro que a situação acima é para obtermos medidas de 10 bits de resolução.

 

Muita gente fez experiências com a linha Atmega, e chegaram a conclusão de que se apenas 8 bits forem suficientes, a frequência máxima do clock do conversor pode passar de 1 MHz !  Nesse caso, conseguiríamos fazer medidas de frequências até cerca de 1500 Hz !

 

Reparou o porquê a frequência do sinal a ser medido pelos multímetros digitais de baixo custo do tipo True-Rms raramente ultrapassar 1 KHz ?  Quanto maior o poder de processamento do chip utilizado, maior a frequência a ser medida, e claro, maior o custo do multímetro !

 

Paulo

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

E eu achando que o

Em 26/10/2017 às 10:54, caiosouzaa disse:

sensor de corrente ACS712 5A

que o guri queria usar já fazia o trabalho matemático sujo fornecendo  os 180mV/a dc 'bunitinho' com um mínimo de hw auxiliar...

Não acho +

Em 26/10/2017 às 14:03, Isadora Ferraz disse:

Legalzin este sensor

...:tw_confounded:...

  • Haha 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×