ACS 712 em corrente alternada (CA)

Depois de algumas pessoas terem me dito que o ACS712 retorna valores negativos em Corrente Alternada (CA) resolvi dar uma pesquisada e encontrei um Sketch que pode resolver o problema.

Ainda não testei o código, mas compilou legal no IDE 1.5.2. Pelo código é para funcionar sem muita dificuldade.

Neste post também estou testando a forma correta de colocar códigos no blog. Da forma como eu vinha fazendo não dava para copiar e colar no IDE.

//retirado de <a href="http://www.seriallink.com.br/forum/viewtopic.php?f=46&t=1900">http://www.seriallink.com.br/forum/viewtopic.php?f=46&t=1900</a>
const int sensorPin = A0;
float sensorValue_aux = 0;
float sensorValue = 0;
float currentValue = 0;
float voltsporUnidade = 0.0048828125;

void setup() {

Serial.begin(9600);
}

void loop() {

 for(int i=500; i>0; i--)
 {
 sensorValue_aux = (analogRead(sensorPin) -511); // le o sensor na pino analogico A0 e ajusta o valor lido ja que a saída do sensor é vcc/2 para corrente =0
 sensorValue += pow(sensorValue_aux,2); // soam os quadardos das leituras no laco
 }

sensorValue = (sqrt(sensorValue/ 500)) * voltsporUnidade; // finaliza o calculo da méida quadratica e ajusta o valor lido para volts
 currentValue = (sensorValue/66)*1000; // calcula a corrente considerando a sensibilidade do sernsor (66 mV por amper)

 // mostra o resultado no terminal
 Serial.print("corrente = " );
 Serial.print(currentValue);
 Serial.print("\n" );
 sensorValue =0;
 delay(150);

}

Com esse código é possível medir corrente de lampadas, eletrodomésticos e outros.
O que o código faz é uma transformação quadratica para que os resultados sejam mostrados da forma correta. No caso da corrente contínua essa transformação não é necessária.

PCB com tinta para máscara de solda (PCB UV Curable Solder Mask)

Bom pessoal, ainda não o tutorial para usar as tintas para máscara de solda que são vendidas no Ebay, mas pelo menos fiz algumas fotos para mostrar como ficam as placas depois de reveladas.

Comprei essa tinta para mascara de solda pelo Ebay. Não sai caro e da pra fazer muitas placas. Um potinho com 100g saiu por uns R$15,00 na cor azul e R$12,00 o verde. No método fotográfico, a tinta contém um fotossensibilizante que reage com alguma onda luminosa e se polimeriza, onde não pega a luz não ocorre a polimerização. Existe vários tipos de tinta para esse fim, mas o que muda de uma tinta para outra são só alguns detalhes no procedimento e a forma de fazer a “revelação” da foto.

Basicamente o que faço é o seguinte:

  1. Preparo do fotolito (pode ser laser ou jato de tinta, mas a laser oferece qualidade melhor);
  2. limpeza da placa;
  3. aplica uma quantidade pequena de tinta numa das extremidades da placa e cobre com um plastico bem fino e transparente (Tenho usado saquinhos para embalar bijuterias, fácil de achar nessas lojas de R1,99);
  4. passa um rolo, suavemente, sobre o plastico para espalhar a tinta sobre a placa;
  5. Coloca o fotolito sobre a placa (não precisa retirar o plastico que foi usado para aplicar a tinta. No fórum que aprendi a usar essa tinta o cara passava a tinta direto na transparência, mas colocando esse plastico entre a placa e o fotolito vc pode usa-lo mais vezes);
  6. Leva para polimerizar;
  7. Remove a tinta não sensibilizada com Álcool isopropílico, gasolina ou solvente. Eu uso Álcool isopropílico e algodão;
  8. Corroer (Eu tenho usado ácido muriático + água oxigenada);

Essa tinta para mascara de solda que tenho usado polimeriza com raios UV, então tenho usado uma lampada de luz negra de 25W (Emite UV-A, fácil de achar e custa uns R$20,00) por 35 minutos.

As  tintas para silkscreen polimerizam bem mais rápido, mas não consegui correr as placas.

Uso a tinta para fazer a PCB, para fazer a marcara depois da corrosão e em outras placas quando precisam de reparo na mascara.

Esse final de semana ia fazer um tutorial, mas não rolou. Mesmo assim, só para mostrar a um colega como funciona o processo fiz rapidinho uma placa. Segue algumas fotos:

Fiz tudo bem rápido, pois era só pra mostrar para um colega, então é possível um resultado bem melhor.

No fotolito que usei tinha vários circuitos iguais de aproximadamente 5,5 x 2,1cm para confecção de um Arduino básico com o ATmega328P, mas errei no tamanho dos pads e vou refazer a placa. Como era só pra demonstração usei o fotolito errado mesmo.

Pote de tinta com 100g

Pote de tinta com 100g

Placa com a tinta ja polimerizada

Placa com a tinta ja polimerizada

Detalhe da impressão na placa

Detalhe da impressão na placa

Detalhe da impressão na placa

Detalhe da impressão na placa

Detalhe da impressão na placa

Detalhe da impressão na placa

Lampada usada para sensibilização

Lampada usada para sensibilização

Plástico com a tinta não polimerizada

Plástico com a tinta não polimerizada

Sensor de corrente ACS712 30A

Semana passada recebi o sensor de corrente ACS712 de 30A que pedi via Ebay. Foram aproximadamente 30 dias para estrega.

Não havia testado ainda o sensor, pois estava envolvido em outro projeto. Ontem resolvi testa-lo, só para saber como funciona. O sensor é muito fácil de usar, são três pinos somente: VCC , GND e OUT (sinal). O VCC é alimentado com 5V que pode vir direto da placa do Arduino, assim como o GND. O OUT é uma saída analógica e é por essa saída que receberemos as leituras de corrente.

Em vários sensores existe a necessidade de usar bibliotecas próprias (pode ser programado no braço também, mas eu prefiro usar as bibliotecas) para leitura de dados, como o DHT22 que faz leituras de temperatura e humidade, mas isso foi foi necessário para o sensor de corrente. Na verdade até mesmo o exemplo básico AnalogReadSerial que ja vem na IDE do Arduino pode ser usado para leitura.

Descrição conforme o vendedor:

sensor de corrente

Description
1, current sensor chip: ACS712ELC-30A;

2, pin 5V power supply, on-board power indicator;

3, the module can be measured plus or minus 30 amps, corresponding to the analog output 66mV / A;

4, there is no the detection current through, the output voltage is VCC / 2;

5, PCB board size: 31 (mm) x13 (mm);

Note: ACS712 Hall detection principle, when you use to avoid magnetic field impact this!

Com as informações da descrição ja da pra fazer algumas alterações para que as leituras sejam mostradas em Amperes.

1. Esse sensor é bidirecional, as leituras vão de -30A a +30A com equivalente a 66mV/A;

2. Sabendo que as leituras são de +/-30 o valor mostrados é de VCC/2.

3. Testei apenas em corrente continua com 12v, mas ja vi em outros site que pode ser usado em corrente alternada até 220V. A leitura é feita por efeito Hall, então não tem ligação física entre os bornes de leitura do sensor e a saída analógica.

O ZERO será a leitura quando nenhuma corrente estiver passando pelo sensor, mas não será zero nas leituras. Complicado?!?! Vou explicar, as portas analógicas do Arduino usam uma lógica que vai de 0 a 1023, sendo o = 0V e 1023 = 5V, como o sensor é bidirecional, quando o sensor não estiver detectando corrente a tensão será de 2,5V (VCC/2) e a leitura do arduino será algo próximo de 512. Assim, se a corrente for positiva a leitura ira aumentar e se for negativa a leitura irá diminuir.

Nesse ponto, percebi que o meu sensor não serve para projetos com correntes baixas, pois a escala de leitura é muito grande (0 a 30A). Para corrente menores seria melhor utilizar um de 5A por exemplo.

Vamos ao código:

void setup() {
 // inicializa a comunicação seral a 9600 bits por segundo:
 Serial.begin(9600);
 }

void loop() {
 // leitura input no analog pin 0:

//aqui a leitura é mostrada entre 0 e 1023
 int sensorValue = analogRead(A0);

//podemos fazer transformações para mostrar em Amperes

//O código a seguir diz para o Arduino que o valor lido pelo sensor deve ser transformado de 0 a 1023 para -30 a +30.

int outputValue = map(sensorValue, 0, 1023, -30, 30);
 // mostrar valor lido pelo sensor:

Serial.print("Sensor: ");

Serial.print(sensorValue);

//mostrar valor transformado em amperes:

Serial.print("Valor em Amperes: ");

Serial.println(outputValue);

delay(100); // Tempo entre leituras
 }

(Verificado no IDE 1.0.1)

O Código pode ser adaptado para outros projetos sem muito trabalho.

Esquema de ligação do ACS712:

O Fritzing não tem o ACS712 igual ao da foto, mas tem um parecido da Sparkfun.

Untitled Sketch_bb

Dicas – Laboratório de Garagem

Laboratório de Garagem

O Laboratório de Garagem é um site bastante conhecido por quem está no mundo dos Arduinos, é um Fórum com um ar de rede social para entusiastas da eletrônica. O número de frequentadores é grande, o que pode ser comprovado pela quantidade de membros registrados online no bate papo. Ultimamente tenho recorrido bastante a eles, pois agrega um número elevado de pessoas que ja tem experiência com o Arduino e não veem problema algum em ajudar. Tenho tentanto ajudar na medida do possível, mas meu conhecimento ainda não é lá grande coisa.

O endereço para quem quiser dar uma olhada é http://labdegaragem.com

 

Não sei muito sobre a criação do site, mas segue a descrição deles na Aba “Sobre”:

O Laboratório de Garagem é uma iniciativa voltada para a integração, colaboração e apoio aos desenvolvedores independentes de ciência e tecnologia, ou como gostamos de ser chamados: garagistas.

Somos uma rede social, um laboratório comunitário localizado em São Paulo, uma incubadora, uma loja virtual e um grupo de pessoas que acreditam que a próxima revolução pode (e vai) sair de uma garagem, ainda mais se ela estiver conectada a muitas outras garagens.

Conheça nossas iniciativas e faça parte:

Rede Social Lab de Garagem

Rede social que oferece diversos recursos para interação e colaboração entre seus membros (fórum, wiki, blog, etc)
www.labdegaragem.com

Espaço Lab de Garagem

Laboratório comunitário gratuíto que oferece infra-estrutura necessária para o desenvolvimento de projetos e protótipos, contando com ferramentas, equipamentos e suprimentos.
www.labdegaragem.com.br/espaco

Incubadora Lab de Garagem

Localizada no Espaço LdG, a incubadora oferece estrutura básica de escritório e apoio de marketing, logística e administração, para que os projetos desenvolvidos por garagistas possam se tornar em produtos e novas empresas.
www.labdegaragem.com.br/incubadora

Loja Lab de Garagem

Loja virtual que oferece peças, componentes e acessórios para que garagistas de todo o Brasil possam dar vida ás suas ideias. Entre outras marcas, a Loja LdG é distribuidora oficial da SparkFun.com, oferecendo além dos produtos em estoque, qualquer produto que conste no catálogo da empresa. Visite www.sparkfun.com e nos envie os links dos produtos para cotação.
http://loja.labdegaragem.com.br

Endereço:

Rua Berta, 60
Vila Mariana
04120-040 – São Paulo/SP
(11) 3804-0126

 

Horário:

Segunda a Sexta: das 9h00 às 20h00

Arduino Uno e Leonardo

Tenho me dedicado um pouco mais a eletrônica nesses dias. Um das ferramentas que tenho usado no aprendizado é o Arduino. Tenho dois modelos conforme a foto. O Azul é o modelo UNO, uso mais pela facilidade em transportar o projeto para uma PCB. É um modelo mais antigo. O vermelho é o modelo Leonardo, não é trocadilho ou placa customizada é Leonardo mesmo. Modelo mais novo, mas que não difere muito em funcionalidades do UNO. Como o microcontrolador é SMD, fica mais difícil de trabalhar com ele em projetos caseiros.

O UNO não tem esse adaptador (peça verde com alavanca) para o microcontolador (MC), eu uso isso para não forçar a placa cada vez que preciso tirar o MC.

image

Mais detalhes sobre o Arduino pode ser visto aqui: Arduino.cc

Atmega328 – Microcontrolador pinout

atmega328 Arduino pinout

Quando comecei a mexer com o Arduino, não tinha muita noção do que realmente poderia ser feito e o máximo que eu conseguia fazer era piscar leds, com o desenvolvimento comecei a usar o Arduino para muitos testes com sensores e por fim vi que não podia colocar um Arduino em cada projeto. Foi ai que comecei a pensar em usar somente o microcontrolador nos meus testes. Segue a imagem que mais me ajudou nesse processo. Não lembro em que site achei essa imagem, mas se achar a referencia eu posto aqui.