domingo, 4 de outubro de 2015

Tutorial Emissor e Receptor Infra-vermelho com Arduino

Neste tutorial, mostraremos como implementar o emissor e receptor de infravermelho com Arduino. Para este tutorial você irá precisar de dois arduinos, um emissor de infravermelho, um receptor de infravermelho, um resistor de 200 Ohm e pushbuttons. Você pode utilizar o controle remoto de sua tv ao invés do emissor! Antes de mais nada, é preciso ver a pinagem do Receptor IR está demonstrada abaixo:
Agora, podemos fazer as ligações para o emissor e receptor IR. A figura abaixo mostra as ligações a serem feitas: Esquema de ligações para o Emissor IR:
Esquema de ligações para Receptor IR:
Agora, podemos ir para a programação. Antes de mais nada, baixe a bilbioteca para controlar o IR clicando aqui. Extraia a bilbioteca na pasta "libraries" da IDE do Arduino. Para a versão 1.0 da IDE do Arduino, abra o arquivo "IRRemoteInt.h" com um editor de texto( bloco de notas, gedit, etc). Dentro do editor de texto, troque a seguinte linha: "#include " para "#include ". As programações abaixo foram retiradas e modificadas do livro Arduino Cookbook. Clique aqui para maiores informações. Agora abra a IDE do arduino e passe a seguinte programação para o arduino emissor IR: /* irSend sketch this code needs an IR LED connected to pin 3 and 5 switches connected to pins 4 - 8 */ #include // IR remote control library const int numberOfKeys = 1; const int firstKey = 4; // the first pin of the 5 sequential pins connected to buttons boolean buttonState[numberOfKeys]; boolean lastButtonState[numberOfKeys]; long irKeyCodes[numberOfKeys] = { 0x18E758A7, //0 key }; IRsend irsend; void setup() { for (int i = 0; i < numberOfKeys; i++){ buttonState[i]=true; lastButtonState[i]=true; int physicalPin=i + firstKey; pinMode(physicalPin, INPUT); digitalWrite(physicalPin, HIGH); // turn on pull-ups } Serial.begin(9600); } void loop() { for (int keyNumber=0; keyNumber //adds the library code to the sketch const int irReceiverPin = 2; //pin the receiver is connected to const int ledPin = 13; IRrecv irrecv(irReceiverPin); //create an IRrecv object decode_results decodedSignal; //stores results from IR detector void setup() { pinMode(ledPin, OUTPUT); irrecv.enableIRIn(); } boolean lightState = false; unsigned long last = millis(); // Start the receiver object //keep track of whether the LED is on //remember when we last received an IR void loop() { if (irrecv.decode(&decodedSignal) == true) //this is true if a message has been received { if (millis() - last > 250) { //has it been 1/4 sec since last message lightState = !lightState; //toggle the LED digitalWrite(ledPin, lightState); } last = millis(); irrecv.resume(); // watch out for another message } } Agora que você passou as programações, você pode testar! Ao clicar o botão do Arduino emissor e direcionando o LED infravermelho na direção do receptor, o LED do Arduino Receptor acenderá. Ao clicar o botão novamente, o LED do Arduino receptor apagará! E é isso aí!! Esperamos que tenham gostado! Se tiverem dúvidas, postem aqui neste blog! Caso tiverem sugestões, vocês podem sugerir aqui neste POST e vocês podem ver os outros tutoriais que fizemos clicando aqui e os projetos clicando aqui! Até a próxima!!

Nenhum comentário:

Postar um comentário