Hi guys!
I recently bought an Arduino Uno, and that's when i figured out i could use him like a remote keyboard/mouse..
Problem is, my code work only once(i can reset the arduino, than it works again for only 1 button i press in the remote), i dunno if this is a code issue, or something else.
I'm using a receiver from the original remote (that works on the computer, but i don't like his design xD, so i want to use other remote to simulate him), a IR Emitter, the remote that i want to use, an IR Receiver, and a Arduino of course ( lol ).
I will leave the code here, hope you guys can help me.
#include <IRremote.h>
#include <Ethernet.h>
#include <SPI.h>
#define UP 3261853764 //Mouse para cima
#define DOWN 3305092678 //Mouse para baixo
#define LEFT 1972149634 //Mouse para esquerda
#define RIGHT 1400905448 //Mouse para direita
#define INFO 1908947622 //Botao esquerdo mouse
#define GUIA 3468072230 //Botao direito mouse
#define MENU 1723810024 //Windows Key
#define VOLP 1752382022 //VOLUME +
#define VOLM 2209452902 //VOLUME -
#define MUTE 591444258 //MUDO
IRsend irsend;
int RECV_PIN = 2;
IRrecv irecv(RECV_PIN);
decode_results results;
unsigned int bWindows[34] = {
300,1800,350,1750,250,1800,300,750,250,800,250,800,250,1800,300,750,250,1850,250,1800,300,750,250,1850,250,750,300,750,300,750,250,800,250,};
unsigned int bMouseUp[34] = {
350,1750,350,1700,300,1800,300,750,300,750,300,750,250,1850,250,750,300,1800,250,800,250,800,250,750,300,750,300,750,250,800,250,800,250,};
unsigned int bMouseDown[34] = {
350,1700,350,1750,350,1750,250,800,250,750,300,750,300,1800,250,800,250,750,300,1800,250,800,250,800,250,750,300,750,300,750,250,800,250,};
unsigned int bMouseLeft[34] = {
300,1800,350,1700,300,1800,300,750,250,800,250,800,250,1800,300,750,250,1850,250,750,300,1800,250,1850,250,750,300,750,300,750,250,800,250,};
unsigned int bMouseRight[34] = {
350,1700,350,1750,350,1750,300,750,250,750,300,750,300,1800,250,800,250,750,300,750,300,1800,250,1800,300,750,300,750,250,800,250,800,250,};
unsigned int leftButton[34] = {
400,1700,300,1750,350,1750,300,750,300,750,250,800,250,1800,300,750,300,1800,250,800,250,750,300,1800,250,800,250,800,250,750,300,750,300,};
unsigned int rightButton[34] = {
400,1700,300,1750,350,1750,300,750,300,750,250,800,250,1800,300,750,300,750,250,800,250,1800,300,750,300,750,250,800,250,800,250,750,300,};
unsigned int volUp[34] = {
400,1700,300,1750,350,1750,300,750,300,750,250,800,250,1800,300,750,300,1800,250,800,250,1800,300,750,250,800,250,800,250,750,300,750,300,};
unsigned int volDown[34] = {
400,1700,300,1750,350,1750,300,750,300,750,300,750,250,1800,300,750,300,750,250,1850,250,750,300,1800,250,800,250,800,250,750,300,750,300,};
unsigned int mute[34] = {
350,1750,350,1750,300,1800,250,750,300,750,300,750,250,1850,250,750,300,750,300,1800,250,800,250,750,300,1800,250,800,250,800,250,750,300,};
void setup()
{
Serial.begin(9600);
irecv.enableIRIn();
}
void loop() {
if (irecv.decode(&results)) {
if(results.value == UP){
for (int i = 0; i < 2; i++) {
Serial.println("Mouse para cima pressionado");
irsend.sendRaw(bMouseUp,34,38);
delay(100);
}
}
if(results.value == DOWN){
for (int i = 0; i < 2; i++) {
Serial.println("Mouse para baixo pressionado");
irsend.sendRaw(bMouseDown,34,38);
delay(100);
}
}
if(results.value == LEFT){
for (int i = 0; i < 2; i++) {
Serial.println("Mouse para esquerda pressionado");
irsend.sendRaw(bMouseLeft,34,38);
delay(100);
}
}
if(results.value == RIGHT){
for (int i = 0; i < 2; i++) {
Serial.println("Mouse para direita pressionado");
irsend.sendRaw(bMouseRight,34,38);
delay(100);
}
}
if(results.value == INFO){
for (int i = 0; i < 1; i++) {
Serial.println("Botao esquerdo do mouse pressionado");
irsend.sendRaw(leftButton,34,38);
delay(500);
}
}
if(results.value == GUIA){
for (int i = 0; i < 1; i++) {
Serial.println("Botao direito do mouse pressionado");
irsend.sendRaw(rightButton,34,38);
delay(500);
}
}
if(results.value == MENU){
for (int i = 0; i < 1; i++) {
Serial.println("Windows Key pressionado");
irsend.sendRaw(bWindows,34,38);
delay(400);
}
}
if(results.value == VOLP){
for (int i = 0; i < 1; i++) {
Serial.println("Aumentar volume pressionado");
irsend.sendRaw(volUp,34,38);
delay(100);
}
}
if(results.value == VOLM){
for (int i = 0; i < 1; i++) {
Serial.println("Diminuir volume pressionado");
irsend.sendRaw(volDown,34,38);
delay(100);
}
}
if(results.value == MUTE){
for (int i = 0; i < 1; i++) {
Serial.println("Mudo pressionado");
irsend.sendRaw(mute,34,38);
delay(500);
}
}
irecv.resume();
delay(100);
}
}
Peace! And thanks in advance.
Sorry if i made some english error, i'm from Brazil