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:

Paulo disse...

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

Unknown disse...

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.

Saulo disse...

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

Vinícius Andrei disse...

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

Um abraço.

Anônimo disse...

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

Saulo disse...

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

Vinícius Andrei disse...

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

Abraço

Vinícius Andrei disse...

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

Saulo disse...

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

Anônimo disse...

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).

Saulo disse...

Anônimo

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

Anônimo disse...

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

Saulo disse...

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

Diego R. Ferreira disse...

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

Anônimo disse...

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

Saulo disse...

Diego

Ótimo cara, ideia boa.


Anônimo

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

Saulo disse...

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

Alex disse...

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...

julio ienaga disse...

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

Saulo disse...

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

Anônimo disse...

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

Saulo disse...

Anônimo,

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

Abraço

Adriano disse...

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?

Saulo disse...

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...

jean disse...

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

Saulo disse...

jean,

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

Abraço

Dimy e Bruna disse...

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.

Saulo disse...

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.

Unknown disse...

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

Peter disse...

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

Saudações

Anônimo disse...

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.

Unknown disse...

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

Anônimo disse...

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

obrigado !

Anônimo disse...

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

Saulo disse...

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

fakstel disse...

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.

fakstel disse...

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

MioJo... disse...
Este comentário foi removido pelo autor.
MioJo... disse...

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

rudyrodrigues2@gmail.com disse...

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!

Unknown disse...

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.

Unknown disse...

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

Nilson disse...

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

Unknown disse...

Interruptor bluetooth + touch

https://youtu.be/U6Ir_1L428Q

Unknown disse...

Interruptor bluetooth + touch

https://youtu.be/U6Ir_1L428Q

Thiago Gomes disse...

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

Saulo disse...

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!


Saulo disse...

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.

Unknown disse...

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?

Unknown disse...

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

Unknown disse...

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

Saulo disse...

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.

Unknown disse...

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

Anônimo disse...

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

pinheiro.rocha@yahoo.com.br

Att Fábio Pinheiro

Saulo disse...

Fábio, favor ler o post inteiro!

Unknown disse...

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

Saulo disse...

Fausto,

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

Anônimo disse...

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

Kbecao85 disse...

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

Ale disse...

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

Unknown disse...

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.

GynTeste disse...

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

TesteGyn disse...

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?

StreetBr disse...

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

Unknown disse...

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

MAICOLM LEMOS disse...

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

Eduardo Franco disse...

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!!!