danke
ich habe jetzt einen wiederstand von 200 kilo ohm pro fotowiederstand genommen aber unabhängig voneinander messen die beiden Sensoren immer noch nicht wirklich
wenn der eine Wert hoch geht geht der andere auch mit hoch
danke
ich habe jetzt einen wiederstand von 200 kilo ohm pro fotowiederstand genommen aber unabhängig voneinander messen die beiden Sensoren immer noch nicht wirklich
wenn der eine Wert hoch geht geht der andere auch mit hoch
Siehe private Nachricht!
Evtl. LDRs mit schwarzer Pappe gegeneinander abschirmen.
Gruß
Dirk
aber brauche ich beim spannungteiler den Kondensator?
Der ROboter muss bis morgen laufen und bis morgen bekomme ich solche kondensatoren nicht mehr
mfg Marian Otte
Nein, den Kondensator brauchst du erstmal nicht.
Gruß
Dirk
ok danke aber die Werte sind auch nach der Abschirmung noch Relativ gleich wenn ich den einene Zuhalte gehen beide Werte von vorher 500 auf undgefähr 900
Warum?
Keine Ahnung.
Wenn du die LDRs lichtmäßig gut voneinander abgeschirmt hast, bleiben wieder 2 Fragen:
1. Wie GENAU hast du die beiden LDRs angeschlossen (kleine Skizze!)? Welche LDR-Typen hast du?
2. Wie sieht dein Programm aus?
Gruß
Dirk
Das ist die Skizze
mein programm habe ich oben schon gepostest
und das sind meine LDRs http://www.conrad.de/ce/de/product/1...archDetail=005
ich verstehe das einfach nicht
so hier noch ma das Programm
// Einfaches Linienfolgen mit RP6-Sensoren (Test der Funktion 2) 6.3.2008 mic
#include "RP6RobotBaseLib.h"
// Achtung! Die PWM-Werte werden hier OHNE Rampe verändert!
void setMotorPWM(uint8_t power_links, uint8_t power_rechts)
{
extern uint8_t mleft_ptmp, mright_ptmp;
if(power_links > 210) power_links = 210;
if(power_rechts > 210) power_rechts = 210;
mleft_power=mleft_ptmp=power_links;
mright_power=mright_ptmp=power_rechts;
OCR1BL = power_links;
OCR1AL = power_rechts;
if(power_links || power_rechts)
TCCR1A = (1 << WGM11) | (1 << COM1A1) | (1 << COM1B1);
else
TCCR1A = 0;
}
int main(void)
{
initRobotBase();
while(1)
{
writeInteger(readADC(ADC_ADC1), 10);
writeString_P(" - ");
writeInteger(readADC(ADC_ADC0), 10);
writeString_P("\n\r");
if (readADC(ADC_ADC1) > readADC(ADC_ADC0))
{
setLEDs(4);
setMotorPWM(100,50);
}
else
{
setLEDs(32);
setMotorPWM(50,100);
}
mSleep(100);
}
return(0);
}
Geändert von Marian Otte (13.12.2012 um 19:36 Uhr)
Lesezeichen