Hallo
Bei Fragen zu OPV muss ich leider passen. Die unterschiedliche Beschaltung der Kanäle scheint mir auch verdächtig, aber ich mag mich eigentlich nicht tiefer einlesen:
http://www.soselectronic.de/a_info/r...in/LTC1051.pdf
Mein SnakeVision (Fertiggerät) wurde so bestückt:
R1 - 1M bnswgn (300k)
R2 - 10 bnswsw (7r5)
R3 - 1M brswgn (1M)
R4 - 100 bnswbn (10)
R5 - 1M bnswgn (1M)
R6 - 100 bnswbn (15)
R7 - 20k rtswor (20k)
R8 - 20k rtswor (20k)
http://www.dieelektronikerseite.de/T...ndsrechner.htm
Wie vermutet speichert die Kalibrierfunktion bei Tastendruck die aktuellen Werte als Offset und rechnet diese Werte bei den weiteren Messungen mit ein:
(Aus Weglaufen.c der SnakeVision-Beispielprogramme)Code:... Init(); // Port D, Pin 6 (die ehemalige Front-LED), auf Eingang ... // ... schalten und den Pullup aktivieren. DDRD&=~(1<<6); PORTD|=(1<<6); // Motoren immer auf rückwärts MotorDir(RWD,RWD); // Offset mit null initialisieren offset[0]=0; offset[1]=0; while(1) { // Messwerte einlesen ThermalData(tdata); // Wenn Knopf gedrückt, aktuellen Wert als Offset speichern if ((PIND&(1<<6))==0) { offset[0]=tdata[0]; offset[1]=tdata[1]; } // Offset abziehen, aber nur, wenn der Messwert groß ... // ... genug ist if (tdata[0]>offset[0]) tdata[0]-=offset[0]; else tdata[0]=0; if (tdata[1]>offset[1]) tdata[1]-=offset[1]; else tdata[1]=0; // Die Summe der Werte wird für die Berechnung der ... // ... Geschwindigkeit genutzt sum=tdata[0]+tdata[1]; // Signal stark genug? ...
Gruß
mic





Zitieren

Lesezeichen