Propaganda
Esconda isso na sua sala e ria enquanto a caixa do TiVo é aparentemente possuída por um demônio que exige assistir a canais de compras extravagantes. Se o seu objetivo final é desligar todas as TVs da vizinhança ou criar um canal universal Remoto controlado por Siri, este projeto serve como um excelente ponto de partida para aprender o básico do controle de IR e receptores.
Nesta "brincadeira", criaremos um dispositivo que registra e depois reproduz uma série de comandos remotos por infravermelho. Funciona com qualquer dispositivo que use um controle remoto por infravermelho ou até mesmo uma mistura de dispositivos ao mesmo tempo - gravando até 10 pressionamentos de tecla.
Componentes
Aqui está uma lista do que você precisa para este projeto:
- Arduino e fios de correção
- Receptor IR, como o TSOP382 - mas você deve encontrar um compatível em eletrônicos antigos. Tirei o meu de um controlador de iluminação RGB sobressalente. Eles geralmente têm três pernas e são pretos, com um lado parecendo um LED que foi cortado ao meio e preso. Tenho certeza de que há uma palavra técnica para isso.
- LEDs de transmissores de infravermelho, como o TIL38 - novamente, são bastante comuns, mas comprei um novo de alta potência da Maplin; eles parecem idênticos a qualquer outro LED, portanto, não os misture no kit de eletrônicos!
- Resistor adequado para o seu LED IR - use este Calculadora LED dada a tensão de alimentação (5 V do Arduino) e a tensão e corrente direta da folha de dados do LED (geralmente em torno de 1,2 V a 20 mA). Isso saiu como 220 ohms no meu caso.
- Botão e pulldown de 10k e resistores de 100 ohm.
- Faça o download do Biblioteca remota de IR por Ken Shirriff do Github e coloque no seu Arduino / Bibliotecas pasta. Há também alguns códigos de exemplo que usaremos que devem ser acessíveis no Arduino Abrir -> Bibliotecas cardápio.
Fiação
Enfrente esse circuito em três partes - o interruptor é um pouco complicado, mas tudo o resto é fácil. Lembre-se de que a perna curta do LED com a face plana é o cátodo (negativo ou terra); a perna longa é o ânodo (positivo).
Recebendo Sinais
Vá em frente e abra o bibliotecas / IRremote / IRrecvDemo código de exemplo. Verifique se o RECV_Pin estiver definido corretamente, compile e faça o upload e abra o console serial a 9600 baud. Pegue qualquer controle remoto que você tenha em mãos, aponte-o para o seu receptor e comece a pressionar os botões. Botões diferentes produzirão códigos diferentes; alguns indicarão uma pressão longa com o código inicial e, em seguida, FFFFFF, enquanto controles remotos diferentes podem simplesmente repetir o código novamente.
Para uma visão mais detalhada dos dados que estão sendo recebidos, dê uma olhada no IRrecvDump exemplo, que indicará o tipo de sinal recebido (NEC de 32 bits nesse caso) e os valores brutos. É bom saber, mas na maioria dos casos você deseja apenas os valores decodificados.
Repetindo um sinal
Hoje não vamos escrever nossa brincadeira do zero, então vá em frente e confira IRrecord exemplo. A complexidade do código aumenta bastante aqui, mas é principalmente para lidar com diferentes tipos de códigos de IR - fundamentalmente, aqui está o que está acontecendo dentro do loop:
- Verifique se o botão está sendo pressionado, reproduza o sinal atualmente armazenado, se estiver, e repita a cada 50 ms até pressionar.
- Se não estiver sendo pressionado e um sinal for detectado, grave isso.
A maior limitação deste exemplo é que ele funciona apenas com um código de cada vez; portanto, se você pressionar outro botão do controle remoto, ele substituirá o último. O botão simplesmente repete o último sinal recebido. Compile e execute o código para poder experimentar este repetidor de sinal básico. Para reproduzir um único sinal, funciona bem, mas é pouco útil em uma brincadeira ou não.
A brincadeira!
Vamos modificá-lo um pouco para gravar 10 ou mais sinais maliciosos. Você pode encontrar o código modificado completo aqui, mas aqui está um resumo das alterações que fiz, caso você queira programar isso sozinho:
- Defina 3 novas matrizes de tamanho 10 para armazenar um conjunto de sinais sempre que um for detectado e um número inteiro para armazenar o tamanho dessas matrizes.
- Armazene um índice de onde estamos atualmente nessa matriz. Aumente o índice sempre que um sinal for detectado - mas não aumente se o sinal for um código de repetição.
- Um valor booleano que deixa de ser mais registrado quando atingimos o máximo.
- Um booleano para indicar se estamos no modo de reprodução ou não, em vez de ter que pressionar o botão; também modificou a lógica do botão para alternar isso.
Observe que o LED indicador no Arduino (pino 13) será ativado quando a memória estiver cheia. No momento, você deve gravar 10 pressionamentos de botão - nada menos - e o modo de reprodução aguardará 1 segundo entre cada reprodução. Aqui está em ação:
Você pode brincar com mais brincadeiras de IR, ou considerar isso um bom começo em um épico mais épico projeto de automação residencial Guia de automação residencial com Raspberry Pi e ArduinoO mercado de automação residencial é inundado por sistemas de consumo caros, incompatíveis entre si e com instalação dispendiosa. Se você tem um Raspberry Pi e um Arduino, basicamente pode conseguir a mesma coisa em ... consulte Mais informação ; e não se esqueça de conferir todos os outros Projetos Arduino. Compartilhe suas criações (ou problemas) nos comentários e mostre sua apreciação por este artigo compartilhando-o em suas redes sociais favoritas!
Crédito da imagem: DaGoaty
James é bacharel em Inteligência Artificial e possui certificação CompTIA A + e Network +. Ele é o principal desenvolvedor do MakeUseOf e passa seu tempo livre jogando paintball e jogos de tabuleiro em VR. Ele está construindo PCs desde que era criança.