2016-04-01 16 views
0

これは大きなトラブルシューティングのヘルプが必要です。これは、ソニーのカメラにIR LEDを介してIRパルスを送信し、シャッターをトリガーして写真を撮ることになっているArduinoの小さなスケッチです。私は最終的に遠隔から野生生物の写真を撮ることができるように、RFトランスミッタと接続する予定です。 動きコードとhttp://multifunctionremote.blogspot.com/で説明されているようなタイムラプスアプリケーションを使用して、このコードが過去に美しく機能したことがあります。 私はもうそれを働かせることはできません。 RFコードと回路は、私が1つのArduinoに別のArduinoにLEDを点滅させるように指示するという意味で完璧に機能します。そのため、あなたはそれに悩まされる必要はありません。私はちょうどカメラをもう一度アクティブにするためにIR LEDを得ることができません。私が使用しているコードはこの最後です。この回路は非常に簡単です.IR LEDはピン8に接続し、220オームの抵抗器を介してグランドに接続します。神の愛のために、それは機能しません、なぜ私は理解できません。私が行っているこのトラブルシューティング:Arduino IR Led not working

-CHECKカメラ:それは私が扱っていなかったことを確認する3種類のIR LEDを切り替え -I持てる問題ではありませんので、それは、ネイティブ、ブランドの赤外線リモコンで完璧に動作します欠陥のあるもの。私は、より低いオーム抵抗、100オームを使用して出力を最大化しました。私はLEDが点滅しているのを見ることができないので、LEDをチェックするのは苦労しますが、私は3つの欠陥のあるLEDを得ることができないと思います! - IR LEDの代わりに赤いLEDを使用すると、LEDが点滅するため、回路が動作しています。正しい周波数で点滅していますか?分かりません。 - Arduinoに欠陥がありますか?私はすべてのピンをチェックし、2つの異なるコントローラの回路を無駄に動作させてテストしました。 2年前に変更されたのは、すべてうまくいっていた唯一の事は、私が使っているArduino IDEのバージョンです。とにかくコントローラのファームウェアが変更されたので、このコードはもう使えないのですか?

int IRledPin = 8; 
void setup() { 
pinMode(IRledPin,OUTPUT); 
} 

void loop() { 
SendChannelUpCode(); 
delay(3000); 
} 
void pulseIR(long microsecs) { 
    // This is the function dealing with the impulse frequency: 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 
    digitalWrite(IRledPin, LOW); // this also takes about 3 microseconds 
    delayMicroseconds(9);   // hang out for 10 microseconds 

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

    sei(); // this turns them back on 
    } 
void SendChannelUpCode() { 

//これは、シャッターレリーズのためのコードはSONY NEX-7 ブレスレット(2400)です。 delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(11000)。 pulseIR(2400); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600)。 pulseIR(1200); delayMicroseconds(600)。 pulseIR(1200); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600)。 pulseIR(1200); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(600); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(600); pulseIR(1200); delayMicroseconds(11000)。

+1

これはあまりにも多くの読書、あまりにも多くのIMOです。それをトリムし、段落を形成する... –

答えて

0

}私は、割り込みがオフになってdelaymicrosecondsは、()(まだ)正しく動作することを確認してくださいます。それ以外に、私は大幅に変化した可能性のあるものは見えません。

赤外線LEDに関する視覚的フィードバックを得るには、2番目のLEDを直列に配置し、抵抗値を下げることができます。実際にIR LEDをチェックするには、LEDと抵抗と直列に接続されたIRフォトトランジスタを指すことができます。

周波数を確認するには、LEDを赤色に置き換えます(または上記のように直列に配置します)。パルスIR(1000000)のパルスの長さを測定します。

オシロスコープにアクセスできない限り、今は他のことは考えられません。

+0

ありがとう、私は割り込みの問題を調査します。 –