Problem:
Du lässt den Bot erst nach vorne fahren, fragst dann den ADC ab. Wenn dieser über 450 ist, dann fährst du rückwärts. Sollte also stimmen.
bleibt offen:
Ist der ADC Wert für den Sensor richtig? Welcher Entfernung entsprechen denn 450?
Probiere es mal so:
Der Abschnitt mit den "waitms 1000" und dem danach ist nicht wichtig. (Das kann man kürzen. Hab ich gemacht.)Code:$crystal = 8000000 $regfile = "m8def.dat" Dim Result As Word Config Pinb.0 = Output Config Pind.7 = Output Config Pinb.1 = Output Config Pinb.2 = Output Config Adc = Single , Prescaler = Auto , Reference = Internal Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1 Start Adc Do Compare1a = 255 Compare1b = 255 Portb.0 = 1 Portb.1 = 0 Portd.7 = 0 Portb.2 = 1 Result = Getadc(6) If Result > 450 Then Compare1a = 255 Compare1b = 255 Portb.0 = 0 Portb.1 = 1 Portd.7 = 1 Portb.2 = 0 wait 1 End If Loop End
Und auch kannst du wahrscheinlich die interne Referenzspannung verwenden, da die meisten Sensoren maximal 2,6 Volt liefern. So ist du Auflösung genauer.
jon







Zitieren

Lesezeichen