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.
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.
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.
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.