quarta-feira, outubro 12, 2011

Interruptor "touch" com Arduino Pro Mini

 O interruptor da lâmpada do quarto estava indo... já não funcionava mais como deveria. Decidi que poderia tentar fazer um interruptor touch, usando um Arduino Pro Mini  e a lib CapSense.
Depois de montar um protótipo com um vidro de porta-retrato e ver realmente que seria funcional, resolvi fazer.

Usei um vidro fumê de 15x10 com as bordas arredondadas como "espelho", colei um vinil preto (tipo contact) e com um compasso de corte, fiz um círculo no vinil para ficar com uma faixa vazada por onde passa a luz de um led.
O sensor propriamente dito é um círculo de alumínio colado atrás do vinil, e a parte que "faz funcionar" são algumas linhas de código...
É um interruptor com firmware e que pode ter funcionalidades ampliadas com um upload de software, legal né? Futuramente posso programar uma função para desligar após certo tempo... e outras idéias mirabolantes que possam surgir.

=)


Vidro fumê 10x15 4mm, com as bordas arredondadas

Vinil/contact preto colado no vidro. Foi usado um secador de cabelo para esquentar o vinil e não deixar bolhas.

Dois cortes em forma de círculo para fazer um buraco...


... para passar a luz do led.

Aparência final do vidro com o vinil/contact por baixo.

 Esse é o sensor, um pedaço de alumínio de lata de nescau.

Essa é a parte de tras do "interruptor". O círculo de alumínio está colado atras do círculo de vinil/contact para ficar escondido. Esse fio branco está soldado na plaquinha de alumínio e a outra ponta vai para o Arduino.
É este círculo de alumínio que faz o Arduino "sentir" que tem um dedo do outro lado do vidro, por isso que basta encostar no vidro para a lâmpada acender.

Testando se tudo funciona em uma protoboard



...

 O cone é para a luz do led sair somente pelo vidro e não iluminar o interior da tomada.

Tudo pronto e...

... empacotado para ir para o lugar.

Montando...

... e colando com fita dupla face 3M.
Essa luminosidade do led é quando a luz está acesa.
Quando a lâmpada está apagada, o led emite uma luz bem fraca, mas suficiente para ver onde está o interruptor à noite.


Segue 2 vídeos...





 
 
Quanto à parte técnica, usei isso para o relé, só troquei o transistor 2N2222 por um BC548 (tem funcionado bem). E o código, usei o exemplo da lib CapSense como base e fiz as modificações necessárias para usar o led e determinar o funcionamento como se fosse um interruptor. 
 
Edição 11/08/2012:

67 comentários:

  1. Fiko de mais, voce poderia faser mais para vender muita gente compraria eu mesmo compraria fikou muito bom

    ResponderExcluir
  2. Parabens.....é um desses que queria lá emcasa......faz um passo a passo apra nós ou me envie por e-mail.....(carlosalamorim@gmail.com)...com o que devo comprar, somo instalar o software, etc.....

    Aguardo.

    ResponderExcluir
  3. Paulo, obrigado, mas é Arduino, não posso vender. se quiser o código fonte é só pedir.

    Desconhecido, Obrigado, pra montar você vai precisar de um Arduino, a lib CapSense instalada na IDE e seguir os exemplos de código da pagina da lib (tem os links no post). Se quiser o código fonte é só pedir.

    Abraço

    ResponderExcluir
    Respostas
    1. Bom dia, estou tentando compilar o código em um Arduino mega 2560 e não estou conseguindo poderia me enviar o código fonte modificado para esta placa ou até mesmo me auxiliar com as modificações se possível ...grato este projeto está muito bom!

      Excluir
    2. Opa amigo beleza, parabéns pelo seu post.
      Se puder me enviar o seu código-fonte agradeço de coração.
      Desde já agradeço pela atenção.
      maicolmlemos@gmail.com

      Excluir
  4. Olá amigo, parabens pelo projeto.
    Quais os resistores que você utilizou para conseguir detectar do outro lado do vidro?

    Um abraço.

    ResponderExcluir
  5. Saulo, tem como voce me enviar o código e o esquema de montagem com os resistores e tudo?

    agenor_junior@praxair.com

    ficou demais seu projeto cara, quero fazer um desses la m casa, to começando mexer com arduino

    ResponderExcluir
  6. Vinícius

    Não lembro qual o valor do resistor que usei. Pra saber agora, só abrindo a tomada, mas lembro que usei uns 5 ou 6 em série acho que no total dava uns 9M se não me engano. Mas o valor depende de vários fatores, tamanho do metal usado como sensor, distância do fio até o CI, espessura do vidro e vários outros. Por isso, o valor pode variar muito, o caminho é ir testando até encontrar um valor compatível.

    Anônimo,

    O código enviei. O esquema é fácil é um resistor que varia de projeto pra projeto, por isso nao posso especificar (como dito acima), e a parte que liga a lampâda tem um link com uma explicação do esquema no fim do post, no meu caso só troquei o transistor por um BC548.
    Mas se quiser só testar, use o led do pin 13 do arduino e uns resistores, isso já é o suficiente pra ver como funciona.

    Abraço

    ResponderExcluir
  7. Beleza Saulo, fiz isto mesmo, fui testando em serie e no final troquei por um de 10m... show de bola. parabéns!

    Abraço

    ResponderExcluir
  8. Onde você comprou o compasso de corte? :P... não achei em Passo Fundo/RS e na internet tem em alguns sites não muito conhecidos..

    abs

    ResponderExcluir
  9. Vinícius

    Assim mesmo, esse resistor tem que ser na tentantiva e erro. Quanto ao compasso de corte, foi meu pai que comprou pela internet à alguns anos, foi neste site: http://www.oprojetista.com.br/produto/608_Estilete-circular-compasso-para-corte-OLFA-CMP-1.html

    Abraço

    ResponderExcluir
  10. Saulo, parabéns pelo trabalho. Gostei muito do resultado e gostaria de pedir um grande favor se você puder. Sou um analfabelo em eletrônica, teria como mandar uma explicação para leigos de como você montou isso?

    Sou da área de informática e tenho grande interesse em iniciar em Arduíno. Poderia me ajudar?

    Obrigado.

    Victor (victor.msg@gmail.com).

    ResponderExcluir
  11. Anônimo

    Decidi fazer outro post com o diagrama para montar e com o código fonte também. Em breve...

    ResponderExcluir
  12. Parabéns cara mt legal , add lá no msn : Fmatheus_bike@hotmail.com

    ResponderExcluir
  13. Mateus,

    Desculpe, não tenho msn.

    Fiz um post mais detalhado, com o esquema e o código fonte: http://crepusculotecnologico.blogspot.com.br/2012/04/interruptor-touch-diagrama-e-codigo.html

    ResponderExcluir
  14. Parabens!

    Vou usar sua excelente ideia com um adendo: shield bluetooth, conectar no ScadaBR via modbus e poder realizar o acionamento via Web (celular+wifi) e no painel touch.

    Muito obrigado por essa excelente dica.

    Abs

    ResponderExcluir
  15. Saulo, o post ficou muito bom, só gostaria de saber como você fez a alimentação do circuito.

    ResponderExcluir
  16. Diego

    Ótimo cara, ideia boa.


    Anônimo

    Usei um carregador de celular velho, coloquei ele dentro da tomada, junto com as outras peças.

    ResponderExcluir
  17. Post novo com mais detalhes deste projeto: http://crepusculotecnologico.blogspot.com.br/2012/04/interruptor-touch-diagrama-e-codigo.html

    ResponderExcluir
  18. Muito legal, não conheço o Arduíno mas vc acha que seria possível fazer também acionamento por infravermelho? Tenho um interruptor de tomada que além do botão pode ser acionado com qualquer controle remoto. Pensei em adaptar na parede mas não ficaria legal...

    ResponderExcluir
  19. Cara muito bom parabéns tem como você me passar o código fonte e todo o material usado p eu poder fazer aqui em casa? ficaria muito agradecido.

    juliocesardnatal@gmail.com

    ResponderExcluir
  20. Alex:

    Já vi alguns projetos com Arduino, que usam sensor infravermelho, programando certo deve funcionar sim.

    Julio:

    Veja este post, nele tem o código e o diagrama http://crepusculotecnologico.blogspot.com.br/2012/04/interruptor-touch-diagrama-e-codigo.html

    ResponderExcluir
  21. você poderia me enviar o esquema de ligações para o meu e-mail
    (albertonuezperez@gmail.com

    ResponderExcluir
  22. Anônimo,

    Veja o link no fim do post, lá tem o código fonte e o esquema.

    Abraço

    ResponderExcluir
  23. Cara, segui o seu diagrama e utilizando o Arduino Nano funcionou blz. Uma pergunta: Como vc fez com a fonte, desmontou ou colocou ela com a caixinha?

    ResponderExcluir
  24. Adriano,

    É uma fonte de celular, é pequena, por isso deixei montada mesmo, mas ultimamente tenho percebido que vou ter que trocar ela por algo melhor, fontes de celular não foram feitas para ficarem ligadas continuamente por um ano...

    ResponderExcluir
  25. Saulo,
    ainda não consegui entender como o botão tá funcionando. Onde a malha fecha? Tu energiza o anel de alumínio?
    Explica melhor por favor...
    Obrigado

    ResponderExcluir
  26. jean,

    Tem uma explicação completa sobre isso na página da lib capSense: http://www.arduino.cc/playground/Main/CapSense

    Abraço

    ResponderExcluir
  27. Saulo, da para controlar quantos botões com o arduino pro mini.
    Sou iniciante por onde devo começar ?

    Parabéns pelo projeto ficou de um ótimo gosto.

    ResponderExcluir
  28. Dimy,

    Começe aprendendo a programar o arduino. Não sei quantos suporta, mas acho que é mais que 1, no exemplo da lib tem 3.

    ResponderExcluir
  29. Alguem me pode ajudar?
    Comprei um interruptor touch com painel em vidro só que não faz mais contacto.
    O switch é uma placa de led revestido com uma rede (talvez metálica??).
    Não preciso tocar na rede para que acione a lampada, basta o meu dedo ficar a 2/3 mm que aciona. o problema está quando coloco o vidro. Não faz qualquer função.
    Inicialmente tinha uma especie de tinta (parece de alumino ou estanho ou prata) pintada na traseira (por dentro) do vidro. Alguem me pode indicar que tipo de tinta é essa?
    Desde já o meu agradecimento.
    paulo.s.nunes2010@gmail.com

    ResponderExcluir
  30. Oi, você poderia me dizer onde comprou o vinil e vidro?

    Saudações

    ResponderExcluir
  31. Como conecto o Arduíno ao computador? nunca mexi com essas coisas mais achei bem legal e gostaria de saber como fazer pra programa-lo no computador.

    ResponderExcluir
  32. cara, parabéns, tava procurando exatamente isto, achei seu projeto fenomenal e com acabamento invejável !! tudo de bom pra vc !!

    ResponderExcluir
  33. pode me mandar o codigo fonte ?
    rmvendas@live.com

    obrigado !

    ResponderExcluir
  34. Parabéns colega, pela bela iniciativa de compartilhar conhecimentos e pela humildade de simplesmente enviar o código fonte desse projeto! é assim que os desenvolvedores e programadores de arduino se comportam quando descobrem algo, e sente a vontade de compartilhar. um forte abraço!

    Clayton Almeida.
    Brasília/DF

    ResponderExcluir
  35. Paulo Nunes,

    Pelo visto este post não é o que você está procurando, mas quanto a tinta, tente procurar por tinta condutiva em alguma eletrônica.


    Peter,

    O vinil em uma papelaria e o vidro em uma vidraçaria, não esqueça de pedir para lapidar a lateral do vidro para não ficar afiado.


    Anônimo1

    É com um cabo USB, mas depende do modelo. Inicie por aqui: arduino.cc


    Jonas,

    Muito obrigado, tudo de bom pra você também


    Anônimo2

    LEIA TODO O POST antes de perguntar. E não, não vou te enviar por email. Depois de ler TODO o texto, pegue você mesmo!


    Anônimo3

    Muito obrigado, Abraço pra você também

    ResponderExcluir
  36. Amigo, como você converteu de 220 ou 110 para os 5 volts? manda circuito. tentei usar uma pequena fonte (LED Drive), mas fica ligando e desligando sem parar.

    ResponderExcluir
  37. me manda circuito da fonte, bernardo@fakstel.com.br

    ResponderExcluir
  38. Este comentário foi removido pelo autor.

    ResponderExcluir
  39. Cara ficou muito SHOW, você pode me passar o código e qualquer outra informação necessária? Estou começando a mexer com Arduíno agora, comprei um kit e já tenho tudo que você usou, só falta conseguir fazer! sidney.l.r.j@gmail.com

    Um abraço

    ResponderExcluir
  40. ola parabéns pelo projeto,muito bom mesmo!bem eu consegui replicar exatamente o q vc fez ficou muito bom,mas agora gostaria de colocar mais de um botão touch!...porém nao consigo mesmo,sou novo em relação ao Arduíno e n estendo muito da linguagem de programação pode me ajudar?agradeço.

    ResponderExcluir
  41. Excelente projeto, como você fez aquela coisa branca para colocar o LED?

    ResponderExcluir
  42. Parabéns, Tem como fazer um paralelo? Como seria?

    ResponderExcluir
  43. Interruptor bluetooth + touch

    https://youtu.be/U6Ir_1L428Q

    ResponderExcluir
  44. Interruptor bluetooth + touch

    https://youtu.be/U6Ir_1L428Q

    ResponderExcluir
  45. Sensacional esse seu projeto! Poderia mostrar o código fonte??

    ResponderExcluir
  46. fakstel,
    Fonte normal, no post está explicado como resolve o problema teu.

    Miojo,
    Leia o post, nele tem os links com as informações que tu precisa.

    Rudy,
    Na página da lib tem as explicações necessárias

    Willian,
    Leia o post novamente e procure na página da lib tem como fazer isso.

    Lucas,
    Papel.

    Nilson,
    O que em paralelo? explique melhor.

    Thiago,
    Leia o post inteiro por favor!


    ResponderExcluir
  47. Sempre recebo perguntas no email e aqui no blog sobre coisas que estão explicadas no próprio post. Normalmente eu não respondo pois penso que se a pessoa não teve a vontade de ler e entender tudo, ela não está realmente interessada. Mas como a quantidade de emails está grande e eu estou estressado, venho aqui dizer que:


    LEIAM O POST INTEIRO POR FAVOR!

    Perguntas pertinentes com dúvidas reais sempre serão respondidas.

    ResponderExcluir
  48. Bom dia Saulo!

    caso queira montar tudo em um unico PAINEL, e só fazer a fiação para cada interrutor, é possivel?
    pergunto isso para nao precisar fazer isso em todos os interruptores, penso em fazer tudo em um unico painel e colocar a programação para todos os interruptores no arduino mega, puxar a fiação para cada interruptor, ligar tudo.... será que rola?

    ResponderExcluir
  49. Alguém poderia me explicar como faço pra este cod da um pulso quanto tocado.

    ResponderExcluir
  50. Alguém poderia me explicar como faço pra este cod da um pulso quanto tocado.

    ResponderExcluir
  51. Rafael,

    Sim da pra fazer, na página da libCapSense tem um explicação sobre isso.

    Unknown,

    Não entendi, o código não funciona pra ti? Tentou alterar a resistência?
    Tu quer só um pulso quando tocado? Não alterar a variável? Se for isso, acho que dá pra resolver com uma variável de controle que guarde os millis(), assim tu mantém a saída em HIGH pela quantidade de millis que tu quiser, depois volta pro estado LOW.

    ResponderExcluir
  52. desculpe no vidro so devo aplicar venil de contacto??? e venil de contacto e' o mesmo usado para fumar vidros??

    ResponderExcluir
  53. Sensacional seu desenvolvimento! Quero muito realizar em meu quarto!
    Poderia disponibilizar o código fonte?

    pinheiro.rocha@yahoo.com.br

    Att Fábio Pinheiro

    ResponderExcluir
  54. Fábio, favor ler o post inteiro!

    ResponderExcluir
  55. ola ,desculpe nao entendi como faz o fio do vidro liga onde no arduino poderia mandar por imail pra mi

    ResponderExcluir
  56. Fausto,

    No fim do texto tem um link. Lá tem o resto do tutorial.

    ResponderExcluir
  57. Olá! Ficou muito bom mesmo o seu projeto, qual cola você usou pra colar o alumínio no vidro? Nos meus testes usei algumas colas e ficou com sensibilidades diferentes. Vlw

    ResponderExcluir
  58. Saulo, você consegue me vender este interruptor/painel? Preciso fazer teste com meu Arduino aqui.

    ResponderExcluir
  59. Ficou do caralho!!! Parabéns!!! Será que dá pra usar essa lib CapSense na plaquinha ESP8266 ?

    ResponderExcluir
  60. Olá, fiz o projeto e funciona legal.... mas em teste na minha bancada, que possui uma lampada fluorescente de 40w + reator...

    o sistema está alimentado por uma fonte FST(fonte sem transformador) ao ligar a lampada o sistema dispara e fica acionando a desacionando direto.

    se nao ligar a lampada funciona legal e a sensibilidade nem está tão alta.

    ResponderExcluir
  61. Prezados,
    Como poderia ligar dois interrupções touch desse em paralelo?
    Gostaria de um exemplo de como fazer essa ligação, sendo que ao acionar um interruptor o outro desativa o relé, e assim vise e versa.

    Abraço

    ResponderExcluir
  62. Ola pessoal,

    Nos meus teste notei que o projeto quanto, liga uma luz que tenha reator (uma lâmpada fluorescente ), o interruptor começa a ligar e desligar sem parar, até que reinicia ele. Alguém passou por essa questão como resolver?

    ResponderExcluir
  63. Olá amigo parabéns pelo projeto, ficou da hora.
    Tenho interesse em fazer isso aqui no meu apartamento.
    É possível você me passar o código?

    thuliov@gmail.com

    ResponderExcluir
  64. boa tarde, gostei muito eu consigo fazer o mesmo com um espelho, jateando o local do touch?

    ResponderExcluir
  65. Meu caro,

    Não se ainda acompanha este blog, mas gostaria de agradecer seu post, mesmo que 8 anos depois. Montei meu interruptor baseado no seu e ficou sensacional, acrescentei um acesso à Internet para controle via aplicativo. Valeu demais, abraço!!!

    ResponderExcluir