Alguém sabe o que há de errado com esse código?

Alterei o Nikon Trigger da Layada.

Usei um código dela que decodificou um botão de mudo do controle remoto da minha LG. Isto gerou a string IRsignal, com o código do botão

Acontece que mesmo colocando ela para ser pulsada, a tv não responde.

O Led IR está na porta 13 sem resistor e está emitindo luz. (testei na camera IR)

Vi que as vezes pode ter sido erro de leitura do receptor quando gerou a variável, mas rodei o sketch do receptor de novo e a variável bateu.

Então acredito que deva ser algo relacionado a frequência. O contador referente aos delays  e pulsos parece estar funcionando.

Resumindo não sei o que pode estar errado.

Agradeço qualquer ajuda.

// MUTELG is a variation of Nikon D50 Trigger:

// 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
int IRsignal[] = {
892, 436,

66, 46,

58, 52,

60, 160,

64, 46,

60, 52,

58, 52,

58, 52,

58, 52,

60, 166,

60, 154,

66, 46,

58, 162,

64, 156,

64, 156,

66, 154,

64, 156,

64, 156,

66, 44,

60, 52,

58, 166,

62, 44,

60, 50,

60, 52,

58, 52,

58, 52,

58, 162,

60, 160,

66, 44,

60, 162,

64, 156,

64, 156,

64, 156,

64, 3914,

890, 222,

54, 0};
// The setup() method runs once, when the sketch starts

// ON, OFF (in 10's of microseconds)

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

Serial.begin(9600);

}

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

MuteCode();

delay(10*1000); // wait one minute (60 seconds * 1000 milliseconds)
}

// 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(9); // hang out for 10 microseconds, you can also change this to 9 if its not working
digitalWrite(IRledPin, LOW); // this also takes about 3 microseconds
delayMicroseconds(9); // hang out for 10 microseconds, you can also change this to 9 if its not working

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

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

void MuteCode() {
// This is the code for my particular Nikon, for others use the tutorial
// to 'grab' the proper code from the remote
for (int o=0; o<71; o+=2) {

pulseIR(IRsignal[o]);
Serial.print("\nImprimiu: ");
Serial.print(IRsignal[o], DEC);
Serial.print("\n Delay: ");
delayMicroseconds(IRsignal[o+1]);

Serial.print(IRsignal[o+1], DEC);
}


};

Exibições: 128

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço