PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tacho für Modellauto



Björn
04.09.2005, 19:58
Moin, moin!

Ich möchte quasi einen Tacho für (m)ein Modellauto bauen. Als µC wollte ich einen AVR - z.B. ATtiny26 oder Mega8 nehmen. Nun blieb die Frage nach dem Sensor. Der Raddurchmesser beträgt 6,5cm. Als erstes dachte ich an einen Reed-Sensor - bekommt der soviele Umdrehungen pro Sekunde hin ohne ungenau zu werden?

Gruß, Björn

Björn
05.09.2005, 15:30
Achja,

wäre > so ein (http://www.reichelt.de/index.html?LASTACTION=3;SORT=artikel.artnr;WG=0;SU CHE=reed%20senso;ARTIKEL=MK%2067B;START=0;END=16;F AQSEARCH=Reed-Sensor%2C%201%20Schlie%DFer%2C%20I%3D0%2C5A%2C%20R M%2017%2C8mm;FAQTHEME=-1;FAQSEARCHTYPE=0;STATIC=0;FC=668;PROVID=0;TITEL=0 ;ARTIKELID=12244;FAQAUTO=1;ACTION=3;GRUPPE=C31) < Reed Sensor richtig, oder ist das etwas anderes?

Gruß, Björn

Manf
05.09.2005, 17:28
Grundsätzlich kann man einen solchen Sensor mit einem Permanentmagneten betätigen.
Es gbt auch Hallsensoren mit digitalem Ausgang wie sie in elektronisch kommutierten Motoren drin sind. Die dürften etwas empfindlicher sein.
Manfred

Björn
05.09.2005, 17:30
Naja - was heißt "empfindlich" - wenn die "Reichweite" zu groß ist könnte es Probleme geben weil der Raddurchmesser so klein ist.

Gruß, Björn

Manf
05.09.2005, 17:41
Man benötigt ein gewisse Größe des Magenten, um das Feld zu erzeugen und ausgewuchtet soll das Rad dann auch wieder sein.

Nicht jeder hat ein Reed Relais gleich da, eher einen altes ComputerGebläse oder Diskettenlaufwerk, das waren die Überlegungen.
Manfred

Björn
05.09.2005, 17:53
Ich habe zum Test mal ein Sigma Tacho Geber angeschlossen und ihn wie einen normalen Taster verwendet - doch das Programm sagt die ganze Zeit "ein" - obwohl ich nichts dranhalte - ist der Sensor defekt o.ä.? Geschaltet habe ich ihn an GND und einen Pin.

Gruß, Björn

Manf
05.09.2005, 17:56
Ist da auch ein Pull-Up dabei?

Manfred

Björn
05.09.2005, 17:58
Kein externer - nur intern mit Code "Pinc.0 = 1".

Gruß, Björn

Manf
05.09.2005, 18:02
ist der Sensor defekt o.ä.?
ich tippe erst mal auf o.ä..
Zum Test kann man ja den Sensor durch einen Taster ersetzen.
Manfred

Jetzt ist die Frage weg:-k O:)

Björn
05.09.2005, 18:10
Was mir noch aufgefallen ist - wenn man mit Multimeter diesen Durchgangstest macht, steht er die ganze Zeit auf "1", müsste bei Magnetnäherung nicht eine schwache Verbindung sein?

Gruß, Björn

Wolferl
05.09.2005, 18:17
Wenn du einen linearen Hall-Sensor verwendest kannst du die Madenschraube vom Motorritzel detektieren, jedenfalls, wenn das Ritzel aus Alu ist.
Hinter dem Sensor setzt du noch einen kleinen Magneten (2mm Durchmesser, ca. 8mm lang). Vor dem Sensor ist das Ritzel bzw. die Madenschraube.
Das Ausgangssignal mußt du noch mit einem Komparator in TTL Pegel wandeln.
Über die Untersetztung kannst du dann auf die Reifendrehzahl umrechnen -> Geschwindigkeit.
Problematischer ist die Funkübertragung, falls du das vorhast.

Wolfgang

Manf
05.09.2005, 18:55
Was mir noch aufgefallen ist - wenn man mit Multimeter diesen Durchgangstest macht, steht er die ganze Zeit auf "1", müsste bei Magnetnäherung nicht eine schwache Verbindung sein?
Beim Relais sollte es keine schwache Verbindung geben, es klickt ganz leise wenn sich der Manget nähert, und der Schalter wird geschlossen. <1Ohm.

Erst mit Hysterese, wenn der Magnet ein Stückchen weiter weg ist klickt es wieder und der Schalter springt auf. Es muss aber schon ein richtiger Magnet sein.
Manfred

Björn
05.09.2005, 19:05
Hier mal der Code - das Klicken hört man - geht trotzdem noch nicht:



$regfile = "m8def.dat"
$crystal = 7372800

Config Pind.5 = Output ' LED zum Testeb
Config Pinc.0 = Input ' Sensor

Led Alias Portd.5 ' schönere Namen geben ;-)
Sensor Alias Pinc.0 ' - " -"

Portc.0 = 1 ' internen PullUp aktivieren

Do
If Sensor = 0 Then ' Falls Sensor geschlossen
If Led = 1 Then ' Falls LED schon an
Led = 0 ' schalte diese aus
Else ' sonst
Led = 1 ' schalte sie an
End If
End If
Loop

End


ich hoffe er ist verständlich ;-)

Gruß, Björn

Björn
05.09.2005, 19:08
P.S.: Fehler muss bei LED Ansteuerung liegen - mit Summer funst alles super!

Ich baue mir dann ma eine Halterung am Auto und erstelle den Code - melde mich wieder.

Soweit schonmal vielen Dank!

Gruß, Björn

Manf
05.09.2005, 19:13
Willst Du Zeit gewinnen?


If Led = 1 Then ' Falls LED schon an
Led = 0 ' schalte diese aus
Else ' sonst
Led = 1 ' schalte sie an
End If



Led = 1 - Led

Björn
05.09.2005, 19:19
Oh vielen Dank! Man lernt immer dazu..... ;)

Gruß, Björn

Björn
05.09.2005, 19:40
Habe ein Problem:

Wenn der Sensor langsam vorbei geht, wird mehrmals eine Drehung gezählt. Betreffender Code:


If Sensor = 0 Then
Incr Drehungen
While Sensor = 0
Wend
End If


Kann man da was machen?

Gruß, Björn

Manf
05.09.2005, 20:10
Flankenauswertung:


if sensor_alt = 0 and Sensor =1
incr Drehungen
endif
sensor_alt = sensor

Björn
05.09.2005, 20:19
Danke! Wenn man's sieht..... ;-)
Hab aber immer noch das Problem dass mal 2, mal 1 Umdrehung angezeigt wird wenn ich das Rad einmal pro Sekunde drehe.

Gruß, Björn

Paisley
05.09.2005, 22:14
Moin Björn,

Ich würd's mit Loop Until machen, so hab ich auch den RC-Kanal ausgelesen ;-) Da können Doppelmessungen kaum passieren.

Für die LED würde ich Toggle nehmen, finde ich persönlich übersichtlicher.

Gruß Denis

Björn
05.09.2005, 22:18
OK, werd's mal versuchen mit Loop Until, wozu ist den Toogle (heißte das nicht Toggle?) da?

Gruß, Björn

Paisley
05.09.2005, 22:21
Jop, geändert.

Toggle ändert den Zustand, "Toggle pinx.y" ist einfach der Befehl den du mit dieser aufwendigen IF -Verknüpfung lösen wolltest, wahrscheinlich noch bei meinen Minischalter von damals abgeguckt [-(

Gruß Denis

Björn
05.09.2005, 22:25
Moment Mal - mit

Do
...
Loop Until Sensor = 1


würde es doch noch aufwendiger werden oder? Da müsste ich doch noch abfragen ob schon diesen Durchlauf die Umdrehungszahl erhöht wurde, oder?

Gruß, Björn

Paisley
05.09.2005, 22:33
Ich weiß nicht wo dein Problem liegt, aber ist doch einfach:

Wenn der Sensor anspringt dann zählt er hoch und springt in die Schleife BIS der Sensor nciht mehr anschlägt, Fehlmessung vermieden.

Gruß Denis

Björn
06.09.2005, 13:58
Ok, das Problem ist behoben - aber ich habe ein ganz grundsätzliches - nähmlich die Zählweise.
Und zwar wird ja bei jedem Sensor-Anschlag die Zahl "Drehungen" um 1 erhöht. Jede Sekunde wird ein Timer durchlaufen, der aus der aktuellen Drehungen-Zahl die Geschwindigkeit ausrechnet. Dann wird Drehungen auf 0 gesetzt und die Timer schleife verlassen.
Ist das schon OK so, oder könnte man das Messverfahren noch genauer machen?

Gruß, Björn

walddax
06.09.2005, 15:00
Könnte man für die Drehzahlmessung nicht auch ne kleine Reflexlichtschranke nutzen?