É possivel que emissor (código binário) e receptor (código binário) funcionem em um único Arduino? - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-29T09:34:17Zhttps://labdegaragem.com/forum/topics/possivel-que-emissor-c-digo-bin-rio-e-receptor-c-digo-bin-rio?commentId=6223006%3AComment%3A707847&feed=yes&xn_auth=noOla Eduardo obrigado mesmo!
E…tag:labdegaragem.com,2019-05-09:6223006:Comment:7080352019-05-09T21:03:29.736ZFlavio Cantierihttps://labdegaragem.com/profile/FlavioCantieri
<p>Ola Eduardo obrigado mesmo!</p>
<p>Estou utilizando um receptor de IR com três pernas e o meu código está assim:</p>
<p></p>
<p>#include <IRremote.h><br></br>int IR_Recv = 11; //Pino OUT do Receptor Infravermelho (IR)<br></br>int ledVermelho = 3;<br></br> <br></br>IRrecv irrecv(IR_Recv);<br></br>decode_results results;<br></br> <br></br>void setup(){<br></br> pinMode(8,OUTPUT);<br></br> Serial.begin(9600); //iniciamos a comunicacao serial<br></br> irrecv.enableIRIn(); //inicia o receptor infravermelho (IR)…<br></br></p>
<p>Ola Eduardo obrigado mesmo!</p>
<p>Estou utilizando um receptor de IR com três pernas e o meu código está assim:</p>
<p></p>
<p>#include <IRremote.h><br/>int IR_Recv = 11; //Pino OUT do Receptor Infravermelho (IR)<br/>int ledVermelho = 3;<br/> <br/>IRrecv irrecv(IR_Recv);<br/>decode_results results;<br/> <br/>void setup(){<br/> pinMode(8,OUTPUT);<br/> Serial.begin(9600); //iniciamos a comunicacao serial<br/> irrecv.enableIRIn(); //inicia o receptor infravermelho (IR)<br/> pinMode(ledVermelho, OUTPUT); // configuramos o pino digital como saída<br/> <br/>}<br/> <br/>void loop(){<br/> if( (((int)(millis() / 100)) % 2) == 1 ){ <br/>digitalWrite(8, !digitalRead(8));<br/>}<br/> //decodifica a entrada do receptor infravermelho<br/> if (irrecv.decode(&results)){<br/> long int decCode = results.value;<br/> Serial.println(results.value);</p>
<p>switch (results.value){ <br/> case 4255908176: //quando o codigo ao lado aparece acende o LED<br/> digitalWrite(ledVermelho, HIGH);<br/> break; <br/> case 3772811383: //quando o codigo ao lado aparece apaga o LED<br/> digitalWrite(ledVermelho, LOW); <br/> break;<br/> }<br/> irrecv.resume(); // Atualiza o próximo valor do codigo emitido pelo IR<br/> }<br/>}</p>
<p></p>
<p>O fato é que o código recebido na Porta COM, não tem padrão e aparece assim, até funciona mas demora para aparecer o código desejado.</p>
<p>4255908178<br/>3689098101<br/>1286666975<br/>4255908176<br/>1253111734<br/>4255908176<br/>4255908178<br/>4272685799<br/>3166520621<br/>1101443656<br/>3732648685<br/>565936248<br/>2564915405<br/>489623154</p> Se vc mesmo gera e le a frequ…tag:labdegaragem.com,2019-05-09:6223006:Comment:7078552019-05-09T19:16:45.780ZEduardohttps://labdegaragem.com/profile/EduardoHenriqueMarcondes
<p>Se vc mesmo gera e le a frequencia é mais fácil fazer sincronizado mesmo.</p>
<p>Para evitar o delay() vc pode usar uma interrupção de tempo.</p>
<p>Algo assim:</p>
<p>configura um timer para interromper, vide:</p>
<p><a href="http://labdegaragem.com/forum/topics/d-vidas-com-a-library-timerone">http://labdegaragem.com/forum/topics/d-vidas-com-a-library-timerone</a></p>
<p>O ideal seria ter logo de cara na interrupção um if() para ver se vc comandou por ultimo acender ou apagar. Se foi…</p>
<p>Se vc mesmo gera e le a frequencia é mais fácil fazer sincronizado mesmo.</p>
<p>Para evitar o delay() vc pode usar uma interrupção de tempo.</p>
<p>Algo assim:</p>
<p>configura um timer para interromper, vide:</p>
<p><a href="http://labdegaragem.com/forum/topics/d-vidas-com-a-library-timerone">http://labdegaragem.com/forum/topics/d-vidas-com-a-library-timerone</a></p>
<p>O ideal seria ter logo de cara na interrupção um if() para ver se vc comandou por ultimo acender ou apagar. Se foi acender verifique se o receptor corresponde a aceso. Se foi apagar verifique se corresponde a apagado.</p>
<p>Se bateu vc incrementa um contador. Se não bateu vc zera.</p>
<p>No programa principal vc considera fechado só se o contador atingir 10 acertos. </p>
<p>Algo assim.</p>
<p>Essa frequencia vc escolhe. Algo em torno de 400Hz a 1KHz deveria funcionar bem.</p>
<p>Depende do led que vc está usando.</p>
<p>Estou imaginando que vc está usando um par de emissor e receptor tipico para obstáculo (chave otica de fim de curso)</p>
<p>Se estiver usando um par para controle remoto mesmo o certo seria emitir na frequencia do filtro do receptor, que é por ex 38KHz. Tem que ver seu modelo. E esses 38KHz serem ligados e desligados. Complica. O receptor apenas recebe o ligado e desligado (demodulado).</p>
<p></p>
<p></p>
<p></p> Obrigado pela resposta!
Entã…tag:labdegaragem.com,2019-05-09:6223006:Comment:7081052019-05-09T15:49:40.226ZFlavio Cantierihttps://labdegaragem.com/profile/FlavioCantieri
<p>Obrigado pela resposta!</p>
<p></p>
<p>Então eu devo piscar o emissor IR com uma determinada frequência, descubro esta frequência como se eu estivesse reconhecendo um botão de controle remoto e coloco isso no programa?</p>
<p>É possivel piscar em uma frequência "inventada" sem usar função delay? Isso seria legal!!</p>
<p>Quando coloco dois arduinos funciona muito bem pois escolho um binário para ele repetir continuamente e o receptor recebe somente este binário e executa! Eu só não entendo…</p>
<p>Obrigado pela resposta!</p>
<p></p>
<p>Então eu devo piscar o emissor IR com uma determinada frequência, descubro esta frequência como se eu estivesse reconhecendo um botão de controle remoto e coloco isso no programa?</p>
<p>É possivel piscar em uma frequência "inventada" sem usar função delay? Isso seria legal!!</p>
<p>Quando coloco dois arduinos funciona muito bem pois escolho um binário para ele repetir continuamente e o receptor recebe somente este binário e executa! Eu só não entendo muito porque não posso em um único arduino.</p> Olá.
Possivel é, mas é exage…tag:labdegaragem.com,2019-05-09:6223006:Comment:7078472019-05-09T15:12:26.448ZEduardohttps://labdegaragem.com/profile/EduardoHenriqueMarcondes
<p>Olá.</p>
<p> Possivel é, mas é exagero.</p>
<p> Se vc piscar ele, algo como:</p>
<p>Acende, delay, verifica se está aceso, delay, verifica dnovo se esta aceso, delay, verifica mais uma vez se está aceso, delay, apaga, delay, verifica se está apagado, delay, verifica se está apagado, delay, verifica dnovo se está apagado, delay, repete.</p>
<p>E contar 6 oks (para o exemplo) de forma que ele pisque e vc verifique na entrada um sinal piscando na frequencia que vc mesmo está emitindo acredito…</p>
<p>Olá.</p>
<p> Possivel é, mas é exagero.</p>
<p> Se vc piscar ele, algo como:</p>
<p>Acende, delay, verifica se está aceso, delay, verifica dnovo se esta aceso, delay, verifica mais uma vez se está aceso, delay, apaga, delay, verifica se está apagado, delay, verifica se está apagado, delay, verifica dnovo se está apagado, delay, repete.</p>
<p>E contar 6 oks (para o exemplo) de forma que ele pisque e vc verifique na entrada um sinal piscando na frequencia que vc mesmo está emitindo acredito que baste.</p>
<p>É mais ou menos assim que os bons sensores oticos trabalham. Eles ainda tem armadilhas óticas (um caninho de cada lado) para pegar apenas luz da direção certa. </p>
<p></p>