Archiv verlassen und diese Seite im Standarddesign anzeigen : Tacho für Modellauto
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
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
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
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
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
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
Ist da auch ein Pull-Up dabei?
Manfred
Kein externer - nur intern mit Code "Pinc.0 = 1".
Gruß, Björn
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:)
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
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
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
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
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
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
Oh vielen Dank! Man lernt immer dazu..... ;)
Gruß, Björn
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
Flankenauswertung:
if sensor_alt = 0 and Sensor =1
incr Drehungen
endif
sensor_alt = sensor
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
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
OK, werd's mal versuchen mit Loop Until, wozu ist den Toogle (heißte das nicht Toggle?) da?
Gruß, Björn
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
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
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
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
Könnte man für die Drehzahlmessung nicht auch ne kleine Reflexlichtschranke nutzen?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.