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:
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?
...
(Aus Weglaufen.c der SnakeVision-Beispielprogramme)
Gruß
mic
Lesezeichen