Monday, January 17, 2011

Volt-Amperímetro com Arduino - Parte Final: Circuito impresso

Depois de todo o trabalho construindo o protótipo e fazendo o código funcionar, chegou a hora de construir o circuito. Não é o objetivo explicar detalhadamente como fazer circuitos impressos, mas somente uma passada superficial sobre o assunto, além, é claro, apresentar as modificações no projeto para que ele funcione fora da placa do Arduino.


Essa é a continuação do artigo: Volt-Amperímetro com Arduino - Parte 1: Protoboard

Esquemático e layout da placa

O desenho da placa é feito em programas especializados. Existem diversos disponíveis, inclusive gratuitos. Nesse caso eu prefiri desenhar no Eagle da CadSoft dado o tamanho da biblioteca de componentes para ele disponíveis na web, inclusive uma dica interessante é baixar a biblioteca de compoentens da SparkFun que aparentemente possui todos os produtos que eles vendem, uma grande variedade, e pode economizar um bom tempo de desenho. O esquemático é uma visão lógica do circuito e é requisito para desenhar as trilhas e validá-las mais a frente.

Basicamente o que é necessário para rodar um projeto do Arduino em um circuito impresso independente é de uma fonte de alimentação de 5v, de um cristal oscilador de 16MHz e, claro, associar os contatos do microcontrolador com as portas analógicas e digitais da placa do Arduino. O esquema abaixo é popular na web e explica direitinho como precisamos montar o esquemático do projeto para funcionar como no protótipo:


Os componentes novos que devem ser adcionados ao protótipo para funcionar no circuito impresso são:

  • 1 Soquete 28 pinos slim (para colocar o chip Atmega);
  • 1 Conector Jack para placa;
  • 1 Regulador LM78L05;
  • 1 Capacitor 1uf;
  • 1 Capacitor 10uf;
  • 1 Cristal oscilador de 16MHz;

Com os novos componentes e a pinagem do microcontrolador, o esquemático ficou assim:


Através do desenho do esquemático é que é possível validar as trilhas para montar o layout do circuito. Após colocar todos os dispositivos na placa visando facilitar sua conexão, normalmente é necessário escrever o layout das trilhas manualmente, pois os recursos de autoroteamento normalmente não fazem um bom trabalho. Vejam como ficou o layout desenhado para esse projeto:

Layout em PDF.


Confecção da placa de circuito impresso

Não é o objetivo desse artigo ensinar ninguem a corroer placas de cobre, para isso existem diversos artigos por aí. Porém gostaria de fazer umas considerações importantes.

O método utilizado nesse projeto foi a transferência térmica com ferro de passar roupa. Eu até tentei fazer com o toner da impressora direto como alguns artigos por aí tentam explicar, porém como cada impressora possui características diferentes é quase impossível determinar um procedimento que funcione em todos os casos, sem falar nos diversos tipos de ferro de passar roupa e tamanhos de placas a serem transferidas. Além disso é notável a deterioração da parte impressa, o que leva a crer que o tonner não protege o cobre durante a corrosão.

O jeito encontrado que funcionou melhor nesse método foi através do papel Press-n-Peel que eu adquiri pessoalmente em uma loja da Sta. Efigênia (região de São Paulo onde tem umas lojas de eletrônicos). A película azul de poliéster é transferida junto com o tonner e cria uma ótima proteção para a corrosão, além de soltar do papel (plástico, no caso) com bastante facilidade em comparação com a transferência usando somente o tonner com papel couche (ou de revista). Mas não se iludam, o processo não é trivial e também pode haver algum desperdício com tentativas mal sucedidas. Inclusive é recomendado muito cuidado ao manuseá-lo, pois a pelicula azul é bastante delicada e qualquer dobra ou arranhão no papel vai removê-la com facilidade (descobri da pior maneira) e destruir o papel (que não é barato).

Depois de alguns estragos pegando o jeito com o papel, uma transferência bem sucedida (note que ainda foram necessários alguns ajustes, mesmo que mínimos, com a caneta):


Em seguida, após a corrosão:


Por fim, cortada e perfurada:

Layout em PDF.

Para fazer o corte e perfuração da placa foi utilizado uma mini-retífica Dremel com a seu suporte vertical (Workstation 220). Foi utilizado uma broca de 1mm para todos os furos, porém nota-se que ela não é muito adequada para todos os componentes e acabou abrindo demasiadamente algumas ilhas eliminando quase todo o seu contato, o que dificulta considerávelmente a soldagem no final. Nesses casos é importante utilizar um conjunto adequado de brocas CNC.

Montagem dos componentes

A posição dos componentes da placa pode ser visualizada corretamente através dos fontes do Eagle. Os componentes soldados ficaram dispostos como a seguir:


A fim de conservar mais a placa, pois o cobre oxida muito facilmente, ela foi toda estanhada. Esse procedimento torna a colocação dos componentes um pouco complicada, pois ela passa a puxar o estanho, porém é importante para conservar a placa se ela não tiver mascara de solda. Como dá pra notar, o visual dela estanhada não ficou dos melhores:


Por fim providenciei alguns cabos com conectores específicos para facilitar o trabalho com o novo dispositivo:


Conclusão

Para encerrar, uma pequena demonstração do dispositivo funcionando:

67 comments:

  1. Muito Bom o Artigo. Deu até vontade de comprar uma placa de cobre pra brincar de corroer em casa. rs

    ReplyDelete
  2. David, se for fazer sujeira na sua casa não fala pra sua mulher que foi idéia minha! :D

    ReplyDelete
  3. Ainda bem que existem pessoas como vc,que coloca todo o processo da montagem muito bem explicado.
    Eu rodei muito na rede para achar está jóia de montagem.parabéns e obrigado.
    *Estou montando uma fonte ,em breve voltarei para mostrar.

    ReplyDelete
  4. Que bom que gostou, colega anônimo. Deixe a gente ver essa sua fonte. Ela será AC/DC ou DC/DC? Como voce pretende regulá-la?

    ReplyDelete
  5. Boa tarde! Gostei muito do seu projeto e vou montá-lo adicionando uma placa de rede para monitoramento remoto de carga de baterias. Você vê algum poblema em alimentar o circuito com as próprias baterias? Obrigado!

    ReplyDelete
  6. Ismael, legal que tenha gostado. Não vejo problema algum em alimentar o circuito pela própria fonte que vai ser medida. Na verdade você só precisa ficar atento para não jogar uma grande voltagem no circuito que poderá fazer o regulador esquentar dimais e desligar, além, é claro, de não jogar uma carga muito alta para esse circuito medir. Esse circuito consegue medir até cerca de 10A dependendo da calibração alcançada, porém não estou certo se ele vai aguentar essa carga durante muito tempo. Pode não ser significativo para o seu uso, mas a calibração pode variar entre a voltagem de pico e corte da sua bateria.

    ReplyDelete
  7. Meu caro , parabéns pelo projeto , estou aguardando chegar meu arduino e devo fazer esse projeto para colocar na minha fonte .
    Uma pequena dúvida até que tensão ele pode ser sem queimar ? Pelo que vi em algum lugar o arduino só pode receber entrada de até 5V mas parece que tem um divisor de tensão na entrada , é isso mesmo ?

    ReplyDelete
  8. Corretíssimo! O divisor é de 1/10 (10K/100K) e com isso ele mede até 50v. Nada impede de você usar outras combinações, só não esqueça de arrumar a variável VOLTAGE_MAP com a tensão máxima que seu divisor consegue abaixar para 5v. Só não use resistores de valor muito baixo (menor que 1K, por exemplo) no divisor para não ter que se preocupar com a potência deles.

    ReplyDelete
  9. Meu caro obrigado pela resposta , tenho mais uma perguntinha .
    Nos esquemas que ví da montagem do AtMega328 ele pede para colocar um capacitor junto ao cristal (http://arduino.cc/en/uploads/Main/standalone-schematic.jpg ) em seu esquema não existe esses capacitores , tem algum motivo especial para isso ?

    ReplyDelete
  10. Meu caro obrigado pela resposta , tenho mais uma perguntinha .
    Nos esquemas que ví da montagem do AtMega328 ele pede para colocar um capacitor junto ao cristal (http://arduino.cc/en/uploads/Main/standalone-schematic.jpg ) em seu esquema não existe esses capacitores , tem algum motivo especial para isso ?

    Obs.: Essa sua mensagem foi postada quando o blogspot estava em manutenção e porisso eu acabei tendo que repostá-la à partir do email de notificação.

    ReplyDelete
  11. O motivo é que eu não tinha esse capacitor na época que montei esse projeto. Para esse tipo de aplicação o seu valor é muito sensível e geralmente não vale a pena utilizar um de valor errado, porisso eu optei por deixar sem nenhum. Até tentei os capacitores usados em PIC 4mhz que tenho aqui, mas o circuito nem ligava.

    Enfim, se você tiver como conseguir esse capacitor eu recomendo que você o coloque sim no circuito. Hoje em dia eu não deixo mais isso faltar na minha caixa de tranqueiras eletrônicas. :P

    ReplyDelete
  12. tem como fazer um analizador de energia para ler corrente de 1500A e 220V usando garras ou adaptando alicate amperimetro

    ReplyDelete
  13. lariuxi, claro que dá. Você só precisa do sensor específico para ler a informação, pois não será possível fazê-lo conectando direto na porta do microcontrolador com um divisor e shunt como este está feito. Creio que não seja um trabalho trivial. Se realmente o fizer, não deixe de compartilhar! :P

    ReplyDelete
  14. Tem como fazer uma leitura da carga da bateria de forma generica e mostrar o resultado em percentual...

    ReplyDelete
  15. Claro que sim! Você pode calcular pelo intervalo de trabalho da bateria. A voltagem que ela fica quando está toda carregada seria o seu 100% e a voltagem mínima de trabalho seria o 0%. Entendeu? Basta fazer a conta ou usar a função map().

    ReplyDelete
  16. posso monitorar a bateria do meu carro com este projeto? vai funcionar o amperimetro tambem?

    ReplyDelete
  17. Monitorar a bateria em uso no carro? Creio que ele deva queimar durante a ignição do motor.

    ReplyDelete
  18. Ok, você conhece alguma forma de monitorar a bateria atraves do arduino sem colocar ele em risco hehehe?

    ReplyDelete
  19. Você já viu a grossura dos fios que conectam a bateria do carro? Você até pode usar esse modelo aí, só precisaria reforçar MUITO o circuito para maior amperagem e para a resolução/escala do conversor A/D. Esse módulo deve aguentar http://www.sparkfun.com/products/9028 e não é difícil de fazer.

    ReplyDelete
  20. Amigo desculpe as perguntas noobies, mas aqui vai mais uma hehehe, assim, no caso do seu projeto a tensao esta passando pelo arduino para alimentar outro aparelho, entao eu estava pensando, se eu usasse só para monitorar sem alimentar mais nada, isso também poderia danificar o meu arduíno, ou ele consumiria só a voltagem e a amperagem que precisa?

    ReplyDelete
  21. Não. O microcontrolador não pode alimentar nada, ele produz pouca corrente para ligar um LED ou coisa assim, mas em geral voce usa ele para controlar transistores e afins, esses sim vão gerir corrente. A alimentação do dispositivo é totalmente separada da corrente que entra para medição.

    Se você olhar no esquemático vai ver que o POWER_JACK alimenta o circuito enquanto os IN e OUT dos bornes estão conectados diretamente entre si. Enfim, qualquer coisa conectada neles vão funcionar mesmo se o dispositivo não estiver sendo alimentado/ligado.

    ReplyDelete
  22. Boa tarde!
    Parabéns pelo o trabalho ficou show!
    Sinceramente pretendo montar esse projeto com poucas alterações, eu acha :)
    A ideia é ler a tensao e enviar via porta serial para o micro. Esse é um projeto.
    E o outro seria conectar uma carga (dispositivo)e o arduino ficaria lendo e reportando para porta serial full time.
    Poderia me auxiliar?
    contato: engsfw@gmail.com

    ReplyDelete
  23. Ayres, os dois projetos me parecem iguais. :D

    Mas enfim, se você ativar o modo debug já consegue ler tudo no PC, corrente e tensão. Talvez seria legal aumentar a velocidade da porta também, mas basicamente já da pra fazer o que você quer.

    ReplyDelete
  24. Amigo conseguir montar. Ficou muito fera..

    Agora quero montar um para tensão alternada. Eu tentei ligar esse modelo para medir corrente alternada e da o problema que porque o arduino fica lendo valores variaveis pq e uma onda senoidal ai ele fica lendo 0 depois 2v. Como que varia para consertar isso? valeuuu

    ReplyDelete
  25. Muito bom! :D

    Quanto ao AC, não sei te dizer de cabeça. Creio que se der uma pesquisada você acha, como as potências normalmentes são outras, muita coisa deve mudar muita coisa no circuito. Se resolver algo posta aqui pra gente saber como você fez.

    ReplyDelete
  26. bom dia amigo Renato gostaria de dar os parabens pelo excelente trabalho era justamente oq eu preciso para construir minha fonte de bancada, sou tecnico formado recentemente, ainda estou bem "cru" na eletronica, acabo de comprar um arduino uno, e pretendo construir ao em vez de comprar, minha fonte pra uso na bancada de serviço... estava pensando em uma fonte simetrica de no minimo 6Amperes 24voltes oq pensa da ideia, poderia me ajudar com algumas dicas, projetos ideias? obrigado!!!

    ReplyDelete
  27. Ola Renato...

    Gostaria de saber se consigo medir tensões entre 110V e 250V, ou se puder me dizer as alterações que devo fazer, pois tenho um projeto de medidor de fases e queria agrupar um visor para fazer junto a medição de tensão...

    Valeu ate mais...


    Julio santos

    ReplyDelete
    Replies
    1. Sem chance, você deve estar querendo fazer algo para AC. Assim que fizer algo nesse sentido eu publico como faz.

      Delete
  28. Renato, disponibiliza o esquemático em outro servidor, pois o megaupload esta fechado(lamentável). Parabéns e agradeço.

    ReplyDelete
    Replies
    1. Terrível, hein.. Ainda não tenho a menor idéia de onde colocar os arquivos. Sem falar que o blogspot mudou algo no tema que fez bagunçar o design também. Preciso arrumar mais tempo para colocar isso em ordem. Valeu!

      Delete
  29. Renato Otimo poster, estou a elaborar um TCC que estarei usando um multimetro desse, poderia me dizer qual é a voltagem mais alta que ele suporta caso for baixa da para aumentar? os dados do display passa para no software?

    Ficaria muito grato se puder responder.

    Diego Fanali
    diegofanali@hotmail.com

    ReplyDelete
  30. gostaria de baixar os arquivos que estavam no megaupload.
    Voce teria um endereço para baixa-los ?

    Lineuve Figueiredo
    Lineuve@geld.net.br

    ReplyDelete
  31. bom dia amigo, gostaria de uma ajudinha se possivel claro, estou montando uma fonte pra minha bancada, 1,5V - 30V/3Amperes usando Lm350t seria de muita ultilidade usar esse projeto somado a minha fonte vc poderia me passar o layout da sua placa e o codigo de programação do c.i atmega? eu ja possuo o arduino uno, acho q nao seria tão complicado fazer tendo em vista q o mais caro eu ja tenho em casa.... obrigado pela atenção...meu email é junior.sanches@gmail.com

    ReplyDelete
  32. junior, queria dar uma olhada nos arquivos do mega upload. farmsid@pop.com.br

    ReplyDelete
  33. olá Renato, gostaria de baixar o layout da placa.. rrossco@hotmail.com . desde já agradeço!

    ReplyDelete
  34. Ciao Renato
    Sono francese e sono molto interessato al progetto, ma ho bisogno del codice per programmare l'Atmega
    mi puoi mandare sulla mia casella di posta?
    Se questo è il caso, qui è il mio indirizzo
    laurentxo1@gmail.com
    la ringrazio molto per il progetto complimenti
    presto
    Laurent

    ReplyDelete
    Replies
    1. Laurent, o código está disponível na primeira parte do artigo. Prefira usar o Inglês, ou até mesmo o Francês, comigo como alternativa ao Português. Tive de colocar seu Italiano no tradutor do Google.

      Delete
  35. Pode me ajudar com essa programação.Não entendo de arduino...Que software usou para gerar o hex?

    ReplyDelete
    Replies
    1. filhotão(kkkk), no site do Arduino voce baixa a IDE: http://arduino.cc/en/Main/Software
      Ela compila e transfere o software para a placa Arduino. No final você pode retirar o chip ATMega do soquete do Arduino e colocá-lo no da PCI finalizada.

      Delete
    2. after uploading the program to arduino board, can this work in thier own board? without removing the micro controller and place into the pcb board layout?

      Delete
  36. Gostaria de saber qual a tensão e a corrente máxima que o projeto aguenta da maneira que foi montado por você. E se eu pretendesse realizar a leitura de 220V com uma corrente que não ultrapasse 9A. É possível com o seu projeto? Os dados da leitura ficam armazenados na memoria ou não? E pra correntes e tensões maiores quais as mudanças deveriam ser feitas? Desculpe pelas perguntas um tanto que besta, mas possuo pouco conhecimento nessa área. Obrigado

    ReplyDelete
    Replies
    1. Ele só lê DC até 50v. Você pode até mexer no divisor para conseguir voltagens maiores, mas vai sacrificar a precisão. E volto a dizer: "ele só lê DC". E ele também só memoriza a calibração, não os valores. Para mexer na corrente, precisava pesquisar isso novamente para saber como aumentar, mas talvez valha mais a pena você pegar um módulo especializado que faça isso.

      Delete
  37. Boa noite amigo Renato. Gostaria de dar os parabéns pelo excelente trabalho. O projeto do volt-Amp era exatamente o que eu preciso para construir um prototipo de um volt-Amp que memorize em uma memoria EEPROM as 10 ultimas leituras e transmita utilizando um transceptor uma vez ao dia. Tem alguma coisa a respeito? O código roda em um Arduino Nano?

    ReplyDelete
    Replies
    1. Até acho que roda em nano sim, mas você tem um belo trabalho a frente para incluir essas funcionalidades adicionais. Boa sorte!

      Delete
  38. Boa tarde, sou novo com o arduino e tentei montar este circuito. O voltímetro funcionou, porém estou tendo problemas com o amperímetro. Gostaria de saber se o shunt resistor é um resistor normal de baixa resistencia, no caso 0,47R ou tem que ser um resistor especial?

    ReplyDelete
    Replies
    1. O resistor é normal, ele só precisa ser de maior potência. Os problemas que eu tive na montagem eram referentes ao contato entre as trilhas por essas serem muito próximas. Talvez fosse o caso de verificar essa hipótese.

      Delete
  39. This comment has been removed by the author.

    ReplyDelete
  40. Parabéns,
    Post muito bom e útil.
    Montei aqui, dei uma personalizada para medir até 70 Amperes.

    Só Alegria!

    ReplyDelete
  41. ola parabéns pelo projeto, vi que mudaste para medir ate 70a Carlos, seria possível mudar para medir ate uns 110a
    grato

    ReplyDelete
  42. Parabéns pelo trabalho Renato. Sou novato na área e consegui fazer esse projeto. Fiz a leitura da tensão certinho, mas não consegui da corrente. Como eu faço para ler a corrente gerada por um motor "gerador"?? O que eu eu posso ligar no borne "out"?? Obrigado

    ReplyDelete
    Replies
    1. A corrente é o consumo. No borne out você coloca algum dispositivo que consuma a energia. Sem consumo não tem corrente. A energia precisa passar pelo dispositivo para ele medir esse consumo.

      Delete
  43. tem como fazer essa montagem sem a utilização desta placa

    ReplyDelete
    Replies
    1. Você pode fazer na protoboard, a parte 1 tem o esquema de como montá-la, ou você pode comprar aquelas placas já perfuradas. Só lembra de reforçar as trilhas que conduzem a energia.

      Delete
  44. Boa tarde, muito bacana esse seu projeto amigo, gostaria de saber se eu posso usar esse projeto em uma fonte ajustavel?

    ATT: marcelo

    ReplyDelete
    Replies
    1. É justamente pra funcionar com essas fontes que ele foi criado! Curioso que eu só fiz essa parte do display, a fonte mesmo eu nunca terminei. :D

      Delete
  45. after uploading the program to arduino board, can this work in thier own board? without removing the micro controller and place into the pcb board layout?
    please help..

    ReplyDelete
    Replies
    1. If you see the first part of this project, it is showing the prototype phase where everything runs from Arduino board and the connections are made using a breadboard.

      Delete
    2. Renato montei em protoboard aqui porém de vez em quando ao colocar uma carga onde é mostrada a corrente, os caracteres do LCD apagam completamente, somente volta ao normal quando reseto o microcontrolador. Isso acontecia com você ? ou pode ser algum problema de compilação ?

      Delete
  46. thanks sir for reply, can this work on ATMEGA168 ? because i dont have atmega8 microcontroller. please help

    ReplyDelete
  47. Boa tarde.
    O projeto em questão mede corrente e tensão simultaneamente? É que no video só mediu tensão.

    Grato!

    ReplyDelete
  48. boa tarde
    Sera que daria pra fazer um deses para medir a voltagem de uma fonte slim de computador? Gostaria de ficar medindo o 5V e 12V dela. Pois trabalho com informativa reparando fontes e esse projeto me adiantaria muito
    obrigado

    ReplyDelete
  49. como faço pra baixar o esquema completo ???

    ReplyDelete
  50. Teria como modificar o código para ele fazer o calculo de potência e mostrar no LCD?

    ReplyDelete
  51. Boa tarde!
    c. tem alguma versão para display de LED ( 3 ou 4 dígitos de 7 segmentos)?
    Abraço!

    ReplyDelete
  52. Montei na protoboard com um arduino nano, agora pretendo montar numa placa de circuito eletrico e testar se funciona com atmega8 (tenho uns 2 comigo) e depois colocar na minha fonte de bancada.

    olhem como ficou:
    https://www.youtube.com/watch?v=8aw-ms-VQPc

    ReplyDelete
  53. Muito bom o artigo, gostaria de saber se você pode me ajudar, eu quero fazer um volt-amperímetro, mas eu quero mostrar no display o resultado de uma equação que usa a voltagem e a amperagem lidas pelo aparelho.
    Complica muito?
    Ex: display=15*V/A mais ou menos isso.

    ReplyDelete
  54. Muito bom esse código.
    Como faço para indicar no lugar do amperitro um valor que seria a tensão dividida pelo corrente. Transformado em ohmimetro

    ReplyDelete