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.
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.
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 ....
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.
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.
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.
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.
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).
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
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.
> 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
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?
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?
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)
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.
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?
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?
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.
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?
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.
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.
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.
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.
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.
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.
@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.
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.
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?
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.
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
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
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.
:-)
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.
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.
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.
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.
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.
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.