IR-Auslöser für Pentax-Kameras
Ein fertiger Infrarot-Auslöser kostet zwar nicht allzu viel, aber wer gerne bastelt und einen Arduino hat, findet hier eine hoffentlich interessante Anregung.
Wie das IR-Signal bzw. die Impulsfolge zum Auslösen aussehen muss, ist in mehreren Usenet-Postings erwähnt. Die Trägerfrequenz beträgt 38 kHz.
Hardware
Benötigt werden
- Ein Arduino. Ich habe den Uno R3.
- Zwei Widerstände mit 50 Ω bzw. 500 Ω. Im Zweifelsfall nimmt man Widerstände mit etwas höheren Werten.
- Eine IR-Sendediode. Ich verwende die CQY 99.
- Ein Transistor (z. B. BC 548 C).
- Ein Taster (1 × „AN“ oder „UM“ genügt).
- Ein bisschen Draht und etwas, worauf man die Schaltung aufbauen kann. Für meine Zwecke tut es ein sog. „Breadboard“, auf dem ich die Schaltung schnell zusammenstecke.
- Bei Bedarf: Ein Gehäuse.
Diese Zutaten verbaut man folgendem Schaltplan entsprechend:
Software
Das Programm für den Arduino besteht aus drei Funktionen: Neben den obligatorischen Funktionen setup() und loop() gibt es die Funktion send_pulse(), die einen IR-Puls sendet, dessen Länge dem übergebenen Wert in Millisekunden entspricht.
// pentax_ir
// IR-Ausloeser f. Pentax-Kameras
const byte irPin=13; // Pin 13 steuert die IR-Sendediode
const byte buttonPin=12; // Wenn gedrueckt, wird ausgeloest
const byte delayUs=9; // ergibt halbe Periodendauer von 38 kHz
const byte periodes=38; // Zahl d. 38 kHz-Perioden in einer ms
void setup()
{
pinMode(irPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Als Eingang
// mit aktiviertem
// Pull-up-Widerstand
// konfigurieren
}
void loop()
{
if(digitalRead(buttonPin)==LOW) // Ausloesen
{
send_pulse(13); // 13 ms an
delay(3); // 3 ms aus
for(int x=0; x<7; x++) // 7 mal: 1 ms an, 1 ms aus
{
send_pulse(1); // 1 ms an
delay(1); // 1 ms aus
}
while(digitalRead(buttonPin)==LOW) // Nichts weiter tun,
// solange Taster gedr.
{
delay(10);
}
}
}
// send_pulse
// Diese Funktion sendet einen IR-Puls
//
// Die Laenge des Pulses in Millisekunden
// wird beim Aufruf uebergeben
void send_pulse(int n)
{
long int pulses=n*periodes;
for (long int x=0; x != pulses; x++)
{
digitalWrite(irPin, HIGH);
delayMicroseconds(delayUs);
digitalWrite(irPin, LOW);
delayMicroseconds(delayUs);
}
}
Wird der Taster betätigt, löst die Kamera aus.
Weiter zu: Akku-Ladekurve

|