PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wegmessung



Projekt 2252
12.02.2011, 17:41
Hallo Ich habe mir jetzt an mein Fahrgestell zwei Hallsensoren drangebaut und möchte damit dem Roboter "sagen", wie weit er fahren soll. Also z.b so : Do 1 Step und der eine Schritt ist denn eine Umdrehung des Rades an dem der Sensor angebracht ist. Nur habe ich keine Ahnung wie ich das anstellen soll. Ich habe schon die werse Beiträge im Thema Drehzahlmessung durchgelesen aber ich komme einfach nicht drauf wie ich das machen soll.
Gruß Tjark

TobiKa
12.02.2011, 17:55
1. Wie hast du sie "rangebaut" und wo?
2. Was für einen Controller hast du?
3. In welcher Sprache willst du programmieren?

Gib mal mehr Infos!

Projekt 2252
12.02.2011, 18:05
Direkt ans Antriebsrad ca 100 u/min
Rn Control 1.4
Basecom
:D

TobiKa
12.02.2011, 18:16
Dann guckst du jetzt hier rein http://www.rn-wissen.de/index.php/Beispiel_Drehzahlmessung_mit_RN-Control

Projekt 2252
12.02.2011, 20:38
Das hab ich schon gelesen wird ich nicht schlau draus.

TobiKa
12.02.2011, 20:45
Das lässt den Schluss zu das du überhaupt keine Ahnung von den Grundlagen hast und diese erstmal lernen solltest!

Ansonsten stell ne Frage und nicht nur "geht nicht, "kann ich nicht".

Projekt 2252
12.02.2011, 22:53
Meine Frage dabei ist wie ich ihm sagen kann, das pro Schritt der Magnet einmal rumdreht. Wenn ich will das irgentetwas passiert wenn ein Magnet an den Sensor kommt muss ich ja schreiben: If PINA.0 = 1 Then... Else... . Jetzt will ich das so haben das wenn der Sensor zweimal high gibt das das ein Schritt ist. Aber ich weiß nicht wie ich das Bascom beibringen soll. Oder ist der Ansatz komplett falsch ???
Gruß Tjark

hardware.bas
13.02.2011, 14:38
Was TobiKa mit seinem Link empfohlen hat, ist die Nutzung des Timers
und damit des für Dein predestiniertesten Futures im AVR.
Wenn Du Dich mit der Timerprogrammierung, also Rücksetzung,
Frequenzteilung, Auslesen des Timerregisters vertraut machst und
dabei auch das Datasheet nutzt, müsste der Hintergrund eigentlich
klar sein. Möglicherweise müsstest Du mit einem Timerinterrupt
arbeiten, da will ich jetzt jedoch nicht weiter reinreden, da ich das
Restprogramm nicht kenne. VG Micha

Richard
13.02.2011, 17:17
Da es sich hier vorerst nur um eine reine Wegstrecken Messung handelt ist das relativ einfach. Den Sensor an einen IRQ Eingang hängen und bei jedem IRQ eine Zähl Variable erhöhen. Das Ergebnis dann mit dem Rad Umfang Multipliziert ergibt den zurück gelegten Weg (wenn kein Schlupf vorhanden war).

Wie (immer) wichtig, in einer IRQ sollte so wenig wie möglich "gearbeitet" werden damit dieselbe nicht blockierend wird und Schritte verloren gehen. Die eigentliche Auswertung sollte immer in der Haupt looop geschehen.

Gruß Richard