Olá a todos!
Hoje é um artigo sobre um sensor de proximidade com efeito sonoro, que fiz há 9 anos, ou para ser mais preciso, em janeiro de 2012.
Desde então, o switch tem trabalhado comigo 24 horas por dia por 9 anos. O que é mais interessante, durante todo esse tempo, não falhou e nem mesmo desligou, e nunca teve falsos positivos. Em geral, ele se provou bem e posso recomendá-lo com segurança para a automontagem.
Se você estiver interessado em detalhes, por favor, em cat.
Tenho 7 lâmpadas instaladas no corredor.
E para conseguir um belo efeito visual, usei a troca sequencial de lâmpadas, para isso precisei esticar um fio separado de cada ponto de iluminação até a placa controladora.
Eu escondi a própria placa no espaço entre a parede de gesso e o teto, já que há espaço mais do que suficiente lá.
Coloquei o receptor IR e o LED na tomada. Para evitar falsos alarmes, eles precisam ser isolados um do outro, para isso usei uma cambraia encolhível. Para conectar este sensor óptico à placa controladora, usarei os fios embutidos na parede.
Para que o design do switch não difira de outras sobreposições decorativas instaladas no interior, usei uma tomada de TV da mesma série, da qual joguei fora todas as partes internas, e colei no orifício uma janela redonda recortada de acrílico roxo.
Todos os componentes foram colocados em uma placa, na qual conectores de parafuso também foram instalados para conectar os fios das lâmpadas.
Alimentei esta placa com um carregador de telefone normal.
A base de todo o dispositivo é o controlador arduino Nano V.3, mas você também pode usar qualquer outra placa com o microcontrolador Atmega328.
Um LED IR com fototransistor pode ser retirado do sensor de obstáculos, mas não é necessário soldá-los, basta cortar os trilhos extras e soldar 3 fios neles. Se você já tiver essas peças soldadas em algum lugar, antes de usar, é melhor verificar primeiro a operabilidade. O LED infravermelho deve ser conectado a uma tensão de 5 V, através de um resistor limitador de corrente de 120 Ohm e olhado para ele pela câmera do telefone, ele deve brilhar com uma luz roxa. Para testar o fototransistor, você precisará de qualquer testador com função de continuidade do condutor. Transferimos o testador para o modo de discagem e conectamos os cabos do fototransistor às pontas de prova do testador. Em seguida, você precisa trazer qualquer controle remoto de eletrodomésticos até ele e pressionar qualquer botão. Um som agudo intermitente será ouvido em resposta.
9 anos atrás não encontrei relés de estado sólido adequados e tive que montá-los sozinho com componentes de rádio. Mas, no momento, é mais fácil comprar um módulo de relé de estado sólido de 8 canais como na imagem do que perder tempo procurando por esses componentes.
A mudança funciona da seguinte maneira
O Arduino emite um sinal PWM constante da saída D5 com uma frequência de aproximadamente 977 Hz. Um LED que emite um sinal na faixa do infravermelho é conectado a essa saída por meio de um resistor limitador de corrente de 82 Ohm. O fototransistor conectado à entrada D2 detecta o sinal IR refletido da mão e verifica sua plausibilidade, e se um sinal de 20 ou mais períodos consecutivos corresponde a uma frequência de 977 Hz, então o controlador liga todas as 7 lâmpadas por vez e começa a reproduzir um efeito de som através da saída PWM D11. A mesma coisa acontece quando você desliga.
Tocando sons
Para reproduzir os efeitos sonoros, é usado o formato WAVE não compactado, com frequência de 16000 Hz e profundidade de 8 bits, mas quando esse formato é reproduzido usando PWM, um chiado desagradável é observado no caminho do áudio. Portanto, para melhorar a qualidade de reprodução, usei interpolação linear no código. Na qual, a amostragem das amostras ocorre na frequência de 62,5 kHz e entre as amostras originais são inseridas 3 amostras adicionais, calculadas pelo método de interpolação linear. Assim, o ruído de quantização é reduzido na saída, o assobio desaparece, a qualidade do som é melhorada e não são necessários filtros RC adicionais para a reprodução.
Em vez de um alto-falante, usei um velho e pequeno alto-falante de computador sem amplificador embutido.
Para converter arquivos Wave em código C, você pode usar um conversor online .
Esquema
No diagrama, retângulos cinza marcados com relés de estado sólido, e para quem quer se confundir, eles podem montar o circuito completamente, assim como eu fazia no passado distante.
Componentes para montagem
1 - Arduino Nano V.3
2 - Sensor de obstáculo
3 - Módulo de relé de 8 canais
4 - Resistores 82 Ohm e 1 kOhm
5 - Alto-falante 0,5 - 3 W
6 - Qualquer transistor NPN com uma corrente permissível de pelo menos 500 mA
Código Arduino
Baixar todos os arquivos em um arquivo
Desta vez, decidi adicionar todas as bibliotecas usadas à pasta com o esboço, e no próprio esboço registrei seu uso local. Agora, espero que os novatos tenham menos perguntas para mim sobre os erros que encontram ao compilar.
O código contém várias constantes que podem ser alteradas antes de piscar.
A constante power_ir é responsável pela distância de operação do disjuntor, pode assumir valores de um mínimo de 20 a um máximo de 200. O valor que você precisa pode ser determinado experimentalmente.
lamp_num - determina o número de lâmpadas que você está usando. O número mínimo de lâmpadas não pode ser inferior a 1 e o máximo não pode ser superior a 7. Se você corrigir o código, poderá aumentá-lo para 15.
lamp_delay é o atraso entre o acendimento consecutivo das lâmpadas, que é expresso em milissegundos e pode começar de 0 a 4 294 967 295 ms. Embora eu não ache que atrasos tão enormes sejam necessários para ninguém.
Vídeo
Para ver o vídeo, clique na imagem.
Conclusão
Para concluir, gostaria de acrescentar que estou muito surpreso que um microcontrolador sem WDT nunca tenha desligado por 9 anos. Pelo mesmo motivo, não editei o código e adicionei WDT a ele, já que o Arduino com bootloader antigo não pode funcionar com ele.
Obrigado por ler até o fim!
Se você gostou do meu artigo, apoie-o com um like e uma assinatura.
Se você tiver alguma dúvida, pode colocá-la nos comentários.