IR Frequenz auslesen

Hallo zusammen,

ich versuche mit einem IR-Transistor (SFH 309 FA) IR-Frequenzen einer IR-Diode (SFH 4546) zu erkennen. Sowohl Empfangs- als auch Sendemodul sind jeweils ESP32. Mein Problem ist leider, dass mein Empfänger deutlich abweichende Frequenzen anzeigt.

double freq = 3125;
int channel = 0;
int resolution = 8;
  
void setup() {
  
  Serial.begin(115200);
  ledcSetup(channel, freq, resolution);
  ledcAttachPin(26, channel);
  
}
  
void loop() {  
  ledcWriteTone(channel, freq);
    ledcWrite(channel, 50); 
}
int highTime;    //integer for storing high time
int lowTime;     //integer for storing low time
float period;    // integer for storing period
float freq;      //storing frequency

void setup()
{
  Serial.begin(115200);
    pinMode(35,INPUT);  //Setting pin as input
}

void loop()
{
    highTime=pulseIn(35,HIGH);  //read high time
    lowTime=pulseIn(35,LOW);    //read low time
    period = highTime+lowTime; // Period = Ton + Toff
    freq=1000000/period;       //getting frequency with totalTime is in Micro seconds
    Serial.println(freq);
    delay(1000);
}

Ich hoffe, mir kann jemand helfen, mein Problem zu verstehen und es zu lösen.

Viele Grüße
weoiss

Wozu möchtest du denn die Frequenz auslesen ?
Es gibt fertige Libraries, die auch feste Frequenzen zum Senden verwendet.

Wo kann ich diese Frequenzen sehen?

Warum verbindest Du zwei ESP32 mittels IR, die haben doch Funk an Bord?

Ich benötige die Frequenz, da ich ein Carrera-Auto erkennen will.
Ich nutze die beiden ESP32 als Basis zum Testen.

Die Frequenz steht im ersten Code ganz oben. Ein genaues Muster, um wie viel die Frequenzen abweichen, konnte ich bisher nicht identifizieren.

Dann versuche es doch mal mit einem IR-Empfänger. TSOP4838.

Ist der nicht auf 38kHz beschränkt oder verstehe ich das falsch?

Richtig, damit laufen doch die meisten IR-Fernbedienungen.

Die Carrera-Autos senden aber auf den folgenden Frequenzen.

grafik

Ok, sorry.
Wusste nicht, das es so was spezielles ist, fehlten halt deine Informationen, die ich in Post 2 schon angefragt hatte.

Sorry, da hatte ich mich unglücklich ausgedrückt. In dem Senden-Code habe ich unterschiedliche Frequenzen ausprobiert und diese dann versucht zu empfangen. Dort sind mir dann erhebliche Abweichungen aufgefallen. Wenn ich die IR-Diode dann über die normale Zeiterfassung von Carrera halte, wird es erkannt.

Alles klar.
Da habe ich dann leider auch keinen Tipp mehr, da keine Erfahrung vorhanden.

Trotzdem danke für deine Zeit :smiley:

Das solltest Du in einer Tabelle gesendete Frequenz zu empfangener Frequenz dokumentieren.

Hast Du einen Logikanalysator? Gibt es für günstiges Geld und hilft bei solchen Fragen ungemein.

Mißt Du Flimmern von irgendeinen Beleuchtungskörpern mit?
Grüße Uwe

Nein habe ich nicht. Ich konnte aber eben meinen Fehler eben gerade selbst identifizieren. Da ich die Frequenz permanent überschrieben habe, hat sich der ESP quasi verschluckt. Dadurch kam entweder gar nichts oder kompletter Quatsch. Ich habe jetzt einen Delay in die Loop gepackt und prompt zeigt er mir auch ungefähr die richtigen Frequenzen an.

Danke für die Rückmeldung, Du könntest das Thema noch als gelöst markieren.

EDIT: Danke!

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.