Olá, amantes de robótica!
Quer sacanear sua família trocando de canal com um controle feito de arduino?
Então veja como faze-lo!
Qtd Itens:
1 - Arduino UNO ou qualquer outra versão;
1 - LED Infravermelho;
1 - LED verde ou vermelho;
6 - Resistor 300 ohms;
4 - Botões;
1 - Protoboard;
1 - Controle da TV que você quer "hackear";
16 - Jumpers (Fios).
Não sabe onde comprar as peças, confira esse post: onde comprar arduino e componentes
Basta fazer as mesmas conexões da imagem abaixo:
(clique na imagem pra ampliá-la)
Atenção:
Agora pegue o controle normal da TV que você quer sabotar. Veja esse tutorial: Como receber sinal de um controle remoto com infravermelho (TV, DVD, outros) com o arduino
Nesse outro tutorial você pegará o código das 4 teclas que iremos clonar. Após pegar o código, altere-o no código:
Não sabe programar? Então acesse: Como programar em Arduíno, fazer robôs e projetos diversos
Se você é iniciante veja:Como enviar (upload) o programa pronto para a placa do arduino uno, mega entre outros
Atenção:
Para o código fonte funcionar é necessário baixar as bibliotecas: Baixar Library.
Atenção:
Quem ira utilizar o arduino MEGA 2560, tem que inverter os pinos e o código fonte.
o pino do led IR tem que ser o 9 e o do volume pode ser no 7, igual na imagem:
Pronto, qualquer duvida é só deixar nos comentários ou entrar em Contato
Quer sacanear sua família trocando de canal com um controle feito de arduino?
Então veja como faze-lo!
Veja o vídeo do controle remoto com arduino em funcionamento:
Vamos ao material que precisamos:
Qtd Itens:
1 - Arduino UNO ou qualquer outra versão;
1 - LED Infravermelho;
1 - LED verde ou vermelho;
6 - Resistor 300 ohms;
4 - Botões;
1 - Protoboard;
1 - Controle da TV que você quer "hackear";
16 - Jumpers (Fios).
Não sabe onde comprar as peças, confira esse post: onde comprar arduino e componentes
Vamos à montagem:
Basta fazer as mesmas conexões da imagem abaixo:
Atenção:
Agora pegue o controle normal da TV que você quer sabotar. Veja esse tutorial: Como receber sinal de um controle remoto com infravermelho (TV, DVD, outros) com o arduino
Nesse outro tutorial você pegará o código das 4 teclas que iremos clonar. Após pegar o código, altere-o no código:
Veja as fotos do projeto:
O mais importante, o código fonte:
Não sabe programar? Então acesse: Como programar em Arduíno, fazer robôs e projetos diversos
Se você é iniciante veja:Como enviar (upload) o programa pronto para a placa do arduino uno, mega entre outros
Atenção:
Para o código fonte funcionar é necessário baixar as bibliotecas: Baixar Library.
/*
>>>>> Criando Robô Com Arduino <<<<<
##### Robôs, Projetos e Tutoriais! #####
.:: Site principal: http://www.CriandoRoboComArduino.com/
.:: Site secundário: http://www.TestCriandoRoboComArduino.com/
========== IMPORTANTE ==========
O código está livre para usar, citar, alterar e compartilhar,
desde que mantenha o site como referência.
Obrigado.
--------------------------------------------------------------------------------------------------
Projeto: Como fazer um controle remoto de TV com arduino
---------------------------------------------------------------------------------------------------
*/
#include <IRremote.h> // Biblioteca para controlar o led infravermelho
IRsend irsend; //variável para poder enviar o código a TV
//variáveis constantes para o controle remoto
const int maisvolume = 9;
const int menosvolume = 10;
const int maiscanal = 11;
const int menoscanal = 12;
const int led = 8;
const int ledIR = 3;
//inicia o botão com o status 0
int buttonState = 0;
void setup() {
pinMode(led, OUTPUT); // saida led
pinMode(ledIR ,OUTPUT); // saída do infravermelho
Serial.begin(9600);
//configurando a entrada dos botoes
pinMode(maisvolume, INPUT);
pinMode(menosvolume, INPUT);
pinMode(maiscanal, INPUT);
pinMode(menoscanal, INPUT);
}
void loop(){
//se o botão maisvolume for pressionado ele ira enviar o código para aumentar o volume na tv
if (digitalRead(maisvolume) == HIGH) {
digitalWrite(led, HIGH);
irsend.sendNEC(0x39C600FF, 32);// código que sera enviado a tv para aumentar o volume
}
else {
digitalWrite(led, LOW);
}
//se o botão menosvolume for pressionado ele irá enviar o código para diminuir o volume na tv
if (digitalRead(menosvolume) == HIGH) {
digitalWrite(led, HIGH);
irsend.sendNEC(0x39C6807F, 32);// código que sera enviado a tv para diminuir o volume
}
else {
digitalWrite(led, LOW);
}
//se o botão maiscanal for pressionado ele ira enviar o código para aumentar o canal na tv
if (digitalRead(maiscanal) == HIGH) {
digitalWrite(led, HIGH);
irsend.sendNEC(0x39C6E817, 32); // código que sera enviado a tv para aumentar o canal
}
else {
digitalWrite(led, LOW);
}
//se o botão menoscanal for pressionado ele irá enviar o código para diminuir o canal na tv
if (digitalRead(menoscanal) == HIGH) {
digitalWrite(led, HIGH);
irsend.sendNEC(0x39C6C837, 32); // código que sera enviado a tv para diminuir o canal
}
else {
digitalWrite(led, LOW);
}
}
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>>>>> Acesse os sites: <<<<<
.:: Robôs, Projetos e Tutoriais
http://www.CriandoRoboComArduino.com/
.:: Testes dos robôs, noticias sobre robótica e muito mais
http://www.TestCriandoRoboComArduino.com/
>>>>> Inscreva-se nos canais no Youtube: <<<<<
.:: Vídeos dos robôs, projetos e tutoriais
Criando Robô Com Arduino
https://www.youtube.com/CriandoRoboComArduin
.:: Mostrando os testes dos robôs e projetos
Test Criando Robô Com Arduino
https://www.youtube.com/TestCriandoRoboComAr
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
Atenção:
Quem ira utilizar o arduino MEGA 2560, tem que inverter os pinos e o código fonte.
o pino do led IR tem que ser o 9 e o do volume pode ser no 7, igual na imagem:
Pronto, qualquer duvida é só deixar nos comentários ou entrar em Contato
muito emocionante o projeto!, eu tenho o arduino mega2560 e acho que o codigo naum funciona para ele, a compilacao da certo tudo (pq ja instale as livrarias) mas logo no osciloscopio nao sai a sinal pelo pino 3.... x( ...eu to usando o mesmo codigo que vocë postou só pra testar se ta saindo sinal no pino 3. mas naum da , sera que tenho q modificar alguns parametros para o meu arduino?
ResponderExcluirPara saber se está queimado basta alimentá-lo e ver se ligou com um camera de celular.
ExcluirGosto de todos seus projetos!.. Obrigado pela ajuda... eu retirei o infravermelho e analizei no osciloscopio, naum tem sinal nehuma no pino 3 por isso nao faz o led infravermelho fazer a "magia" xD... mesmo que presiono o controle que já "fiz um hack nele foi legal" mas.... eu copie o codigo de voce com seus parametros para testar a saida digital e so da cero volts constante... acho que se naum for o codigo pro meu arduino o meu arduino poderia estar malfuncionando seria uma pena
ResponderExcluireu tenho um receptor infravermelho só são com duas pernas,queria saber se tem alguma diferença entre o duas e três pernas ?
ResponderExcluirabraços
Olá, infelizmente eu não sei responder ao certo sua pergunta.
ExcluirAcho que tem , pois o de três pinos tem toda uma questão técnica da recepção do sinal.
Você talvez esteja confundindo o IR emissor (2 pernas) com o IR receptor (3 pernas), onde este último é um sensor com dois pinos para alimentação e um de sinal. Se for um preto de duas pernas talvez seja um fototransistor.
ExcluirEu to com um sensor aqui que tanto emite quanto recebe e esse de duas pernas trata-se de um fototransistor, ou seja, quando ele recebe um sinal infravermelho, ele permite que a energia passe de um lado pro outro.
Excluirquando vai sair o proximo projeto?
ResponderExcluirOlá, para saber qual projeto estou fazendo por favor acesse: http://www.TestCriandoRoboComArduino.com/
ExcluirAtualmente, estou melhorando o site, melhorando as fotos e videos.
Também estou fazendo um robô controlado por controle remoto de tv.
Caso queira receber os novos projetos e robôs no seu email, envie um email para: CriandoRoboComArduino@gmail.com com isso eu de cadastro no grupo aonde envio as atualizações do site.
Abraço
procurei na internet.. mas não achei,um projeto de Robô R2-D2 com Arduino...da pra fazer?
ResponderExcluirOlá, sim!
ExcluirObrigado pela dica, daqui um tempo irei ver se faço um robô parecido com o R2-D2
Olá! Gostei bastante do tutorial, montei no meu Mega 2560 e funcionou perfeitamente, porém com aquela troca de pinos indicada ali no final do tutorial. Não entendi o porque do não funcionamento com o mais volume no 9 e o LED IR no 3, uma vez que os 2 pinos são PWM em ambas as placas UNO e Mega 2560. A pergunta é mais por curiosidade mesmo: porque essa troca dos pinos é necessária para o funcionamento com o Mega 2560?
ResponderExcluirDesde já, obrigado pelo tutorial.
Olá, que bom que gostou amigo.
ExcluirAlgum Mega 2560 tem o microcontrolador diferente, nesses ele pode não funcionar nessas portas.
Nós que agradecemos sua visita!
ola tudo bem,vc poderia me falar como eu faço para o Arduíno receber o sinal de um controle e transmitir o codigo de um controle de outra marca? ex:minha tv é sony quero que o Arduíno recebe o sinal de um controle semp toshiba e transmita os comados da tv sony? assim posso fazer minha tv funcionar com qualquer controle
ResponderExcluirOlá, tudo bem e você? com o mesmo botão não tem como, mais tem como colocar outros botões no mesmo "controle" assim fazendo os dois funcionar em um.
ExcluirAbraço
não amigo o que eu quero fazer é sem os botoes usado o receptor IR para receber uma tecla de um controle sony, e enviar pelo led IR codigo de outra marca de controle como fosse um conversor
ExcluirCompreendi agora, amigo.
ExcluirInfelizmente não tem uma biblioteca que faça isso, infelizmente tem que pegar os códigos de todos os controles que deseja para poder fazer esse projeto.
bem amigo eu modifiquei seu codigo e fiz isso que eu falei deu certo só que o arduino só manda o codigo uma vez e não manda mas veja codigo e mediga oq eu tenho que muda para ele manda o codigo sempre que eu aperta a tecla do controle
Excluir#include // incluindo a biblioteca do infravermelho
const int RECEBE_PINO = 2; // pino 6 no arduino
IRsend irsend; //variável para poder enviar o código para o deco ou tv
const int ledIR = 3;
IRrecv ir_recebe(RECEBE_PINO); // declarando a variável do sensor
decode_results codigo_recebido; // resultado
void setup()
{
Serial.begin(9600); //mostra o resultado no computador
ir_recebe.enableIRIn(); // inicia a recepção
pinMode(ledIR ,OUTPUT); // saída do infravermelho
}
void loop() {
if (ir_recebe.decode(&codigo_recebido)) {//verifica se um codigo foi recebido
if (codigo_recebido.value != 0 ){
Serial.println(codigo_recebido.value, HEX); //mostra no serial o resultado
}
//tem que colocar o 0x antes do numero hexadecimal, pois só assim para poder comparar no if
//liga led verde
if ((codigo_recebido.value == 0xEFD02F)){// verifica se foi pressionado o numero 1 dos controles
irsend.sendNEC(0xEFBA45, 32);// código que sera enviado a tv para aumentar o volume
Olá, amigo, desculpe a demora na resposta.
ExcluirGostaria que você false mais sobre o que quer porem de preferencia por email, por favor Clique aqui para entrar em contato e me informe os códigos dos controles, de responderei por email.
Um grande abraço!
Boa tarde.realizei a leitura utilizando o IRM 2638 e depois utilizei os codigos obtidos pra emitir com o emissor de infra-vermelho. Só que não está funcionando. Eu quero fazer da seguinte maneira: Eu envio uma mensagem por uma conexão serial(no exemplo bluetooth) faço uma comparação e então utilizo o emissor de infravermelho.
ResponderExcluirchar c = Serial.read();
if (c == 'a') {
irsend.sendNEC(0x2FD48B7, 32);// código que sera enviado a tv
}
Este comentário foi removido pelo autor.
ExcluirConsegui encontrar meu erro.
ExcluirObrigado e parabéns pelo tutorial.
Oi Talyson, porfavor qual era o erro que voce teve, para eu verificar se eu estou fazendo o mesmo ^^
ExcluirOi Kézia. O meu erro era que eu enviava o comando e era como se apertasse um botão e segurasse, então o receptor n conseguia ler. Para arrumar eu mandava o comando via celular e então o emissor emitia o codigo e logo em seguida o emissor n mandava mais nada... por exemplo:
Excluirchar c = Serial.read();
if (c == 'a') {
irsend.sendNEC(0x2FD48B7, 32);// código que sera enviado a tv
delay(50)
irsend.sendNEC(0x0, 32);
}
oi coloquei o IR na porta 3 mas ele pisca mas nao envia dado ou não sei se é algo na frequencia ou como estou enviando dado pq ele simplesmente não envia dado, voce poderia me dar uma elp pr favor?
ResponderExcluirOlá, para saber se ele esta enviando algum código, com o seu celular use a câmera frontal, coloque em frente ao IR e veja se esta saindo uma luz, se sim ele esta enviando o código, ai pode ser algum erro no código que você obteve, se não pode ser alguma montagem errada.
Excluirsim ele acende a uz, estu usando o send RC6, é para interagir com um setup box. Fiz um esquema de receber infra e reenviar apertando um push button... Tudo está funcionando exceto a transmissao de infra
ResponderExcluirOlá, pode ser o resistor que esta alta, confirme se ele é de 300ohm por favor
Excluirja nao sei mais oq pode estar errado. Já tentei enviar em hexa e decimal, tentei fazer por sendRaw mudando frequencia e repetindo ate mais vezes o comando... eu vejo que o infra esta piscando mas parece que não sai dado '-', tem aguma ideia do que posso tentar ainda?
ResponderExcluirOlá, Kezia, talvez você não captou o sinal correto do controle, por favor verifique novamente.
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirAntes de mais nada, obrigado pelo desenvolvimento do tutorial.
ResponderExcluirEu tenho uma dúvida e gostaria de ajuda. Exemplo: Se eu ligar 2 leds emissores IR no Arduíno, levando cada um para uma TV (1 na sala e 1 no quarto), sendo estas da mesma marca (logo mesmo código do Controle Remoto), entendo que o mesmo sinal será aplicado as duas.
Como posso fazer para que esse sinal seja enviado a somente uma TV? Há alguma maneira de separar para qual TV eu desejo controlar?
Obrigado!
Olá, Helio. Tem como sim, porem as duas Tvs tem que esta no rumo do infra ao contrário a tv não ira captar o sinal.
ExcluirTem como separa sim, basta fazer um código para a tv e usar o outra parte do código com outra porta para a outra tv.
Obrigado pelos elogios!
olá alguém poderia tirar uma duvida minha?
ResponderExcluirno codigo usamos sendNEC, porem o meu controle e identificado como Unknown encoding que alteração eu preciso fazer?
Olá Felipepm, não tem problema, ele só esta de informando que não reconheceu a codificação do seu controle.
ExcluirCara, de verdade, muito bons seus projetos!! me ajudam muito! estou começando com o arduino. Estou tentando fazer uma adaptação neste código, para funcionar com um encoder rotativo. Onde, girando no sentido horario, enviaria um sinal para + volume e no sentido anti-horário para - volume, Pressionando ele o IR enviaria um sinal de mute e teria mais 3 switchers (canal +; canal -; power). estou tentando fazer, assim que obtiver um resultado posto aqui. Ou, se não conseguir, venho pedir ajuda! kkkk
ResponderExcluirParabéns pelos projetos!
Que bom que os nossos projetos estão de ajudando e que legal saber que você ira melhorar esse projeto!
ExcluirObrigado pelos elogios!
Boa tarde, o resistor do led IR tem que ser de 300ohms?
ResponderExcluirNão pode ser 220? como a resistência influência?
Olá, pode sim, amigo!
ExcluirBoa tarde ! Preciso de um help!
ResponderExcluirFiz todas as configurações acima! Mas antes capturei os codigos dos botoes da TV.
Minha TV é uma samsung e não funciona! Peguei outro arduino e montei o receptor e tanto o controle arduino e o controle da TV transmite o mesmo codigo para os botões que preciso.
O controle arduino com a TV não funciona!
Tem algum ajuste para as TV Samsung?
Obrigado
Boa noite,
ExcluirEstou com o mesmo problema, consegui controlar o aparelho de tv a cabo, mas não consegui controlar o TV Samsung.
Alguém conseguiu?
Obrigado
Estou nesse projeto tb, vc teria como disponibilizar os códigos?
ExcluirObrigado
Boa tarde, também não consegui funcionar a televisão Samsung, Alguem sabe me dizer porque, fiz testes em três marcas diferentes e todas funcionaram. Obrigado
ResponderExcluirPara que serve aquele numero 32 (irsend.sendNEC(0x39C600FF, 32)) ?
ResponderExcluirMatheus, esse numero representa a quantidades de bits que ira receber de informação.
ExcluirAgradeço o contato!
Acesse: SeuRobo.com.br
Olá, ótimo blog e tutoriais
ResponderExcluirGostaria de saber como prossigo com a programação e pinagens se quiser 6 botões?
Agradecemos os elogios.
ExcluirJá foi respondido por email a sua duvida, Bianca.
Acesse o nosso novo site: SeuRobo.com.br
Acesse nossa loja virtual também: Loja.SeuRobo.com.br
E veja os serviços que prestamos: SeuRobo.com.br/servicos