Forum: Mikrocontroller und Digitale Elektronik Drehzahlmesser korrekt?


von Jonathan K. (burgerohnealles)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mir vor ein paar Tagen nen DZM aus nem Arduino, nem Optokoppler 
und ein paar anderen Teilen gebaut. Bei meinem Roller (50ccm, 
entdrosselt, sonst nichts getuned) zeigt dieser aber 12000 RPM an. Das 
sieht mir ein bisschen viel aus, vllt stimmt auch was mit meinem Roller 
nicht.

Na aber auf jeden Fall möchte ich wissen, ob das jetzt an meinem DZM 
oder an meinem Roller liegt. Schaltplan und SourceCode ist im Anhang 
(hab den OK, den ich hab net gefunden, auch keinen mit ähnlichen Pins, 
hab aber Kollektor und Emitter drangeschrieben, der in der Mitte bleibt 
frei (gibts bei meinem OK net)).

Was sagt ihr zu dem Code und gibts ne bessere Möglichkeit, als das über 
das PickUp-Signal zu messen (vllt so: 
Beitrag "Re: Drehzahlmesser 4 mal 7-segment mit 90S2313" ?)

Danke schon mal im Voraus
burgerohnealles

: Bearbeitet durch User
von Jonathan K. (burgerohnealles)


Lesenswert?

Kann keiner helfen?

von Karl H. (kbuchegg)


Lesenswert?

Das hier
1
ISR (INT0_vect) {
2
  /*
3
  uint8_t i;
4
  for (i=0; i<rpm_size; i++)
5
    rotations[i]++;
6
  // */
7
8
  rotations++;
9
}
10
11
12
//
13
ISR (TIMER0_COMPA_vect) {
14
  cli();
15
  if (++cnt == 1000) {
16
    rpm = rotations*60;
17
    rotations = 0;

ist dein Messwert-Aufnehmer-Code.

Wenn die Anzahl in 'rotations' nicht stimmt, dann ist entweder
* der Wert in F_CPU falsch, bzw. den µC läuft nicht mit
1
F_CPU = 16000000
so wie es im makefile steht
* die Berechnung zur Zeitbasis ist falsch
* oder das Signal prellt wie verrückt
* der Pickup liefert mehr als 1 Puls pro Umdrehung

Ich hab deine Berechnungen nicht nachgerechnet aber ich hab mir mal ein 
paar Oszi-Bilder zum Thema "Motorrad-Pickup" bei Google angesehen. 
Nachdem ich die gesehen habe, halte ich die 3.te Variante für die 
wahrscheinlichste.

Aber das kannst du zb dadurch testen, indem du anstelle des 
Pickup-Signals einfach mein ein bekanntes, sauberes Signal mit 
definierter Frequenz einspeist und nachsiehst, ob die daraus errechneten 
"Drehzahlen" plausibel sind.

: Bearbeitet durch User
von Jonathan K. (burgerohnealles)


Lesenswert?

Also F_CPU ist richtig, mein uC läuft mit 16Mhz und die Fuses sind auch 
korrekt.

Zur 3. Variante: Das PickUp-Signal liefert immer pro Umdrehung genau 
zwei Pulse. Das eine ist aber negativ. Mich interessiert aber nur das 
Positive. Aber dadurch, dass ich einen Optokoppler verwende, wird 
sowieso nur der positive Impuls erkannt. Also kann es nur noch sein, 
dass das Signal prellt oder dass mein Roller einfach bei MaxSpeed 12000 
RPM hat?

von Karl H. (kbuchegg)


Lesenswert?

Jonathan K. schrieb:

> sowieso nur der positive Impuls erkannt. Also kann es nur noch sein,
> dass das Signal prellt oder dass mein Roller einfach bei MaxSpeed 12000
> RPM hat?

Ich denke 12-tausend U/min können wir getrost ausschliessen. So hoch 
drehen ungefähr normale 10ccm Modellbaumotoren im Maximum und die 
wimmern dann schon so, dass man das auf Dauer nicht aushält und Mitleid 
mit dem Motor hat. 6 bis 7-tausend im Maximum würde ich als plausibel 
ansehen.

Aber: probiers halt aus.
Du hast einen µC, du bist dir sicher, dass deine Takteinstellung stimmt. 
Erzeug dir mittels delays eine entsprechende Frequenz an einem Pin und 
sieh nach, ob du die mit deinem µC wieder korrekt messen kannst. Dann 
weißt du zumindest, dass deine Auswertung korrekt ist.

: Bearbeitet durch User
von Jonathan K. (burgerohnealles)


Lesenswert?

Karl Heinz schrieb:
> 6 bis 7-tausend im Maximum würde ich als plausibel ansehen.

Ahh, laut 
http://www.scootertuningpage24.de/2-takt-technik/minarelli-nachbauten-sonstige-2-takt-roller/7506-ab-welcher-drehzahl-wirds-kritisch/ 
gehts auch bis über 10000 RPM. Mir scheints trotzdem ziemlich hoch, und 
wollte einfach wissen, ob mein DZM korrekt ist. Also gibts sonst noch ne 
Fehlerquelle?

von Helge A. (besupreme)


Lesenswert?

Leg eine 50Hz Wechselspannung an den DZM an ausm Steckertrafo. Wenns 
3600upm anzeigt, ist dein dzm auf 1 Impuls pro Umdrehung eingestellt.

Übrigens, ich hoffe du hast den Vorwiderstand vorm Optokoppler nur 
vergessen einzuzeichnen..??

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Karl Heinz schrieb:
> Ich denke 12-tausend U/min können wir getrost ausschliessen. So hoch
> drehen ungefähr normale 10ccm Modellbaumotoren im Maximum und die
> wimmern dann schon so, dass man das auf Dauer nicht aushält und Mitleid
> mit dem Motor hat. 6 bis 7-tausend im Maximum würde ich als plausibel
> ansehen.

Guzzi: max 8000
Jaosen 4-Zylinder: locker über 12.000
Formel1: über 19.000

Ich tippe auch auf einen Fehler ;)

von Jonathan K. (burgerohnealles)


Lesenswert?

Helge A. schrieb:
> Übrigens, ich hoffe du hast den Vorwiderstand vorm Optokoppler nur
> vergessen einzuzeichnen..??

Ups ja natürlich gehört da ein Widerstand hin.

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.