Forum: Mikrocontroller und Digitale Elektronik Drehzahlmesser ansteuern


von Yannik (Gast)


Lesenswert?

Moin,

ich habe mir einen solchen Drehzahlmesser gekauft, um die Drehzahl einer 
Tischbohrmaschine mittels CNY70 Reflexsensor zu messen.

Der Drehzahlmesser hat 3 Eingänge: 12V, GND, Signal-In. Wie steuere den 
jetzt an?

Wenn ich testweise z.B. so ein Signal mit einem esp8266 erzeuge und den 
GPIO an den Signal-In des Drehzahlmessers lege, kommt nur Mist heraus.

---------
LED_PIN = 0
US_TO_MS = 1000

gpio.mode(LED_PIN, gpio.OUTPUT)

while true do
  gpio.write(LED_PIN, gpio.HIGH)
  tmr.delay(1 * US_TO_MS)
  gpio.write(LED_PIN, gpio.LOW)
  tmr.delay(50 * US_TO_MS)
end
-----

Muss an dem Signal-In eine bestimmte Spannung anliegen? Leider gibt es 
zu dem Teil keinerlei Dokumentation.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Yannik schrieb:
> Leider gibt es
> zu dem Teil keinerlei Dokumentation.

Aber vllt. eine Bezeichnung oder Bezugsquelle? Da steht sicher was 
drauf.

Ich vermute, das der kleine Bursche ein 12V Signal braucht und auf die 
paar Volt vom MC nicht reagiert, weils zu wenig Pegel ist.

von Sowas Aber (Gast)


Lesenswert?

Yannik schrieb:
> ich habe mir einen solchen Drehzahlmesser gekauft

So so, einen solchen, ja dann wissen wir ja Bescheid.

Mehr Informationen brauchen wir nicht ... Moment ....

von Yannik (Gast)


Lesenswert?

Sorry, da sollte natürlich noch der folgende Link hin: 
https://www.aliexpress.com/item/High-Precision-Digital-Frequency-Tachometer-0-56-4-LED-DC-8-15V-Car-Motor-Speed-Meter/32780765647.html

@mschoeldgen: Reagieren tut er schon auf das Signal, nur mit ständig 
wechselnenden Werten zwischen 500 und 900 RPM (bei dem o.g. Signal).

von Yannik (Gast)


Lesenswert?

Hier noch ein Bild der Platine:
https://i.imgur.com/sbnP2Ek.jpg?2

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Yannik schrieb:
> @mschoeldgen: Reagieren tut er schon auf das Signal, nur mit ständig
> wechselnenden Werten zwischen 500 und 900 RPM (bei dem o.g. Signal).

Schön, kann aber trotzdem eben zu wenig Pegel sein. Je nach vorhandenem 
Bastelmaterial bzw. Messgeräten kannst du dir mal entweder einen kleinen 
12V Oszillator basteln (NE555 oder so) oder eben den Funktionsgenerator 
anschliessen.
Oder du machst mal eine Transistorstufe zwischen den ESP und den DZM.
1
+12
2
+--------------------+---------------->
3
                     |
4
                     -
5
                    | | 3,3k-10k
6
                    | |
7
                     -
8
                     +----------------> DZM
9
ESP Signal       B |/ C
10
0---|===|----------|
11
     470-1k        |\
12
GND                  |E
13
---------------------+---------------->
Jeder NPN Kleintransistor, BC547/548, 2SC945, 2SC1815 usw. geht hier.

: Bearbeitet durch User
von Yannik (Gast)


Lesenswert?

Danke, Matthias. Ich bin gerade einen Stück weitergekommen: Ich habe 
einfach mal GND vom ESP8266 und Drehzahlmesser verbunden. Jetzt habe ich 
zumindest eine konsistente Anzeige von 833rpm. Kann das verbinden der 
Masse zu irgendwelchen Problem führen?

Zwischen den 833rpm und dem o.g. Code kann ich allerdings bisher 
wirklich gar keine Relation erkennen. Jemand eine Idee?
Ich hätte jetzt bei 50ms Wartezeit zwischen den Impulsen 60*20=1200 rpm 
erwartet.

von Unkown (Gast)


Lesenswert?

Versuch doch mal das timing deines Codes z.b linear zu ändern. Ändert 
sich die Drehzahl dann entsprechend mit sollte es schonmal kein 
Problemit den fehlenden 12V pegeln sein.

von Harald W. (wilhelms)


Lesenswert?

Yannik schrieb:

> Kann das verbinden der Masse zu irgendwelchen Problem führen?

Ja, mit Masse funktionierts, ohne Masse nicht.
Ich würde vom Verkäufer per email ein Datenblatt anfordern.

von Brummbär (Gast)


Lesenswert?

Yannik schrieb:
> Ich habe einfach mal GND vom ESP8266 und Drehzahlmesser verbunden.

GND ist "immer" zu verbinden - außer es ist zwingend eine 
Potenzialtrennung erforderlich (Trafo  Optokoppler  ADUM).

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Yannik schrieb:
> Ich hätte jetzt bei 50ms Wartezeit zwischen den Impulsen 60*20=1200 rpm
> erwartet.

Die Periodendauer ist aber schon 51ms + Dauer der GPIO Routinen, die wir 
nicht wissen, also unter 19 Hz. Das sind dann weniger als 1140 Pulse pro 
Minute und damit sind wir gar nicht mehr so weit von der Anzeige 
entfernt. Der ESP ist durch seine umfangreiche Software im Hintergrund 
auch nicht exklusiv mit der Schleife beschäftigt, sondern macht noch 
anderen Krams nebenbei. Die Frequenz lässt sich z.B. mit der Soundkarte 
des Rechners messen.

Viel Spass beim Kalibrieren, der Anzeigetext sagt ja, wies geht :-P

: Bearbeitet durch User
von Yannik (Gast)


Lesenswert?

Also, wenn ich mir das Signal des ESP mit dem Oszi anschaue, sehe ich, 
dass mit

while true do
  gpio.write(LED_PIN, gpio.HIGH)
  gpio.write(LED_PIN, gpio.LOW)
  tmr.delay(50 * US_TO_MS)
end

die Frequenz doch sehr nah an den 20Hz ist. Ggf. 1180 rpm statt 1200, 
aber definitiv keine 833. (Tatsächlich waren die 833 schon mit dem o.g. 
Code gemessen). 472us dauert der HIGH.

> Viel Spass beim Kalibrieren, der Anzeigetext sagt ja, wies geht :-P
Meinst du damit diese grandiose Beschreibung?

-----
Tachometer Rate Setting Instructions:
1. Rate range: 1-99(default 01: display value is same with actual value; 
if the rate is 10, display value*10=actual value);
2. When power on, the meter display "0";
3. Press "SET" button, display "1"; press again, display "01"...
4. When display "1", is measuring RPM; press "ADD", from "1" to "2", 
when display "2", is measuring frequency; display "01" is for rate 
setting, short press "ADD" for +1, long press for +10;
5. After setting the values, it will be stored if no operation in 10s, 
return the selected function interface;
6. With 1 decimal point, that is when rotate speed is <1000RPM, the 
rotate speed corrects to 1st digit after the decimal point; no decimal 
point when >1000RPM.
Tips:
User can set the appropriate rate so as to measure frequency, less than 
100KHz (999.9*99=98990.1Hz)
----

Ich verstehe zwar, wie ich zwischen RPM und frequency umschalte und 
diese "Rate" einstelle. Aber wofür steht diese "rate"? Ich verstehe nur 
Bahnhof.

von Blinder mit Kristallkugel (Gast)


Lesenswert?

> Ich verstehe zwar, wie ich zwischen RPM und frequency umschalte und
> diese "Rate" einstelle. Aber wofür steht diese "rate"? Ich verstehe nur
> Bahnhof.

Ev. ein schlecht übersetztes ratio also Puls-Pause-Verhältnis?
Der Bereich wird ja mit 1..99 angegeben, was Prozente sein könnten... 
Was wiedum nicht zum angegeben Umrechnungsfaktor x10 passt... grübel

von Yannik (Gast)


Lesenswert?

Also, ich habe jetzt noch einmal ein bisschen experimentiert:

Mit

while true do
  gpio.write(LED_PIN, gpio.HIGH)
  gpio.write(LED_PIN, gpio.LOW)
  tmr.delay(50 * US_TO_MS)
end

werden die folgenden Werte angezeigt:
10ms (6000 rpm) =>wechselt zwischen 6000 und 6060 rpm
25ms (2400 rpm) =>wechselt zwischen 2521 und 2531 rpm
50ms (1200 rpm) =>1282 rpm
100ms (600 rpm) =>646 rpm
500ms (120 rpm) =>130 rpm
1000ms (60 rpm) =>65 rpm

Die 833rpm kann ich nicht reproduzieren.

Mit

tmr.alarm(0, 5, 1, function ()
    gpio.write(LED_PIN, value and gpio.HIGH or gpio.LOW)
    value = not value
end)


ist die Frequenz/Periode laut Oszi schon recht exakt.

Der Drehzahlmesser zeigt folgendes:

5ms (6000 rpm) => 6521 rpm
25ms (1200 rpm) => wechselt zwischen 1301 und 1304rpm
50ms (600 rpm) => 651rpm
500ms (60 rpm) => 65rpm

Man sieht die Linearität der Messwerte.

Allerdings weiterhin Abweichungen von knapp 10%.

Ich werde mal mit dieser Rate experimentieren.

Gibt es einen technischen Grund, wodurch diese Abweichungen entstehen? 
Was muss da kompensiert werden?

von Yannik (Gast)


Lesenswert?

Okay, die "rate" ist ein Teiler.

Heißt bei 6000 rpm (angezeigt 6521) wird bei rate 2 3260rpm angezeigt, 
bei rate 3 2173rpm uw.

Hilft also leider nicht weiter, mit der 10%-igen Abweichung.

Jemand eine Idee, wie man diese loswerden könnte?

von Sowas Aber (Gast)


Lesenswert?

Yannik schrieb:
> Gibt es einen technischen Grund, wodurch diese Abweichungen entstehen?

Hast du denn schon deinen Pegel angepasst, d.h. dem
Tacho auch wirklich 12V Pulse geliefert?

Kann auch sein dass der Tacho darauf ausgelegt ist, Pulse
mit höheren Spannungen als 12V zu verarbeiten, so wie
sie an der Primärseite einer Zündspule auftreten (nicht
die Kilovolts der Sekundärseite)

von Markus F. (mfro)


Lesenswert?

Yannik schrieb:
> Okay, die "rate" ist ein Teiler.
>
> Heißt bei 6000 rpm (angezeigt 6521) wird bei rate 2 3260rpm angezeigt,
> bei rate 3 2173rpm uw.
>

Das ist wohl (weil das Ding wohl für Verbrennungsmotoren gedacht ist) 
die Anpassung an 2-/4-Takter bzw. 1 - 12 Zylinder.

Zu deinem Problem:

keine Ahnung, ob dir das weiterhilft, aber ausgehend von obigem 
Gedankengang: Zündimpulse von Verbrennungsmotoren haben üblicherweise 
keinen Duty Cycle von 50%, sondern eher etwa 15%. Vielleicht bringt das 
ja das Ding durcheinander.

von Yannik (Gast)


Lesenswert?

Der Pegel ist weiterhin 5Vpp.

Ich hab ja oben ein Bild von der Platine gepostet, hier habt ihr es noch 
einmal in höherer Auflösung: https://i.imgur.com/zzkY7iY.jpg

Die 12V Eingangsspannung werden mittels 78L05 (U2) zu 5V reduziert. 
Damit wird auch der MC betrieben. Der Signal-In geht m.e. auf einen J3Y 
Transistor, welcher einen MC-Eingang schaltet.

Der Transistor sollte doch grundsätzlich bei 5V genau wie bei 12V 
durchschalten?

von Yannik (Gast)


Lesenswert?

Anbei die Platine nicht nur in höherer Auflösung sondern auch mit 
vernünftiger Beleuchtung: https://i.imgur.com/lozgyhu.jpg

von Yannik (Gast)


Lesenswert?

Ich hab jetzt gerad' noch den Eingangspin des Mikrocontrollers 
durchgemessen: Dort liegt eine vernünftige Squarewave mit korrekter 
Frequenz an.

Also, am Pegel kann es doch eigentlich nicht liegen, oder? Was kann 
sonst der Grund sein?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ich seh da auf der 'High Precision' Platine kein einziges 
frequenzbestimmendes Bauteil wie einen Quarz oder zumindest einen 
Resonator. Kann also sein, das der MC mit seinem internen RC Oszillator 
läuft und ein wenig daneben liegt...
Gib ihm mal 12V Pegel, um Probleme damit auszuschliessen.

von Yannik (Gast)


Lesenswert?

Matthias S. schrieb:
> Oder du machst mal eine Transistorstufe zwischen den ESP und den DZM.+12
> +--------------------+---------------->
>                      |
>                      -
>                     | | 3,3k-10k
>                     | |
>                      -
>                      +----------------> DZM
> ESP Signal       B |/ C
> 0---|===|----------|
>      470-1k        |\
> GND                  |E
> ---------------------+---------------->
> Jeder NPN Kleintransistor, BC547/548, 2SC945, 2SC1815 usw. geht hier.

Du führst 12V (über einen 3,3k-10k Widerstand) direkt zum DZM. Welchen 
Sinn soll in diesem Fall der Transistor haben? Oder hast du Collector 
und Emitter in deiner Zeichnung vertauscht?

von m.n. (Gast)


Lesenswert?

Matthias S. schrieb:
> Kann also sein, das der MC mit seinem internen RC Oszillator
> läuft und ein wenig daneben liegt...

Erwärme mal das IC oder gib Kältespray drauf - ggf. auch auf C1 und C2. 
Ändert sich der angezeigte Wert und wenn ja, wie stark?

> Gib ihm mal 12V Pegel, um Probleme damit auszuschliessen.

Ich glaube, der Pegel ist nicht das Problem, wenn intern ein 
ordentliches Rechtecksignal vorhanden ist:

Yannik schrieb:
> Dort liegt eine vernünftige Squarewave mit korrekter
> Frequenz an.

von hinz (Gast)


Lesenswert?

Matthias S. schrieb:
> Kann also sein, das der MC mit seinem internen RC Oszillator
> läuft und ein wenig daneben liegt...

Ist sicher so, die Xtal-Pins sind andersweitig verwendet. Die internen 
Oszillatoren bei den STC Controllern sind aber ziemlich genau.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Yannik schrieb:
> Du führst 12V (über einen 3,3k-10k Widerstand) direkt zum DZM. Welchen
> Sinn soll in diesem Fall der Transistor haben? Oder hast du Collector
> und Emitter in deiner Zeichnung vertauscht?

Wie bitte? Wenn du noch nie einen Pegelwandler/Inverter in 
Emitterschaltung gesehen hast, guckst du Grundlagen. An der Bais wird 
dein ESP Signal eingewspeist, wie ja auch aus der Beschriftung 
ersichtlich ist.

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

hinz schrieb:
> Die internen
> Oszillatoren bei den STC Controllern sind aber ziemlich genau.

Das heißt, die 10% Abweichung ist super stabil? ;-)

von hinz (Gast)


Lesenswert?

m.n. schrieb:
> hinz schrieb:
>> Die internen
>> Oszillatoren bei den STC Controllern sind aber ziemlich genau.
>
> Das heißt, die 10% Abweichung ist super stabil? ;-)

Du darfst ruhig davon ausgehen, dass die 10% Abweichung nicht durch den 
Oszillator verursacht sind.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

hinz schrieb:
> Die internen
> Oszillatoren bei den STC Controllern sind aber ziemlich genau.

Vielleicht sind die Programme der Herren Chinesen dafür nicht so genau. 
'High Precision' ist dann aber ganz schön auf den Putz gehauen.
Aber gut, für die paar Euro fuffzig kann man das auch nicht verlangen.

von m.n. (Gast)


Lesenswert?

hinz schrieb:
> Du darfst ruhig davon ausgehen, dass die 10% Abweichung nicht durch den
> Oszillator verursacht sind.

Das mußt Du mir näher erläutern. Auch mit Deiner Erlaubnis werde ich 
nicht alles glauben.

von Yannik (Gast)


Lesenswert?

@Mathias Sorry, da hab ich Quatsch geschrieben. Deine Zeichnung war 
natürlich richtig. Ich werde das mal probieren, auch wenn das mit dem 
Pegel wohl recht unwahrscheinlich ist.

von hinz (Gast)


Lesenswert?

Matthias S. schrieb:

> Vielleicht sind die Programme der Herren Chinesen dafür nicht so genau.
> 'High Precision' ist dann aber ganz schön auf den Putz gehauen.

Ein jeder Krämer lobt seine Ware.


> Aber gut, für die paar Euro fuffzig kann man das auch nicht verlangen.

Eben.

von Yannik (Gast)


Lesenswert?

Moin,
12V Pegel haben erwartungsgemäß keinen Unterschied gemacht.

Was nun? Versuchen zu reklamieren? Wahrscheinlich erfolglos bei den 
Chinahändlern...

Gibt es noch einen anderen Grund, woran das liegen könnte? Ideen, wie 
ich es fixen kann?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Yannik schrieb:
> Gibt es noch einen anderen Grund, woran das liegen könnte?

Mir fällt keiner ein. Wenn du dir mit deinem Messfrequenzen sicher bist, 
wirds wohl der 'High-Precision-Digital-Frequency-Tachometer' sein, der 
Mist anzeigt.
Ein STM8 Spezi hier wird dir sicher sagen können, ob man den Oszillator 
von aussen trimmen kann, und ich bin so neugierig, das ich glatt an den 
Verbinder fürs UART mal einen Pegelwandler anschliessen würde, um zu 
sehen, wofür die Herren den da vorgesehen haben.

Wenn du nur was funktionierendes suchst, ist es evtl. besser, entweder 
selbst was zu konstruieren, einen Counter mit deutlich sichtbarem Quarz 
zu beschaffen, oder sich im Inland umzusehen.

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Matthias S. schrieb:
> Ein STM8 Spezi hier wird dir sicher sagen können,

Ich habe zwar noch nie einen STM8 in der Hand gehabt, gehe aber davon 
aus, daß auf einem STM8 auch STM8 steht.
Hier steht STC auf dem IC.

Yannik schrieb:
> Ideen, wie
> ich es fixen kann?

Garnicht oder durch permanentes Kopfrechnen ;-)
Drehzahlmessung ist ja nun keine Raketentechnik und wenn Du ein paar 
Euor mehr in die Hand nimmst, kann man sehr genaue Schaltungen 
auf-/nachbauen.
Ich gebe Dir ein paar Beispiele an die Hand: 
http://mino-elektronik.de/7-Segment-Variationen/LCD.htm

von Georg (Gast)


Lesenswert?

Matthias S. schrieb:
> Wenn du dir mit deinem Messfrequenzen sicher bist,
> wirds wohl der 'High-Precision-Digital-Frequency-Tachometer' sein, der
> Mist anzeigt.

Ich habe hier noch eine Küchenwaage aus China rumliegen, die zeigt für 1 
l Wasser 700 g an. Dafür war sie sehr billig.

Georg

von Harald W. (wilhelms)


Lesenswert?

Georg schrieb:

> Ich habe hier noch eine Küchenwaage aus China rumliegen, die zeigt für 1
> l Wasser 700 g an. Dafür war sie sehr billig.

Vielleicht beziehst Du Dein Wasser ja aus einem Leichtwasserreaktor.
:-)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

m.n. schrieb:
>> Ein STM8 Spezi hier wird dir sicher sagen können,
>
> Ich habe zwar noch nie einen STM8 in der Hand gehabt, gehe aber davon
> aus, daß auf einem STM8 auch STM8 steht.
> Hier steht STC auf dem IC.

Oh, du hast einen Tippfehler gefunden - meinen herzlichen Glückwunsch.

von m.n. (Gast)


Lesenswert?

Matthias S. schrieb:
> Oh, du hast einen Tippfehler gefunden - meinen herzlichen Glückwunsch.

Bekomme ich jetzt die große Martinstüte mit Stutenkerl? ;-)

Diese STC15 sind 8051-Derivate. Wenn man den Quellcode des Programmes 
hätte, könnte man sich die Frequenz leicht anpassen. Ohne Quellcode 
müßte man alles neu schreiben.
Vielleicht gibt es eine versteckte Funktion, um den Zähler abzugleichen.

Alternative könnte man auch einen Frequenz/Frequenz-Umsetzer 
vorschalten, der den proportionalen Fehler beseitigt.

von Captain Future (Gast)


Lesenswert?

m.n. schrieb:
> Drehzahlmessung ist ja nun keine Raketentechnik und wenn Du ein paar
> Euor mehr in die Hand nimmst, kann man sehr genaue Schaltungen
> auf-/nachbauen.

Oder einen alten Fahrradcomputer als Drehzahlmesser benutzen. Einfach 
bei Radumfang 1667mm eingeben. Die angezeigte Geschwindigkeit km/h mit 
10 multiplizieren (leichtes Kopfrechnen) dann erhält man die Drehzahl in 
1/min.

von m.n. (Gast)


Lesenswert?

Captain Future schrieb:
> Oder einen alten Fahrradcomputer als Drehzahlmesser benutzen. Einfach
> bei Radumfang 1667mm eingeben.

Hattest Du das mal probiert?
Ich wäre mir nicht sicher, ob der Radumfang (1,666 m, ca. 21") so klein 
einstellbar ist und ob die Eingangsimpulse (100 Hz @ 6000 UPM) noch 
erfaßt werden können.
Zudem würde es mich nicht wundern, wenn eine Tischbohrmaschine 
Drehzahlen >= 10000 UPM schafft.

von Captain Future (Gast)


Lesenswert?

m.n. schrieb:
> Hattest Du das mal probiert?

Ja. Das Ergebnis läuft an der Säulenbohrmaschine meines Vaters. Die 
Drehzahl hört dann allerdings bei ca. 3000 1/min auf (300 km/h). Für die 
meisten Anwendungsfälle reicht das aus.

Die Fahrradtachos lassen sich auch für 12 Zoll Kinderfahrräder 
programmieren.

von m.n. (Gast)


Lesenswert?

Captain Future schrieb:
> Die Drehzahl hört dann allerdings bei ca. 3000 1/min auf (300 km/h).

Nicht schlecht! U.U. könnte man noch einen 10:1 Vorteiler einsetzen ;-)
Ich hatte allerdings schon "Fahrradcomputer", die nur in 0,5" Schritten 
einstellbar waren.

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.