Forum: Mikrocontroller und Digitale Elektronik Tachometer / Drehzahlmesser am PC?


von Karl Hübner (Gast)


Lesenswert?

Hallo liebe Gemeinde,
Als erstes hoffe ich mal, ich habe das richtige Thema erwischt?!
Der Grund meines Beitrages, ich habe schon Tage bei google gesucht, 
leider nichts passendes gefunden. Darum möchte ich mich mit meinem 
Problem mal an Euch wenden, vielleicht kann mir ja hier einer helfen 
bzw. sagen "kann man machen" oder "lass es lieber".

Und zwar repariere ich in meiner Freizeit Motoren von Zweirädern als 
Hobby. Da es in der Zwischenzeit schon einige sind, habe ich mir einen 
Teststand gebaut, wo ich den Motor einfach einspannen kann und los 
gehts. Da spare ich mir die ganze Sache mit dem Ein und Ausbau am 
Fahrzeug.
Bis jetzt hatte ich einen KOSO Digital Tachometer + Drezahlmesser 
verbaut und konnte da die Werte ablesen. Der Koso Tacho bekommt sein 
Signal von einem Reed-Kontakt ("Gegenstück" ist ein Magnet an der 
Felge"), der Drehzahlmesser von der Nummer 15 Zündspule.

Nun wollte ich praktisch, die Werte, die mir das Tachometer und der 
Drehzahlmesser liefert am PC angezeigt bekommen.

Darum meine Frage, ob Jemands sowas schon mal gebaut hat, wenn nicht ob 
es Sinn macht und wie der Aufwand ist? Viell. gibts sowas ja auch 
schon???

MfG

von Lehrmann M. (ubimbo)


Lesenswert?

Hallo,

also sehr schwer ist das nicht. Ist sehr gut in wenig Zeit zu machen.

Wenn du wirklich nur sehr sehr wenig Komfort willst und es einfach sein 
soll, so kann ich dir nur Quickbasic empfehlne:
http://franksteinberg.de/progss.htm
http://franksteinberg.de/#Messen
Einfach den Reedkontakt auf die Parallel-Schnittstelle legen und fertig.
DAS IST ALLERDINGS DIE DIRY-METHODE. Deine Programme laufen dann auf 
DOS!
Leider auch nicht sehr gut von der Genauigkeit her. Wurde früher oft für 
Carrera Bahnen zur Zeitmessung genutzt. Ist sehr unschön und creepy ...

Die bessere Alternative wäre es ein Interface zu machen, welches mit 
einem kleinen Microcontroller den Reedtaster ausließt und dann per RS232 
/ USB das ganze an den Computer weitergibt. Dies ist sowohl von der 
Genaugikeit als auch der "Eleganz" der Methode deutlich besser.
Allerdings bedarf diese Methode ein bisschen Einarbeitungszeit:
http://www.mikrocontroller.net/articles/AVR-Tutorial
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Wenn du diese Tutorials durchgemacht hast dann ist diese Projekt "im 
Schlaf" zu erledigen.

Die Softwareauslesung würde ich dann in VB.net oder VC++ vorschlagen, da 
der serielle / USB-Port mit einfachsten Mitteln einzubauen ist. Da kann 
man sich dann jedes belibige Programm zusammenbauen (mit Datenbank, 
Diagrammen, und was dir sonstnoch einfällt.) Mit USB ist das ganze dann 
auch sehr zukunftsträchtig.

Ich würde dir definitiv die 2. Methode empfehlen. Wenn du keine Lust 
hast dich zeitintensiv mit Microcontrollern zu befassen:
Conrad, Best.-Nr.: 191003
Hier der Link dazu:
http://www.conrad.de/ce/de/product/191003/USB-EXPERIMENT-INTERFACE-BOARD-BAUSATZ/2408035;jsessionid=C6C9B4EF1A1BF181CB0D180961C009A2.ASTPCCP2

Diese Modul kannst du entsprechend ansteuern und erspart die den 
kompletten Selbstbau. Ist dann genauso gut wie der Selbstbau. Nachteil 
ist der Preis von 32€ incl. Versand

Zur Verbindung von Reedschalter und dem Interface. Du brauchst noch +5V 
Hilfsspannung (Steckernetzeil oder sowas)(+5V / GND kommen da raus)


                          +5V
                           |
Eingang Interface|------------|Reedschalter|---|10kOhm|----- GND (Masse)

Der Widerstand 10kOhm ist ein sog. Pulldown Widerstand. Der Wert sollte 
ermittelt werden (experimentell). 10k würde ich jetzt einfach aus dem 
Bauch heraus als richtig empfinden.


Beachte bitte, dass die Logik dann invertiert ist! Ist der Reedschalter 
geschlossen, so liegt am Eingang 0 an, ist er offen liegt 1 an!

Für die Software solltest du VB.net Tutorials machen und dir die beim 
Interface mitgelieferte Beispielsoftware für VB.net anschauen.

Viel Erfolg und melde dich bei Fragen =)

von Daniel (Gast)


Lesenswert?

Hallo Michael,

ich möchte auch bei einem Projekt eine Kommunikation via USB vom PC zum 
µC machen.
Über eine grafische Oberfläche sollen Daten an den µC ausgewählt und 
gesendet werden.
Hast du konkrete Links zu entsprechenden Tutorials für VC++ oder VB.net 
die sich mit der Kommunikation über USB beschäftigen?
Was ist vorzuziehen? VC++ oder VB.net, wenn man auch grafische 
Oberflächen möchte? C++ habe ich gute Grundlagen, VB allerdings nicht.

Danke.

Gruß
Daniel

von Lehrmann M. (ubimbo)


Lesenswert?

Servus,


Daniel schrieb:
> Über eine grafische Oberfläche sollen Daten an den µC ausgewählt und
> gesendet werden.

hast du denn in C++ schonmal was mit der Grafischen Oberfläche gemacht ?

Also grundsätzlich ist von den Möglichkeiten VB.net und VC++ gleich. 
Wichtig ist halt die Programmierumgebung von Microsoft.
In VB.net kann man sich quasi alles Zusammenklicken ...
Was für Daten möchtest du denn senden, dann kann ich dir ein bisschen 
helfen!

Daniel schrieb:
> Über eine grafische Oberfläche sollen Daten an den µC ausgewählt und
> gesendet werden.

Das ist kein Problem

Daniel schrieb:
> Hast du konkrete Links zu entsprechenden Tutorials für VC++ oder VB.net
> die sich mit der Kommunikation über USB beschäftigen?

Also grundsätzlich erzeugt die USB Bridge (der USB Treiberbaustein der 
an den µC via UART kommt) eine sog. virtuelle Schnittstelle (z.B. COM8) 
Das kann man im Gerätemanager unter COM-Schnittstellen nachschauen.

Tutorials gibt's èn masse:

http://www.codeworks.it/net/VBNetRs232.htm

z.B.

ansonsten habe ich mir das aus verschiedenen Tutorials zusammengesucht:
Google: vb.net serial port

Ich kann's dir aber grob hier reinposten wenn du's nicht schaffst.

Ansonsten:
http://www.devx.com/dotnet/Article/31001

und von da ist's auf den folgenden Seiten sehr gut beschrieben.

Wenn du Hilfe brauchst, dann lass nen Schrei.

Darf ich mal so neugirig sein und nachfragen mit welcher Hardware du das 
machen möchtest? ATMEL/PIC und dann via FTDI oder wie hattest du dir das 
Interfacing vorgestellt?


Gruß

von Karl Hübner (Gast)


Lesenswert?

Hallo nochmals ;)

erstmals ein großes DANKE an "Lehrmann Michael".
Der Beitrag ist wirklich sehr gut! Auch schön mit Links etc. so müsste 
das immer sein.

Im Übrigen habe ich mir alle Links / Anleitungen durchgelesen.
Ich hätte vielleicht vorher erwähnen sollen, das ich nicht so der 
Elektronik-Profi bin, Elko tauschen, Löten oder einen Transistor als 
Relais einsetzten bringe ich auch noch. Dann hört es aber auch schon 
auf, leider.
Darum verstehe ich auch nur "Bahnhof" wenn ich mir die Sachen so 
durchlese :( Um ehrlich zu sein, ich habe mir das alles etwas einfacher 
vorgestellt, sicher mag es für viele User hier ein Kinderspiel sein...

Nun weiß ich nicht, was ich mache, ob ich es mal mit dem Conrad Teil 
probiere, oder nicht. Durch die Anleitungen ist meine Motivation etwas 
verflogen... :/ Da ich denke, ich bekomme das eh nicht auf die Reihe...

MfG

von Guido Körber (Gast)


Lesenswert?

Nimm einen IO-Warrior24, der hat zwei Capture Timer mit 4µs Auflösung, 
damit lässt sich prima die Zeit zwischen zwei Betätigungen des Kontaktes 
messen. Damit ist dann die Problematik USB Anschluss erledigt.

von Lehrmann M. (ubimbo)


Lesenswert?

Karl Hübner schrieb:
> Im Übrigen habe ich mir alle Links / Anleitungen durchgelesen.
> Ich hätte vielleicht vorher erwähnen sollen, das ich nicht so der
> Elektronik-Profi bin, Elko tauschen, Löten oder einen Transistor als
> Relais einsetzten bringe ich auch noch. Dann hört es aber auch schon
> auf, leider.
> Darum verstehe ich auch nur "Bahnhof" wenn ich mir die Sachen so
> durchlese :( Um ehrlich zu sein, ich habe mir das alles etwas einfacher
> vorgestellt, sicher mag es für viele User hier ein Kinderspiel sein...

Wenn du mir noch verrätst wo es bei dir hängt, dann kann ich dir auch 
explizit helfen.

Angesichts dessen, dass du noch nicht so viel Erfahrung im Bereich 
Microcontroller hast würde ich dir also zu dem USB Board von Conrad bzw. 
dem IO-Warrior24
http://www.codemercs.com/index.php?id=79&L=0
raten. Beide Boards können so Pi-mal-Daumen das gleiche.

Prinzipiell dürfte der IO-Warrior sicherlich die besser aber teurere 
Lösung sein.

Im Grunde ist der Anschluss des Reedschalters an das Board genau das 
gleiche wie ich es dir bereits beschrieben habe. Wenn du hierzu noch 
Fragen hast, dann bitte zögere nicht ...


Guido Körber schrieb:
> Nimm einen IO-Warrior24, der hat zwei Capture Timer mit 4µs Auflösung,
> damit lässt sich prima die Zeit zwischen zwei Betätigungen des Kontaktes
> messen. Damit ist dann die Problematik USB Anschluss erledigt.

Ich will mal für dich übersetzten und korrigieren was der gute Mann da 
erzählt.
Ein sog. Capture-Modul dient dazu z.B. Steigende Flanken (Reedschalter 
wird geschlossen) oder fallende Flanken (Reedschalter öffnet) oder 
sonstige Ereignisse mit sich logisch änderndem Pegel zu erkennen.
Ein sog. Timer ist ein Zähler der den ganzen lieben langen Tag nichts 
anderes tut als eine Variable ( Zahl ) in bestimmten Zeitabständen zu 
erhöhen. Ganz grob gesagt kombiniert man dann Timer und Capture Modul 
folgender Weise:

Timer:0
zähle los ...
Capturemodul meldet steigende Flanke: aha der Timer steht bei 4024 - 
merken wir uns
zähle weiter ...
Capturemodul meldet steigende Flanke: aha der Timer steht bei 4081

dann errechnen wir: 4081-4024=57

Nachdem wir wissen wielange der Timer braucht um sich um eines zu 
erhöhen können wir errechnen wieviel Zeit vergangen ist um von 4024 bis 
4081 vergangen ist (Die Differenz ist die Zeit in der der Reedschalter 2 
mal geschlossen wurde - das entspricht der Zeit einer kompletten 
Umdrehung). Daraus können wir dann die Drehzahl, etc errechnen.

Ich muss dich allerdings waren: Was ich dir da geschrieben habe ist ein 
Grundablauf. Doch wie immer steckt der Teufel im Detail.
Ein bisschen programmieren musst du aber irgendwie auch noch lernen. 
Schließlich muss man auch noch die Software für den Computer schreiben.

Was auch immer für Fragen du noch hast - einfach stellen =)

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.