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 ....
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).
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
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
:
Bearbeitet durch User
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?
Anbei die Platine nicht nur in höherer Auflösung sondern auch mit vernünftiger Beleuchtung: https://i.imgur.com/lozgyhu.jpg
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.
:
Bearbeitet durch User
hinz schrieb: > Die internen > Oszillatoren bei den STC Controllern sind aber ziemlich genau. Das heißt, die 10% Abweichung ist super stabil? ;-)
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.
:
Bearbeitet durch User
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.