Go Down

Topic: IR Remote (Read 3058 times) previous topic - next topic

lucas-appr2

Boa Noite!

Estou desenvolvendo um projeto para meu quarto e gostaria de ligar e delisgar o ar condicionado com Arduino. Eu encontrei na internet um exemplo mas nao funcionou e tambem preciso saber se posso ligar o led infra vermelho direto na saida do arduino ou tenho que colocar um resistor.

Aguardo resposta e agradeco desde ja,
Lucas.

HugoPT

#1
Jan 24, 2013, 12:51 am Last Edit: Jan 24, 2013, 12:53 am by HugoPT Reason: 1
Quote
tambem preciso saber se posso ligar o led infra vermelho direto na saida do arduino ou tenho que colocar um resistor.

Sim tens de garantir que nao excedes a corrente maxima do pino, colocando uma resistencia.
Descreve melhor o que prentedes, o arduino vai enviar um sinal infra-vermelho para o equipamento de AC??
Como é que tu interages com o arduino?Comando IR, Botoes....
Que codigo usaste no teu teste?
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

lucas-appr2

Sim vai enviar sinal infra vermelho para um ac. O meu arduino e controlado por um ethernet shield e o exemplo que eu tentei foi:
http://arduinolivre.wordpress.com/2012/07/31/clonando-qualquer-controle-remoto/

Mas nao tinha o valor do resistor entao coloquei um que me foi recomendado, e com meu pouco conhecimento estou achando que ele quem causou o problema...


Obrigado!
Lucas.

bubulindo

E que parte desse tutorial é que já fizeste?
This... is a hobby.

lucas-appr2

Fiz a leitura do sinal do controle e inseri conforme pedido...

Code: [Select]

        // This sketch will send out a Nikon D50 trigger signal (probably works with most Nikons)
// See the full tutorial at http://www.ladyada.net/learn/sensors/ir.html
// this code is public domain, please enjoy!

int IRledPin =  13;    // LED connected to digital pin 13

// The setup() method runs once, when the sketch starts

void setup()   {
// initialize the IR digital pin as an output:
pinMode(IRledPin, OUTPUT);

Serial.begin(9600);
}

void loop()
{
Serial.println("Sending IR signal");

SendChannelUpCode();
delay(500);
}

// This procedure sends a 38KHz pulse to the IRledPin
// for a certain # of microseconds. We'll use this whenever we need to send codes
void pulseIR(long microsecs) {
// we'll count down from the number of microseconds we are told to wait

cli();  // this turns off any background interrupts

while (microsecs > 0) {
// 38 kHz is about 13 microseconds high and 13 microseconds low
digitalWrite(IRledPin, HIGH);  // this takes about 3 microseconds to happen
delayMicroseconds(10);         // hang out for 10 microseconds
digitalWrite(IRledPin, LOW);   // this also takes about 3 microseconds
delayMicroseconds(10);         // hang out for 10 microseconds

// so 26 microseconds altogether
microsecs -= 26;
}

sei();  // this turns them back on
}

void SendChannelUpCode() {
delayMicroseconds(42760);
pulseIR(8920);
delayMicroseconds(4480);
pulseIR(600);
delayMicroseconds(1640);
pulseIR(600);
delayMicroseconds(1620);
pulseIR(580);
delayMicroseconds(560);
pulseIR(600);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(540);
pulseIR(580);
delayMicroseconds(540);
pulseIR(600);
delayMicroseconds(1640);
pulseIR(600);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(1620);
pulseIR(620);
delayMicroseconds(1620);
pulseIR(600);
delayMicroseconds(540);
pulseIR(600);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(540);
pulseIR(600);
delayMicroseconds(1620);
pulseIR(600);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(1640);
pulseIR(600);
delayMicroseconds(540);
pulseIR(600);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(540);
pulseIR(600);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(1620);
pulseIR(600);
delayMicroseconds(540);
pulseIR(580);
delayMicroseconds(540);
pulseIR(560);
delayMicroseconds(580);
pulseIR(540);
delayMicroseconds(580);
pulseIR(540);
delayMicroseconds(580);
pulseIR(540);
delayMicroseconds(580);
pulseIR(540);
delayMicroseconds(580);
pulseIR(560);
delayMicroseconds(620);
pulseIR(560);
delayMicroseconds(1680);
pulseIR(560);
delayMicroseconds(1680);
pulseIR(540);
delayMicroseconds(1700);
pulseIR(540);
delayMicroseconds(580);
pulseIR(540);
delayMicroseconds(1700);
pulseIR(540);
delayMicroseconds(1680);
pulseIR(560);
delayMicroseconds(1680);
pulseIR(560);
delayMicroseconds(560);
pulseIR(560);
        }

bubulindo

E usaste uma resistência no led que recebe o IR?
This... is a hobby.

lucas-appr2

O que recebe eu comprei pronto e sempre funcionou e eu acredito que tenha um resistor sim.

Go Up