Hallo
Die aktuellen Threads zur Abstandsmessung mit der IR-Funktion (nach vorne oder oben) sind ja recht inspirierend, hier mein minimaler Umbau:
Bild hier Bild hier Bild hier Bild hier
Ein Stück Alu-Folie auf einer Seite dreimal gefaltet und auf den Kondensator geklebt (blanke Seite unten!). Der "Reflektor" sollte über die IR-Sendediode hinausragen und ca. 45 Grad haben. Ein Stück Schrupfschlauch auf der IR-Sendediode verhindert Streulicht. (Runde Klebebandpads fertige ich mit einem Locher)
Hier der Testcode dazu:
Der Code basiert auf dem Democode von Waste aus oben erwähnten Betrag. Der Wert für die Modulation der IR-Diode ist etwas fummelig. Wenn alles klappt sieht das dann so aus:Code:#include "asuro.h" #include <stdlib.h> int main(void) { unsigned char sw, speed; unsigned char ir,ir1,ir2; Init(); DDRD |= (1 << DDD1); // Port D1 als Ausgang PORTD &= ~(1 << PD1); // PD1 auf LOW OCR2 = 0xFC; speed=140; while(1) { ir=PIND & (1 << PD0); if (ir || ir1){ BackLED(OFF,OFF); MotorDir(FWD,FWD); MotorSpeed(speed,speed); } else { BackLED(ON,ON); MotorDir(RWD,RWD); MotorSpeed(speed,speed); if (speed > 0) Msleep(500); MotorDir(BREAK,RWD); MotorSpeed(0,speed); if (speed > 0) Msleep(500); } ir2=ir1; ir1=ir; sw = PollSwitch(); /* if (sw & 0x01) OCR2 = 0xFE; if (sw & 0x02) OCR2 = 0xFD; */ if (sw & 0x04) OCR2 = 0xFC; if (sw & 0x08) OCR2 = 0xFB; /* if (sw & 0x10) OCR2 = 0xFA; if (sw & 0x20) OCR2 = 0xF9; */ } return 0; }
Bild hier
(Meine "Arena" ist ein zum Kreis gebundener Kabelkanaldeckel)
Video1(avi 0,6MB)
Video2(avi 1,6MB)
Flashen muss dann man natürlich von vorne. Viel Spass beim Nachbau.
Gruß
mic
[Edit] Videos neu verlinkt







Zitieren
Lesezeichen