• Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs September 2025.
    Thema: "Straßenfotografie s/w"

    Nur noch bis zum 30.09.2025 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
  • Ich freue mich bekannt geben zu können, dass das DSLR-Forum einen neuen Aktionspartner gewinnen konnte.

    Saal Digital bietet Fotoprodukte in HighEnd-Qualität.
    Alle Informationen dazu gibt es demnächst hier.
  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
WERBUNG

DIY IR Remote: Canon RC-1 + Pentax IR F + Nikon ML-L3 + Olympus RM-1

Die Schwellspannung der LED´s hängt von der Art der LED ab.
IR LED´s haben ca. 1,3V. Die Kollektor-Emitter Sättigungsspannung eines normalen Bipolaren Transistors liegt bei 0,1V also vernachlässigbar klein.
Bei einem MOSFET kann sie noch deutlich kleiner sein.
Aber: LED´s verhalten sich anders als Glühlampen oder Blitzröhren wenn man den Maximalstrom erreicht hat steigt die Ausbeute an Licht nur noch unwesentlich an es wird hauptsächlich Wärme produziert - deshalb sind die Vorwiderstände an den LEDs schon richtig. Den Strom durch die LED brauch ich nicht zu messen den kann man ausrechnen und mit dem Widerstand steuern.
Ich werd mal ein bißchen mit anderen LED´s experimentieren und FET´s zum Schalten verwenden dann werd ich schon sehen ob eine weitere Optimierung möglich ist. Ich glaub die LD471 ist schon ziemlich stark - es war doch die LD471 ?? egal ich hab sie ja schon gekauft und hier rumliegen. Was ich noch extrem reizvoll fände wäre die Implementierung der Auswertung eines Fernsteuersignals eine Modellfernsteuerung um damit die Kamera auslösen zu können aber der Tiny25 ist ja schon ziemlich voll mit dem IRcode.

Dewenne
 
Die Schwellspannung der LED´s hängt von der Art der LED ab.
IR LED´s haben ca. 1,3V.

hab ich gemerkt und geschrieben :D

Die Kollektor-Emitter Sättigungsspannung eines normalen Bipolaren Transistors liegt bei 0,1V also vernachlässigbar klein.
Bei einem MOSFET kann sie noch deutlich kleiner sein.
Dewenne

na ja, graue Theorie, ich habe hier Datenblätter (Bipolaren Transistors), bei 100mA kann es schon 1V sein worst case
und MasterFXs FET hat 6 Ohm, die 40-80mOhm FETs setzen wir hier nicht ein !

deswegen fragte ich ja, gemessen ? wieviel Spannungsabfall hast du am 68 Ohm bei Puls on und damit kann man rechnen ob überhaupt 100mA fliessen, aus der Minibatterie bezweifel ich, aus dem Pufferkondi auch nicht weil alle Rv und Transistorenwiderstände davor liegen, und selbst wenn der Strom aus dem Pufferkondi für die Zeit kommen könnte ! (er ist zu klein) dann begrenzen die Widerstände !
 
und MasterFXs FET hat 6 Ohm,
du bist im Falschen Thread, schau mal auf die erste Seite ich habe nur 3 Portpins parallel geschaltet. Mit nem 18 Ohm Serienwiderstand bin ich auf 70mA. (Den BSS123 nutze ich nur beim MultiTrigger.)
 
du bist im Falschen Thread

nur halb, weil ich mich auf dwennes Aussage bezog, das MOS FET deutlich kleinere R haben, stimmt nicht immer und die genannten 6 Ohm tun schon weh , worst case, aber hier nicht hast recht :top:

Mit nem 18 Ohm Serienwiderstand bin ich auf 70mA.

OK wenns reicht ? geben die 3 Ports nicht mehr her ? je Port von 10-40mA je nach Type, aber die Gesamtleistung darf man auch nicht vergessen

(Den BSS123 nutze ich nur beim MultiTrigger.)

OK und auch das Problem ist lösbar, getrennte Rv für Kondi Laden und Entladen dann könnte man aus dem Kondi (wenn er größer wäre) richtig pulsen, auch über 100mA für Reichweite, denke da bei Smart Trigger an Lichtschranken Funktion, braucht bloß einen Reflektor zur Empfänger Diode
 
Ich habe da mal ne Frage an die Canon-Gurus.
Mein Fernbedienung ist fertig und geht mit meiner D5000 auch wunderbar. Leider schaffe ich es aber nicht die 450D meiner Mutter auszulösen. Von den gesendeten Canon-Signalen her sollte es gehen. Da ich aber erst das Nikon-signal und dann das Canon-Signal sende, mit 63ms Pause, weiß ich nicht ob die 450D vielleicht durch das Nikon-Signal "verwirrt" wird und dann aussteigt. Kann das sein?

Edit:
Quellcode angehängt
Code:
/* 	Universal IR Remote for DSLR

	for more information see the thread in dsrl-forum.de
	https://www.dslr-forum.de/showthread.php?p=4321848

	Org. Author: MasterFX (MasterFX@gmx.de)
	Converted to PIC12Fxxx/PIC16Fxxx: race13
*/

#include <htc.h>
#include "delay.h"

__CONFIG (0x3F64); //Watchdog off, Poweron Delay on, 4Mhz intern Oszilator,...


// Macros for IR LED
#define LED_ON 		GPIO = 0x33
#define LED_OFF		GPIO = 0x0C

#define NOP2()		NOP(); NOP()
#define NOP4()		NOP2(); NOP2()
#define NOP7()		NOP4(); NOP2(); NOP()

#define PULSE_32k() LED_ON; NOP7(); NOP7(); LED_OFF; NOP4(); NOP2()
#define PULSE_40k() LED_ON; NOP7(); NOP4(); LED_OFF; NOP2()


void remote();

interrupt wakeup()
{
	DelayMs(25);
	INTF = 0;
}


void main(){

		//intialize IO
	GIE = 1;				//Enable Global Interrupt
    INTE = 1;				//Enable GP2/INT external Interrupt
    INTEDG = 1;				//Interrupt on rising edge

	GPIO = 0;
	ANSEL = 0;
	TRISIO = 0x0C; 

	while(1){
		remote();
		asm("sleep");		//stop execution to save power
	}
}


// Pin Change Interrupt ISR
void remote()
{
	char i,j,k,cmd, pincount=0;
	unsigned int address, mask;

// Nikon
	for(j=2; j!=0; j--){
		for(i = 80; i !=0; i--){
			PULSE_40k();
		}
		DelayBigUs(27830);
		for(i = 15; i !=0; i--){
			PULSE_40k();
		}
		DelayBigUs(1580);
		for(i = 16; i !=0; i--){
			PULSE_40k();
		}
		DelayBigUs(3580);
		for(i = 16; i !=0; i--){
			PULSE_40k();
		}
		DelayMs(63);
	}	

	while(GP2 && pincount<=250)
	{	
		pincount++;
		DelayMs(10);
	}
// Canon
	
	for(j=2;j!=0;j--){
		for(i = 16; i !=0; i--){
			PULSE_32k();
		}
		if(j-1){
			if(pincount < 200) 				// Key pressed for undelayed Shot ? 
				DelayBigUs(7330);
			else if (pincount >= 200) 		// Key pressed for delayed Shot ?
				DelayBigUs(5360);
		}
	}

	DelayMs(100);

// Sony
	cmd = 0;
	mask = 1;
	address = 0x1E3A;

	if(pincount < 200)
		cmd = 0x2D;
	else if(pincount >= 200)
		cmd = 0x37;

	for(k=5;k!=0;k--){
		// Send Start-Burst
		for(i=96; i!=0; i--){
			PULSE_40k();
		}
		DelayBigUs(640);
		// Send Command
		while(j++<7){
			i=24;
			if(cmd & mask)
				i=48;	
			while(i--){
			PULSE_40k();
			}
			DelayBigUs(640);
			mask <<= 1;
		}
		// Send Address
		mask = 1;
		j = 0;
		while(j++<13){
			i=24;
			if(address & mask)
				i=48;				
			while(i--){
			PULSE_40k();
			}
			DelayBigUs(640);
			mask <<= 1;
		}
		DelayMs(11);
	}
}
 
Zuletzt bearbeitet:
Klar kann das sein. Dreh doch einfach mal die Reihenfolge um oder mach 500ms Pause dazwischen (zum testen)
 
Ich habe da mal ne Frage an die Canon-Gurus.
Mein Fernbedienung ist fertig und geht mit meiner D5000 auch wunderbar. Leider schaffe ich es aber nicht die 450D meiner Mutter auszulösen. Von den gesendeten Canon-Signalen her sollte es gehen. Da ich aber erst das Nikon-signal und dann das Canon-Signal sende, mit 63ms Pause, weiß ich nicht ob die 450D vielleicht durch das Nikon-Signal "verwirrt" wird und dann aussteigt. Kann das sein?

natürlich kann das sein, ich hab den Code so übernommen, nur die Zeiten am Oszi abgeglichen, mein Atmel war etwas schneller, musste also für die 32 und 40 KHz die Zeiten etwas verlängern und symmetrieren

Code:
#define	PULSE_32k()		LED_ON(); _delay_us(15.8);	LED_OFF(); _delay_us(14.8)
#define PULSE_38k()		LED_ON(); _delay_us(12.35);	LED_OFF(); _delay_us(11.25)
#define PULSE_38_4k()	LED_ON(); _delay_us(13);	LED_OFF(); _delay_us(12)
#define PULSE_40k()		LED_ON(); _delay_us(12.5);	LED_OFF(); _delay_us(12.5)


void IR_toggle(uint8_t camera_type){
	uint16_t i;
	uint8_t j;
	
	/* we disable interrupts for perfect timing */
	cli();
	if(!(IRSND_DDR&(1<<IRSND_BIT)))
		IRSND_DDR|=(1<<IRSND_BIT);
	switch(camera_type){
		case CANON_RC_1:	/* Canon RC-1 Protocol */
			for(i = 0; i < 16; i++){
				PULSE_32k();
			}
			_delay_ms(7.33);
			for(i = 0; i < 16; i++){
				PULSE_32k();
			}
			break;

.... tbc

der Code funzte mit einer 450D , der Pentax mit Thores Cam auch, nur Nikon konnte ich nicht testen, bist du sicher das deine NOPs den delay_µs entsprechen ?
 
Ja, das auskommentieren muss ich mal testen.
Mit "Canon" habe ich nur das Problem das ich meine Mutter einmal die Woche sehe und die Programmierung der PIC's nur auf der Arbeit geht.
Ich werde mal schauen ob ich mit nem Oszi doch noch nen Fehler finde. Gibt ja zum Glück einige Bilder mit den genauen Timings im Netz.

Und wenn das dann immer noch nicht geht kommt mein Mathematiker wieder raus, und ich definiere die IR-Empfänger der Kamera meiner Mutter als kaputt. :D
 
Einen USB-Progger haben wir in der Firma auch, nennt sich "ICD-2". Aber wie gesagt in der Firma und leihen ist immer so eine Sache.

Ich kann jetzt immerhin ein kleines Update was die Timings angeht geben.
In den Low-Phasen hab ich einen Nop rausgenommen was eine gleichmäßigeres Puls-Pausen Verhältniss gibt. Viel wichtiger war aber die Pause zwischen den "Bursts". Die 5,3 ms und 7,3 ms im Quellcode hat mein Controller auf 6,x ms bzw. 8,x ms "ausgedehnt". Das kann dann natürlich nicht gehen. Habe mit der Zeit etwas gespielt und bin jetzt bei 5,3 ms und 7,3 ms. Mal schauen was die 450D meine Mutter heute abend spricht.
Meine größte "Sorge" liegt aber noch im Sony-Code. Ich hoffe mal das ich mit dem nicht so Probleme bekomme wie beim Canon. *grauß* Testen wird hier erheblich schwerer. Die Kammera liegt 100km gehn Süden :D.

Wenn der Canon-Code läuft kann ich mit Masters Einverständniss meinen Ein-Tasten-Ausfbau mit Bildern und Code einstellen.
 
Sooooo, nach anfänglichem "nicht fokussieren wollen" der 450D (Objekt 10 cm vor dem 18-55VC :lol:) lief alles wie am Schnürchen. Sowohl D5000 als auch 450D ließen sich "Zeitgleich" auslösen.
Allerdings habe ich jetzt auch meinen ursprünglichen Fehler entdeckt und versuche den morgen sauber zu lösen. Ich habe beim Zusammenführen der Canon-Schleifen nicht daran gedacht das ich durch die if(..) Anweisung, die die Wartezeit auslöst, ebenfalls eine Zeitverzögerung habe bzw. durch den Rücksprung erneut Zeit verstreicht. Da lag der Hund begraben. Mit der Kürzung der Delay's geht es zwar, allerdings ist das unschön da es nicht "transparent" ist. Ich habe den Code jetzt so geändert das die Prüfung der Delay-Zeit vor dem ersten Burst erfolgt und anschließend nur eine Variable als Delay-Parameter übergeben wird. Ich hoffe das ich mit dieser Änderung ein transparentes Delay bekomme.
Meine Bilder werden dann morgen folgen.

Edit:
Ach ja, falls die Frage auftaucht warum mir die Transparenz der Delays so wichtig ist bzw. was die Transparenz überhaupt ist.
Zum einen will ich das mein Code "Zahlen-Gleich" mit dem von MasterFX bzw. den original Timings ist und zum zweiten ist es einfach meine Ehre als Dipl. Ing. der Technischen Informatik und angehendem Entwickler für Embedded Systems die das will. :D

Edit bzw. Update2:
ICH BEKOMME NOCH DIE KRIESE!!!!!!!!! *AAAAAAAAARRRRRRRRRRRGGGGGGGHHHHHHH*
Jetzt habe nen PIC16F716 (18 Pins, externe Resonator) zwar nicht Transparent, aber immerhin mit funktionierenden Timings, dann geht der Quellcode nicht auf meinem gewünscheten PIC12F615 (8-Pins inkl. Oscilator).
Obwohl beide laut Datenblatt den gleichen Duticylce haben läuft der PIC12 langsamer als der PIC16 und ganz toller weiße kann ich den PIC12 nicht Debuggen bzw. "In Circute" programmieren.
Da mein Cheff so langsam schief schaut, wenn ich mit LED und Lötkolben rumhantiere lass ich den PIC12 jetzt außenvor und such ein Gehäuse für die größere Platine. :(
 
Zuletzt bearbeitet:
Hallo, Bastler.

Unabhängig von eurem Thread hab ich mich auch daran gemacht, den Pentax F reverse zu engineeren.

Ich hab mit einem Fototransistor das Signal der originalen Fernbedienung ausgelesen und dabei einen bestimmten Code erhalten.

Diesen hab ich dann in Bascom nachprogrammiert und auf einen Atmel88 geschrieben. Daran hängt noch ein Transistor, um die LED nicht direkt zu schalten. Die braucht nämlich 100mA.

Soweit so gut - es funktioniert auch "alles". Wenn ich am Fototransistor messe, schaut mein Signal beinahe so aus, wie das originale. Zumindest von den Timings her. Die Amplitude ist bei mir natürlich höher, weil ich ne stärkere LED habe.

Mein Problem ist jetzt, das ich die Kamera damit leider nicht auslösen kann.

Im Anhang findet ihr ein Oszi-Bild, das ich gemacht habe.

CH1: Spannung an der Sendediode
CH2: Spannung am Fototransistor mit meiner nachgebauten Fernbedienung
M2: Spannung am Fototransistor mit originaler Fernbedienung

Wie man sieht, ist das Signal der originalen FB mit einem Sinus (das sieht man hier nicht, ist aber so) mit ~360Hz überlagert. Brauch ich den auch?

Wie schaut das Timing für Pentax bei euch aus?

Ich hab:
1 - 13ms
0 - 3ms
1 - 1ms
0 - 1ms
1 - 1ms
0 - 1ms
1 - 1ms
0 - 1ms
1 - 1ms
0 - 1ms
1 - 1ms
0 - 1ms
1 - 1ms
0 - 1ms
1 - 1ms
0 - 120ms

Stimmt das so, oder hab ich mich vermessen?
 
Wie schaut das Timing für Pentax bei euch aus?
Naja so wie im Quellcode (und funzt ja auch)
Code:
		for(i = 0; i < 494; i++){
			PULSE_38k();
		}
		_delay_ms(3);
		for(j = 0; j < 7; j++){
			for(i = 0; i < 38; i++){
				PULSE_38k();
			}
			_delay_ms(1);
		}
Oder in Worten: (ON = 38kHz Modulation)
13 ms ON
3 ms OFF
1 ms ON
1 ms OFF
1 ms ON
1 ms OFF
1 ms ON
1 ms OFF
1 ms ON
1 ms OFF
1 ms ON
1 ms OFF
1 ms ON
1 ms OFF
1 ms ON
1 ms OFF (bzw. solange du willst)

Ich vermute einfach dass du deine IR-LED nicht mit 38kHz modulierst (also 13,1µs AN, 13,1µs AUS). Stell mal deine horizontale Auflösung etwas feiner beim Oszi ein, dann solltest du das auch sehen.
 
Ich vermute einfach dass du deine IR-LED nicht mit 38kHz modulierst (also 13,1µs AN, 13,1µs AUS). Stell mal deine horizontale Auflösung etwas feiner beim Oszi ein, dann solltest du das auch sehen.

Danke.

Das mit der Modulation hab ich bereits vermutet, nur das ich (warum auch immer) mich um 2 Zehnerpotenzen verrechnet habe.

Jetzt brauch ich nur noch sowas wie den Pulse Befehl für Bascom...
 
In Bascom sieht wohl etwa so aus:
Code:
For A = 1 To 494
  PortX.Y = 1
  Waitus 13
  PortX.Y = 0
  Waitus 13
Next A

Waitus 3000

For I = 1 To 7
  For J = 1 To 38
    PortX.Y = 1
    Waitus 13
    PortX.Y = 0
    Waitus 13
   Next J
   Waitus 1000
Next I
wobei PortX.Y dein Port ist wo die IR-LED dran hängt
 
Kann mir jemand sagen ob die Pentax Kameras auch mit 40KHz-Modulation zurecht kommen? Bei Nikon ist das ja machbar.
 
WERBUNG
Zurück
Oben Unten