Hi,
mit den änderungen
konnte ich nun herausfinden, wie oft, bzw. mit welchem muster meine IR-bake sendet - und empfangen wird. Hier ein teilinhalt der feldvariablen "uint8_t feld_IR[500]" :Code:case 2:// setLEDs(0b0010); writeString_P("\n\n messung feldvariable\n"); initRP6Control(); initLCD(); while(true) { // rotate (20, RIGHT, 3, false); // read_IR_value(); uint8_t i = 0; for(i = 0; i < 499; i++) { temp_IR[i] = read_IR_value(); feld_IR[i] = temp_IR[i]; // feld_IR[i] = read_IR_value(); writeIntegerLength(temp_IR[i],DEC,4); if(i % 7 == 0) writeChar('\n'); else writeString_P(" | "); mSleep(100); // move(50, FWD, DIST_MM(100), false); } clearLCD(); setCursorPosLCD(0, 0); writeStringLCD_P("bin: "); setCursorPosLCD(0, 8); writeIntegerLengthLCD(temp_IR[0], BIN, 8); mSleep(300); setMultiIOLED3(0); readAllRegisters(); mSleep(100); /**************************/ uint8_t key_1 = getMultiIOPressedButtonNumber(); key_1 = getMultiIOPressedButtonNumber(); if(key_1 != 0) break; /**************************/ } break;
es ist folgendes muster, welches empfangen wird:
4x nichts / treffer / 3x nichts / treffer / 4x nichts / treffer usw, usw...
ich nehme an, dass der IR empfänger nicht dauernd empfängt, sondern in einem bestimmten rhythmus. Das würde evtl. erklären warum die optische anzeige (LED)
zwar funktioniert (reaktion auf einzelne empfangene IR-signale), aber in wesentlich unregelmäßigen abständen als dieses 3 - 1 - 4 - 1 - 3 - 1 - 4 - 1 -...Code:case 1:// setLEDs(0b0001); writeString_P("\n\n messung einzelsignal\n"); initRP6Control(); initLCD(); // --------------------------------------- WDT_setRequestHandler(watchDogRequest); /*************************************************************/ while(true) { // rotate (20, RIGHT, 3, false); temp = read_IR_value(); mSleep(100); if (temp == 0) { setMultiIOLED3(1); mSleep(100); setMultiIOLED3(0); // move(50, FWD, DIST_MM(100), false); } clearLCD(); setCursorPosLCD(0, 0); writeStringLCD_P("dec: "); setCursorPosLCD(0, 8); writeIntegerLengthLCD(temp, DEC, 1); mSleep(300); // setMultiIOLED3(0); readAllRegisters(); mSleep(100); /**************************/ uint8_t key_1 = getMultiIOPressedButtonNumber(); key_1 = getMultiIOPressedButtonNumber(); if(key_1 != 0) break; /**************************/ } break;
Diesen rhythmuss möchte ich beibehalten, er scheint mir insofern günstig, weil man mit diesem rhythmus die IR-bake identifizieren könnte...
es beschäftigen mich nun folgende fragen:
- wie finde ich den IR-empfangsrhythmus des RP6 raus?
- Ist er irgendwo angegeben, muss ich ihn irgendwie berechnen/messen (stopwatches?)?
- wie passe ich die beiden frequenzen aneinander an?
für ideen und tipps bin ich wie immer dankbar...







Zitieren

Lesezeichen