PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abstandssensor (Programmierung)



Fynn
16.11.2009, 16:48
Hallo,

ich baue auch einen kleinen Roboter, und brauche einfache Abstandssensoren! Ich habe mir eine helle IR LED und eine Fotodiode angeschafft. Nun will ich mit Bascom 38khz auf der IR-LED ausgeben, und versuchen, sie wieder über die Fotodiode zu empfangen! Wenn das möglich ist, sollte ein Gegenstand im Weg sein... Allerdings brauche ich Hilfe bei der Programmierung! Besser gesagt bei der Umrechnung der empfangenen Signale am T0 in Hz, gut wäre auch noch ein Link, oder Codebeispiel zum ausgeben von 38khz, dass habe ich bisher so gedacht, mit einem M8 auf 1Mhz:

1.000.000 / 29 = 34,482 Khz

Das Problem ist, dass ich nicht so an die 38khz rankomme, aber ich glaube es sollte auch gehen...

Ich hoffe ihr könnt mir helfen!

Fynn

Sauerbruch
16.11.2009, 17:04
1.000.000 Hz / 26 wäre 38,461 kHz, also schon recht nahe dran.

Müssen´s denn ausgerechnet 38 KHz sein?

Ideal zum erzeugen von Frequenzen in dieser Größenordnung ist PWM, und zwar im sog. "CTC"-Modus. Der beste Link zu diesem Thema ist das Datenblatt - da gibt´s Bilder, die sagen mehr als tausend Worte!

Fynn
16.11.2009, 17:23
mhmm, da haste recht :)

Ich schau mal ins DB, danke!

EDIT: Nein, es müssen eigentlich keine 38khz sein, hauptsache es geht am Ende ^^

Fynn
20.11.2009, 18:04
so, jetzt gehts!

Timer gibt jetzt eine Frequenz von ca. 2,5 Hz aus und der Counter lässt sich über ein Display abrufen und löschen :) Und funktioniert natürlich!

Aber, ich will ja das Signal vom Timer wieder über den Counter reinbekommen, Softwaremäßig ist alles im grünen Bereich allerdings steigt die Spannung bei LED ein/aus um ca. 0.2 V... Das ist eindeutig zu wenig um ein High/Low Unterschied zu bekommen. Und das war schon mit Transistor-Verstärker...

Habt ihr vielleicht noch eine andere Lösung?

Fynn

Sauerbruch
20.11.2009, 18:39
Für fast alles gibt´s eine Lösung - man muss nur das Problem verstehen. Und damit tue ich mich etwas schwer :-)



Timer gibt jetzt eine Frequenz von ca. 2,5 Hz aus
Wie, wo und warum 2,5 Hz?



der Counter lässt sich über ein Display abrufen
Welcher Counter?


ich will ja das Signal vom Timer wieder über den Counter reinbekommen
Was meinst Du mit "ein Signal über den Counter reinbekommen"?


steigt die Spannung bei LED ein/aus um ca. 0.2 V
Ist das ´ne Ausgangs- oder Eingangsspannung am µC? Wo kommt sie her?

Versuch doch mal, das Projekt und Deine Ideen genau zu beschreiben. Schaltskizzen und Programmcodes sind hier im Forum ungemein hilfreich auf der Suche nach neuen Ideen!

Fynn
20.11.2009, 19:41
OK,

ich will ein Roboter bauen. Da mir die Sharp Sensoren zu teuer sind, außerdem nicht bei reichelt vorhanden sind, habe ich mir gedacht, sowas selbst zu bauen.

Die Frequenz 2,5 Hz ist eigentlich zufällig entstanden: Es sollte erstmal eine noch sichtbare Frequenz sein, was sich zum Experimentieren besser eignet :)

Bei Counter, habe ich einen Timer zum Counter gemacht, genauer gesagt Timer 0 des M8's. (über Pin T0)

Naja, und ich habe eben einen Timer (2) der eine Frequenz über eine (IR-)LED ausgibt, und ein Timer (0) der sie versucht über den Countereingang (T0) mit einer Fotodiode wieder zu empfangen. Diese hat ja einen gewissen Widerstand, abhängig vom Lichteinfall.. Der Counter kennt ja nur High und Low, wo genau diese Grenzen im Volt-Bereich liegen weiß ich grad nicht. Auf jeden Fall müsste die Spannung bei leuchtender LED low werden, und wenn nicht, dann High... Leider ist das nicht so einfach, der Spannungsunterschied liegt bei 0.2 V. Also ca. 4 V und 4.2 V. Im Vergleich mit eingeschalteter und ausgeschalteter LED! Mit Transistor-Verstärker...

Ich habe jetzt was mit ADC ausprobiert, also jetzt nichts mehr mit Frequenz ausgeben und messen ;) Dabei sollte am Anfang eine Messreihe durchgeführt werden um sich an das Licht zu "gewöhnen" und dann daruas der Durchschnitt. Und dann soll das ganze mit ständig Leuchtender LED funktionieren... Damit hab ich aber gerade erst (vor 30min) angefangen!

Ich hoffe du/ihr hast/habt eine Idee!

Fynn

Sauerbruch
21.11.2009, 19:49
Das mit dem "gewöhnen" ist natürlich ain wichtiger Aspekt - je nach Umgebungshelligkeit wist Du wahrscheinlich ziemlich unterschiedliche Ruhespannungen bekommen. Und die Abweichung beim Einfall reflektierten Lichtes wird auch unterschiedlich ausfallen, je nach dem welche Farbe das reflektierende Hindernis hat.

Es gibt für ganz wenig Geld (1-2 Euro) sehr empfindliche IR-Empfänger, die selektiv nur auf Signale einer bestimmten Frequenz reagieren (z.B. 38 kHz :-) ). Das hat den Vorteil, dass Streulicht praktisch komplett ausgeblendet wird. Diese kleinen Dinger haben auch mehrere Verstärkerstufen eingebaut, so dass eine erhebliche Empfindlichkeit entsteht. Sie haben 3 Pins: +5V, GND und einen Open-Collector-Ausgang, der durchsteuert sobald ein IR-Signal mit entsprechender Frequenz erkannt wird. Kannst ja mal googeln - TSOP38 wäre einer davon.