Forum: Mikrocontroller und Digitale Elektronik Drehzal vom Auto auf LED's AT89C4051


von g0dl1k3 (Gast)


Lesenswert?

Guten Tag,

ich möchte folgendes Projekt realisieren:
Drehzahl vom Auto (Rechteckpuls Signale an der Zündspule)
mit LED's anzeigen lassen
Also das bei 1000 U/min 1 Led leuchtet bei 2000 eben 2 leuchten
und das eben bis 7000 U/min das heisst 7 LED's
ich hab einen ATMEL AT89C4051 µC.
Hab jetzt das Problem wie ich in Programmieren soll das man die Frequenz 
auswertet und dan die LED weitergibt, hat jemand oder ein fertiges 
Programm
das er mir zu verfügung stellen kann? Wäre sehr Dankbar.

Gruß g0dl!k3 X

von Georg (Gast)


Lesenswert?

Womit willst Du denn den 89C4051 programmieren?

von g0dl!k3 X (Gast)


Lesenswert?

Mit JFE (Jens File Editor)

von Georg (Gast)


Lesenswert?

>Mit JFE (Jens File Editor)

Ich meine nicht die Programmerstellung, sondern das Programmiergerät.
Wie willst Du Dein .bin oder .hex-File in den 89C4051 übertragen?

von g0dl!k3 X (Gast)


Lesenswert?


von Sven P. (Gast)


Lesenswert?

Kämest du auch damit hin?
http://www.digitaler-drehzahlmesser.de/

von Georg (Gast)


Lesenswert?

Galep4, das ist ja purer Luxus :-)

Also dann kann's ja losgehen:

Der 89C4051 hat 2 Timer. Den einen (Timer0) nimmst Du als Zeitmarken-
geber: alle 0,6s läßt Du ihn überlaufen. Das gibt alle 0,6s einen
Interrupt, hier gibst Du Timer1 frei, der dann die ankommenden
Impulse zählt. Du bekommst dann 10 für 1000U/min und entsprechend mehr
für höhere Drehzahlen. Diese Zahl kannst Du dann mit festen Werten 
vergleichen, und entsprechen die LEDs einschalten.

von g0dl!k3 X (Gast)


Lesenswert?

Also den µC Brenn ich im Geschäft deshalb der Galep 4 ;)

Dankeschön für diese Ausführliche Hilfe das ging ja richtig schnell!
werd ich dann mal probieren und bescheid ob das funktioniert hat :)

Dankeschön

@ Sven P.

Genau sowas hab ich gemeint nur halt mit dem µC
Danke auch dafür!

mfg g0dl!k3 X

von g0dl!k3 X (Gast)


Lesenswert?

Guten Abend,

so habs heut versucht zu programmieren, leider fehlgeschlagen schaffe es 
einfach nicht die Frequenz auszuwertet (mit schaltern habe ich es 
geschafft)
kann mir jemand bitte eine lösung zeigen? Wäre sehr Dankbar

MFG

von Tobi W. (todward)


Lesenswert?

Wo lag das Problem?
Es hapert also am Einlesen der Rechteckimpulse! Was heißt du hast es mit 
einem Schalter geschafft?
Ein Programmcode wäre auch nicht verkehrt. wie hast du alles 
angschlossen? womit hast du deine Frequenz erzeugt? Mit welcher 
spannung? hoffentlich nicht höher als 5V (zündspule hat ja mehr...)

Fragen über fragen...

Gruß
Tobi
PS.: Wie wäre es, wenn du das signal nicht an der Zündspule sondern an 
der Lichtmaschine abgreifst? Es gibt da einen extra ausgang (meistens 
mit W beschriften) für.

von g0dl!k3 X (Gast)


Lesenswert?

Also mit den Schaltern hab ich es so sogemacht:
6 Schalter (8-bit System 32,16,8,4,2,1)
10 = 1000 U/min 1x LED
.
.
70 = 7000 U/min 7x LED
Halt die Schalter zusammen gezählt und in Akku geladen
und verglichen und an die LED's ausgegeben

Ja ich greife es an der Zündspule ab (natürlich auf 5V gedrückt und mit 
minimalen Strom damit die Zündung nicht irgendwie beeintrachtig wird)
Was gibt es an der Lichtmaschine für ein Signal? Rechteck?

Programmcode kann ich dir jetzt nicht geben da alles im Geschäft 
gespeichert wird

von Tobi W. (todward)


Lesenswert?

g0dl!k3 X schrieb:
> Was gibt es an der Lichtmaschine für ein Signal? Rechteck?
Ja an der Lichtmaschine ist ein rechteckförmiges Signal (keine ahnung ob 
genau) aber auf jedenfall ändert sich die Frequenz.

g0dl!k3 X schrieb:
> lso mit den Schaltern hab ich es so sogemacht:
> 6 Schalter (8-bit System 32,16,8,4,2,1)
> 10 = 1000 U/min 1x LED
> .
> .
> 70 = 7000 U/min 7x LED
Ist das nicht der falsche ansatz?! Du willst doch eine Frquenzzählen und 
nicht einen Binär wert umwandeln...

so wie georg das schon erkärt hat, du musst einen timer nehmen und einen 
overflow von 0,6s sekunden programmieren. Mit einem 2. timer (den kann 
man auch als counter definieren) zählst du über den dazu passenden 
Timereingang (datenblatt hilft da sicher weiter) die Frequenz. In der 
ISR des 1. Timers liest du den Counterwert aus und übergibst ihn an dein 
Hauptprogramm/Schleife, danach setzt du den Counter wieder auf 0 und das 
ganze spiel geht von vorne los. Die zerlegung auf die einzelnen LEDs 
sollte einfach sein und mit schwell werten zu lösen sein.

Gruß
Tobi

von Peter D. (peda)


Lesenswert?

Du brauchst erstmal was zum Debuggen.
Z.B. schließe ein LCD an oder die UART an einen PC.
Und dann gibst Du dort die Meßwerte von Deiner Drehzahlmessung aus, ob 
die stimmen.


Peter

von g0dl!k3 X (Gast)


Lesenswert?

Guten Abend,

so ich habs jetzt zum teil geschafft, mir fehlt jetzt nur noch wie man 
die Impulse zählt, des muss ja wie ihr gesagt habt auf den Timer 1 
eingang legen.
Kann mir jemand den Programm Code NUR für diesen Teil geben?

Danke im Vorraus

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.