Forum: Mikrocontroller und Digitale Elektronik Drehzahlmesser


von Maik (Gast)


Lesenswert?

Hallo Leute.

Ich habe vor Jahren schonmal etwas rumgebastelt und bin wieder
eingestiegen.
Jetzt interessiere ich mich für Mikrocontroller.
Hab auch schon etwas mit einem Mega16 auf einem Steckbrett
herumgespielt.
Als Sprache probiere ich Bascom.
Die Grundlegenden Sachen habe ich soweit verstanden und möchte mir ein
kleines Projekt zusammenstellen.

Ich dachte an einen Drehzahlmesser für verschiedene aufgaben.
Eingang,Display (Text-LCD)und einige Tasten habe ich im Griff.


Was ich gerne erfahren möchte ist ob ich mit dem Mega16 und Bascom eine
reelle Chance habe bis ca. 20000 upm zu kommen ?
Oder ist das viel zu hoch gegriffen ?

Maik

von TravelRec. (Gast)


Lesenswert?

Das kommt ganz darauf an, wie viele Impulse pro Umdrehung auflaufen
sollen; desto schneller muß Dein Prozi natürlich aus´m Tee kommen.
Assembler würde ich Dir für zeitkritische Sachen aber trotzdem an´s
Herz legen. Auch wirst Du nicht ohne Interrupts klar kommen. Der
Prozessor selber sollte das aber locker packen. Mit 16Mhz Takt ist der
nämlich ganz schön schnell.

von Peter Dannegger (Gast)


Lesenswert?

Die maximale Zählfrequenz ist Quarz/2.

D.h bei 16MHz Quarz kannst Du bis 8MHz messen (= 480000000UpM).

Bei lahmen 20000UpM mußt Du aufpassen, daß der µC nicht zu laut
schnarcht :-)


Peter

von Ratber (Gast)


Lesenswert?

Ja 20'000 Upm is auch mit Bascom kein Zeitkritisches Problem.

Der M16 ist mit Timern gespick also schnapp dir das Datenblatt und
schau se dir gleich mal an.(Bascom Hilfe zu Timern ebenfalls)
Damit ist das Zählen schnell erledigt.

Der Rest ist dann nur noch Aufbereitung und verschönerung des Gerätes.
Später kannste ja noch diverse Zusatzfunktionen einbauen.

Is ne gute Übung zum lernen und man hat danach was Brauchbares.

von stevko (Gast)


Lesenswert?

@ Peter Dannegger

Könntest Du bitte mal die programmtechnische Vorgehensweise für Quarz/2
erläutern. Meines Wissens braucht ja schon der Sprung in die
Interruptroutine 2Takte und da ist noch nix verarbeitet.
Mich interessiert dies, da ich einige zeitkritische Routinen in meinem
Programm habe.

Gruß
 Stevko

von Michael Wilhelm (Gast)


Lesenswert?

Wenn ein Motor mit 20000 upm dreht, sind das 333 Umdrehungen pro
Sekunde.

Um die Drehzahl kontrollieren und gegebenenfalls nachregeln zu können,
muss der Motor (bzw. eine angeflanschte Elektronik)mindestens 1
Sync-Impuls pro Umdrehung dem Controller liefern. Dazu eignet sich der
Input Capture Pin.

Also, wenn nach 3ms der Puls noch nicht gekommen ist, ist der Motor zu
langsam und kann nachgestellt werden. Wenn aber der Puls vorher kommt,
ist die Drehzahl zu schnell und die Elektronik muss auf die Bremse
treten.

Das ist ein hervorragendes Projekt, um die Timer bzw. deren Funktionen
kennen zu lernen.

MW

von Läubi (Gast)


Lesenswert?

Timer können Extern getaktet werden ohne das ne ISR benötigt wird,
trozdem ist Quarz/2 natürlich der THeoretische Optimalwert.

von Guy (Gast)


Lesenswert?

Hallo,

@Maik
Ich habe auch so einen Drehzahlmesser in Bascom geschrieben. Mit einem
Mega16 mit 8Mhz Takt. Das klappt ohne Problem. Das Problem ist nicht
die Drehzahl mit 20000 upm, sondern eher die unteren Drehzahlen im
Lehrlauf.

Wenn du mit einem Geber arbeitest hast du zum Beispiel bei einem 2T ein
Zylinder Motor bei 20000 upm geteilt durch 60 = 333 Impulse/secunde. Da
hält jeder Controller locker mit.

Es kommt drauf an wie DU deine Drehzahl messen willst. Es gibt zwei
Wege, entweder zählst du die Impulse während einer gewiesenen Zeit,
oder du miste jeweils die Zeit von einer Umdrehung. Ich habe mich für
letzteres entschieden. Weil bei niedriger Drehzahl die erste Lösung
ungenau ist.

Um dir einen Idee zugeben.

1) Auf steigende Flanke warten.
2) Timer auf null setzen.
3) Auf fallende Flanke warten.
4) Wieder auf steigende Flanke warten. (eine Umdrehung fertig).
5) TIMER auslesen.
6) Drehzahl berechnen und anzeigen.
Dieser teil ist nicht Zeit kritisch, selbst wenn ein paar Umdrehungen
verloren gehen, ist das Ergebnis immer noch genau. Weil DU ja auch die
Anzeige nur im ½ Sekundentakt anzeigen kannt
7) wieder auf 1 springen.

Mit einem Frequenzgenerator getestet war das ganz genau.

Mein Problem liegt eher da, wie ich die Impulse in den Controller
bekomme. Ich will das Kontaktlos losen machen. Also die Impulse am
Zündkabel bei der Zündkerze abgreifen.

Da ich mich in Analogelektronik nicht so aus kenne bräuchte ich euren
Rat.
Mit einer Spule und einem 10M Widerstand kann ich die Impulse auf dem
Oszi messen. Es ist eine Wechsleschwingung von +/- 0.5 Volt.

Ich habe jetzt versucht mit einem OP oder Transistor das Signal zu
verstärken. Das Klappt auch so weit aber nur mit einer Spannung von 1
Volt. Also von 0 bis 0.5 Volt eine Pegel von 0 bis 5 Volt zumachen
kriege ich einfach nicht hin. Und auch bei 1 Volt geht der Pegel nicht
auf Ground zurück.

Kurzfassung:

Wie kann ich von 0 bis 0.5 Volt einen Pegel von 0 bis 5 Volt bekommen,
um einen AVR an zu steuern.??

von Ratber (Gast)


Lesenswert?

Aus 0-0.5 0-5V machen ?

Nimm nen Opamp und gib ihm ne Verstärkung von 10.
Soweit die Grundlage.

Beispielschaltungen findest du überall im Web.
Im Wiki müßte auch was drinne sein.

von Ratber (Gast)


Lesenswert?

Ganz vergessen.

Wenne schon dabei bist kannste da auch gleich die Signalformung
erledigen.


Das Thema Abgriff hatten wir aber letztens schonmal.
Such mal ,is noch nicht lange her (2-3 Wochen ?)

von Guy (Gast)


Lesenswert?

Dank für die Antwort,

Ich habe es mit einem LM741 versucht. Aber der reagiert erst bei einem
oder zwei Volt eingang. Entweder mache ich was falsch, oder der OP ist
nicht geeignet. Ich weis es nicht.

Ich habe in letzter Zeit ziemlich viel über Ops gelesen und versucht,
aber irgend wie kriege ich das nicht hin.

von Rahul D. (rahul)


Lesenswert?

Der 741 gehört endgültig verboten!

von Andi K. (Gast)


Lesenswert?

@Guy: Und wenn Du einfach die Basis eines NPN-Transistors an die 0 bis
0,5V dranhängst?
Evtl. mit Basiswiderstand um die 1 KOhm erst mal oder weniger oder auch
keinen da die ja bis 0,7V an der Basis aushalten (BC547).
Am Collector den Geber-Pin des AVR als Input mit internem Pullup und
den Emitter auf GND.

MfG
Andi

von Ratber (Gast)


Lesenswert?

Na na,Verboten ist etwas hart.
Is nur etwas altbacken aber manchmal noch brauchbar.

Natürlich ist bei der Signalverarbeitung per Opamp etwas mehr nötig als
nur nen Wald und wiesen-OP.

Entweder nen Rail2Rail oder mit negativer Spannung.
Ersteres ist aber einfacher und billiger.
RR-OPs kosten ja kaum noch was.

von Rahul D. (rahul)


Lesenswert?

@Ratber:
Kannst du mir noch einen sinnvollen Einsatz dieses OPs verraten (ausser
dessen Ersatz wegen Defekts), den man nicht mit einem moderneren OP
hinbekommt?

von Ratber (Gast)


Lesenswert?

aus dem Stehgreif nix konkretes für den 741.

Für den noch älteren 709 gibt es noch welche.
Und das auch noch aufgrund seiner Einschränkungen gegenüber den
Heutigen Modellen.

Die Modernen sind zwar R2R und Kompensiert bis zum abwinken aber
manchmal braucht man noch die alten.

von Ratber (Gast)


Lesenswert?

Es ist so ähnlich wie mit dem Timer (555).
Der ist auch uralt aber dennoch brauchbar :D

von Rahul D. (rahul)


Lesenswert?

Für den gibt es einfach keinen Ersatz, der ähnlich groß ist.

von Simon K. (simon) Benutzerseite


Lesenswert?


von Ratber (Gast)


Lesenswert?

@Rahul

Es gibt schon alternativen die mehr bieten aber er ist eben nicht tot
zu bekommen weil man soviel damit anstellen kann.

dann noch ne Korrektur:

Auch für nen 741 gibt es ne Spezifische anwendung.

Als zufälligen Oszillator (Verwendungszweck is jetzt
sinnfrei.Meinentwegen für nen brauchbaren Zufallsgenerator.).
Die Schaltung bekommste mit modernen OPs nur schwer hin.

Ja ,verwenden tu ich ihn nu auch nicht mehr.
Warum auch wenn icfh besseres fürs gleiche Geld bekomme ?`:D

von Guy (Gast)


Lesenswert?

Hallo,

Was ihr hier über den 741er schreibt, ist ja auch so ein Problem. Ein
Anfänger der eine Frage stellt, und eine Antwort bekommt, in der Form
nimm doch einen OP. Na gut, Googel, OP suchen, Beispiel Schaltungen mit
OP 471 gefunden, und man glaubte das ist es. Selbst wenn man sich dann
das Datenblatt anschaut, ist man als Anfänger schnell überfordert

Sicher ist es nicht der Sinn eines Forums jedem seine Schaltung auf dem
Silbertablett zu servieren, aber für einen Anfänger ist es so auch
meistens keine Hilfe. Selbst wenn man eine genaue Vorstellung von der
Schaltung hat bleibt immer das Problem welchen Baustein ist dafür
geeignet.

Neulich habe ich einen MAX5154 gesucht. Ich habe das Teil nirgends
gefunden. Nach Zwei Tage suchen, und Datenblätter durchstöbert habe ich
dann einen ähnlichen D/A gefunden. Leider auch nicht aufzutreiben.
Jetzt habe ich zwei von MAXIM als Muster bekommen.

Was ich sagen will, ist dass man sich schon Muhe machen soll sein
Projekt selber zum laufen zubringen, aber das Problem ist aus den
Tausenden Ops und, und, und, den richtigen zu finden. Und da währe es
schon eine Hilfe wenn einer Schreibt, nimm doch den oder den Baustein.
Weil er vielleicht eine ähnliche Schaltung damit aufgebaut hat.

mfg
Guy

von Ratber (Gast)


Lesenswert?

Sicher,da haste Recht aber was macht es denn für einen Sinn "alles"
vorzukauen wenn die Grundlagen nicht sitzen ?

Es ist ja leider so das viele nur sehen das man mit nem Controller alle
machen kann.

Das Digitale klappt da meist nur im Logischen Sinn aber die Analoge
Seite ist schon der erste Stolperstein.
Da werden Blockkondensatoren an Chips und Regler vergessen (oder
ignoriert) und selbsteinfache Transistorstufen stellen ein Problem
dar.

Normalerweise fängt man Diskret an und kommt dann irgendwann zum
Controller selber.

Also von A nach Z über M und nicht auf Z und alles rückwärts bis A
irgendwie nachholen bzw. machen lassen.

so hat man die Leute nur ewig im Forum weil beim nächsten Projekt
wieder die gleichen Fragen auftauchen.

Allein das nutzen der suchfunktionen klappt ja oft schon nicht.

Schau mal wie oft die Frage nach Endstufen aller art kommen.
Dabei steht das meiste schon hier im Forum,im Wiki oder anderswo im
Web.(zb. El.kom.)

Ich helfe auch gerne aber Hintern abwischen is nicht.

von Guy (Gast)


Lesenswert?

Da bin ich ja mit dir einverstanden, ich rege mich auch immer auf wenn
einer fragt wie er einen Transistor anschließen soll. Aber selbst wenn
du von A nach Z gehst hast du immer noch das Problem, dass du bei Z
nicht weist welchen Baustein für deine Schaltung geeignet ist.

Als Beispiel: ich habe vor vielen Jahren, mal eine Stoppuhr mit RS232
gebaut. Alles ohne Controller Zu dieser Zeit waren Controller noch eine
Seltenheit, ob so was wie ein Max232 über haut aufzutreiben war weis ich
nicht mehr. Das Ganze war mit herkömmlichen Bausteine realisiert.
Schieberegister, Zähler und so weiter.

Wenn ich das Heute machen würde, würde ich in einem Forum Fragen "wie
kann ich am besten eine RS232 realisieren". Wenn dann einer mir
schreibt, nimm doch einfach einen Pegelwandler ist mir nicht geholfen.
Wenn er aber schreibt nimm den MAX232 (weil er schon öfter den Baustein
benutzt hat)dann ist mir eher geholfen. Gut heute würde ich auch mit
"Google" "Pegelwandler" auf den MAX232 stoßen.

Ich will nicht sagen, dass der, der da eine Anwort gibt, für den andren
Stunden lang die Bauteile suchen soll, sondern wenn man vielleicht schon
mal was Ähnliches gemacht hat, einfach den Baustein dazu schreibt.

Ich hoffe, dass du das auch nicht als Vorwurf aufgefaßt hast. Es war
eher als Anregung gedacht.

von Ratber (Gast)


Lesenswert?

Nö,hab ich nicht.

Es geht mir nur darum das der Einstig in die Elektronik über den
Controller eigentlich der schlechte weg ist.

Oder mal in anderen Farben:

Es ist irgendwie als ob jemand erstmal Formel 1 fährt um dann
irgendwann mal den Führerschein zu machen um überall im Weltweiten
Verkehr fahren und eventuell mal was anderes als den F1-Boliden steuern
zu können.
Dabei ergibt sich nur das Problem das nach dem F1-Flitzzer jedes andere
Fahrzeug und vorallendingen die nötige Theorie trist und fad erscheint.
Wer hat dann schon lust sowas zu lernen ?


Ein Controller alleine ist im wesentlichen rein Digital aber alles
drumrum ist Analog also wäre es Sinvoller die Grundlagen zu lernen denn
die braucht man überall.
Das fängt ja bei der Energieversorgung an die sich ja nun überhaupt
nicht Digital verhält :D :D

Ok,back 2 Topic

von Ratber (Gast)


Lesenswert?

Nachtrag: (Man wird vergesslich)

Was ich sagen wollte hab ich wiedreinmal vergessen.


Ich hab mir früh angewöhnt erstmal die Suchfunktionen zum glühen zu
bringen bevor ich frage.

Zu 99.9% sind die Problemchen dann auch schon da gewesen und es stehen
Lösungen bzw. Lösungsansätze parat.

Es ist natürlich sehr bequem einfach mal eben in ein Forum einzufallen
und sich das Mindgerecht machen zu lassen.
Da bin ich allerdings kein Freund von.

In meinem Betrieb kommen ab und an die Damen und wollen eine falsch
gesetzte Niete entfernt haben damit se den Stecker neu machen können.

Den Kavalier spiele ich da nur selten und zeige ihnen lieber wie sie
das an der speziell dafür gebauten Vorrichtung selber machen können.
Der effekt ist das sie dann weniger rennen müssen (bin ja nicht immer
da) und sie sicherer im Umgang mit Fehlern werden die sich nie
vermeiden lassen.


So,Fertig !
Abendessen :D

von Bernhard S. (bernhard)


Lesenswert?

Ich gebe Euch Recht, dass nicht die hohen Drehzahlen das Problem sind,
sondern die niedrigen.

Hatte mich vor einigen Tagen auch mit der Frequenzmessung beschäftigt,
wollte mich an einen Frequenzzähler erfreuen, der einige MHz
verarbeiten kann.

Zuerst entwickelte ich mir eine Software per Interrupt.
Musste aber sehr schnell feststellen, dass die Interrupt-Routine zu
viele Takte benötigte (ca. 10 bis 20).

Die Lösung war, einen Timer von aussen takten:

http://www.mikrocontroller.net/forum/read-4-230466.html

Ich denke, dass bei Deinem Projekt, die Messung der Zeit
(Periodendauer)die sinnvollste Methode ist.

Denn bei 500Upm ergeben sich gerade mal 8,33 Empulse/s am Eingang.
Wäre also bei einer kurzen Messzeit (1s) ziemlich ungenau.

Ein kleiner Tipp, man könnte die Eingangsimpulse durch einen separaten
2/1 Teiler vorteilen, damit auch sehr kürze Eingangsimpulse (z.B.
Tastverhältnis 100/1) an Deiner Schaltung sicher vom µC verarbeitet
werden können.

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.