Moin ich möchte gerne die Drehzahl meines Modellmotors (2,65ccm, bis zu 35.000 RPM, sollte aber wenn möglich bis 40k messen können) messen und das Ergebnis mit dem RPI weiterverarbeiten (soll insgesamt ein Teil einer etwas komplexeren Steuerung werden, wobei die Motordrehzahl selber nicht zum steuern genutzt werden soll, sondern rein als Info für den Fahrer mitgemessen werden soll. Der einzige Punkt, an dem man wirklich die Motordrehzahl messen könnte und der im eingebautem Zustand halbwegs zugänglich ist, ist die Schwungscheibe, dies ist eine Metallscheibe mit geriffeltem Rand. Meine Idee wäre, an den geriffelten Rand mit einem Edding einen schwarzen Strich(auf die ansonsten silberne Scheibe) zu machen und die Stelle mit einer Reflex Lichtschranke zu "überwachen" Ähnlich wie das hier gemacht wurde: http://www.rc-modellbau-schiffe.de/wbb2/thread_8312_Drehzahlmesser-selbst-gebaut.html Grundsätzlich sollte das ja funktionieren oder könnte es da wegen der geriffelten Oberfläche Probleme geben? Nun ist aber mein weitaus größeres Problem wie bekomme ich das Signal nun am geschicktesten (und mit so wenig Bauteilen wie möglich) in den RPI ^^ Problem ist, auf dem Auto ist grad so Platz für den RPI, massig Platz ist für Zusatzschaltung nicht. Auf Dauer wird das Auto wohl oder Übel eine neue Grundplatte erhalten ^^ lg Chris
Hallo Chris, Zitat Radio Eriwan "prinzipiell JA"...... Eine emorme Steigerung der Zuverlössigkeit würdest Du erreichen, wenn Du eine ganze Hälfte des Rades schwärzen würdest... Oder jeweils 2mal ein Viertel oder noch enger....zur besseren Auflösung. Als Sender hab ich in ähnlichem Ptrojekt (Tacho für ne Walze) eine Laserdiode mit Kollimator verwendet. Dieser strahlt bei Dir das Rad kontinuierlich an. Als Empfänger der Reflexion kannst dann eine Photodiode ( z.b. PD333) http://www.everlight.com/datasheets/PD333-3C-H0-L2_datasheet.pdf verwenden. Die Signalaufbereitung krixt sicher selber hin. Namasté Matthias
40000 rpm sind gerade mal 666 Impulse pro Sekunde, also Kinderkacke für den RPi. Aber du musst Störungen fernhalten, Riffel könnten daraus wieder 400000 Impulse machen. Entweder dein schwarz ist so gut, dass die silbrigen Riffel nicht stören, oder das Phototransistorsignal wird gefiltert so dass er nur auf den breiten schwarzen Streifen anspricht, der muss mindestens 20 mal breiter als die Riffel sein, damit due nicht im Leerlauf zu Streifen werden. So ein Filter heisst Bandpass und man baut ihn mit einem OpAmp auf.
hm ok die Riffel könnten in der Tat zu größeren Problemen führen als gedacht, außerdem fürchte ich ein Problem bei zu hohem Lichteinfluss in etwa draußen in der Sonne, deswegen ist mir gerade die Idee gekommen in die Schwungscheibe einen Magneten einzulassen und an die Schwungscheibe einen Hallsensor zu setzen. Ich denke da an den H501, der schaltet auf High wenn ein südpol vorbeikommt. Das könnte man wunderbar mit einem Interruptpin lösen, wenn der RPI einen hätte :( in einer Endlosschleife immer wieder den Status des Pins abzufragen fällt allein schon aus dem Grund flach, das der RPi später genug zu tun hat. Gibt es IC's, die solche impulse zählen? also praktisch nen IC der an die Signalleitung kommt, nen Zähler um eins erhöht sobald der Eingang high wird und der RPI kann dann jede Sekunde, alle zwei Sekunden oder so den Zählerstand auslesen und resetten und aus dem wert dann die Drehzahl berechnen? Ich finde grad mit verschiedensten Suchbegriffen nichts was mir da weiterhilft :( lg Chris
Hi, meinst du einen Zähler? Oder halt jk-FF kaskadieren, also J und K = 1 und Q0 auf clock1, Q1 auf clock2 etc. Müsste ja mit 666 Hz noch laufen. vll. noch rc Glied abstimmen, dass nach jeder Flanke ein Ready Signal erzeugt. Dann mit 10 oder 11 Bit parallel einlesen (oder in PISO mit latch und dann mit dem SPI einlesen). MfG shee2e
:
Bearbeitet durch User
Das könnte man auch mit einem kleinen uC lösen. Der hat Zähler und SPI integriert. Der PIC12F1840 z.B. hat SPI, 16bit Timer und Input Capture im DIL/SOIC-8
:
Bearbeitet durch User
Ach, stimmt, der könnte wahrscheinlich auch gleich die Drehzahl bestimmen. Also µC der Wahl nehmen und ihn machen lassen. Aber bitte beachten minimale Zeitliche Auflösung des Drehzahlsignals ist bei der Abtastung halt proportional zu Impulsen/s. Heist wenn der Motor (ja ich weiß unrealistisch) 1 U/s du nur einmal die Drehzahl bestimmen kannst. (vorausgesetzt gleichförmige Bewegung) MfG shee2e
Wäre es bei so kleinen Frequenzen nicht genauer, wenn man mit dem Input Capture die Periodendauer misst? Hier hat sich jemand damit beschäftigt: http://www.sprut.de/electronic/pic/projekte/frequenz/freq_uni_628.htm
Hier in der Codesammlung: Beitrag "einfache Drehzahlmessung mit ATmega88" Beitrag "Frequenz, Drehzahl, 4x7-Segment LED, Multiplex-Betrieb" Beitrag "Frequenz / Drehzahl, 4-stell. 7-Segm.-LCD, ATtiny45"
Optische Erfassung bei Modellmotoren die immer mehr oder weniger sauen, wird schwierig sein.
Die Frage ob man die Zeit zwischen 2 Impulsen bestimmt oder die Anzahl der Impulse zählt kann man nicht eindeutig beantworten. Je nach Frequenz hat das eine oder das andere Verfahren Vorteile bezüglich der Genauigkeit. Ich verwende deswegen am liebsten eine Kombination aus beiden Verfahren: Es wird eine Messzeit definiert, hier mit T_Mess bezeichnet. Die Messung wird gestartet, und die laufende Zeit ist t=0. Die Messung läuft grundsätzlich so lange, bis t >= T_Mess ist. 1.Sobald der erste Impuls (1. steigende Flanke) kommt, wird die aktuelle Zeit in den Zeitstempel t_1 geschrieben. 2.Beim nächsten Impuls (2. steigende Flanke), wird der aktuelle Zeitstempel in t_flast geschrieben. Der Impulszähler n (zum Start der Messung bei 0) wird um 1 inkrementiert. 3. Bei jedem nächsten Impuls wird Schritt 2 ausgeführt: n wird jedes mal inkrementiert, und der Zeitstempel t_flast gespeichert. Sobald die Messung beendet wird, also t > T_Mess, können die Auswertung begonnen werden: Wenn n = 0, dann Frequenz nicht messbar, also f < 1/T_mess Wenn n > 0, dann gilt: Frequenz f = n/(t_flast-t_f1) Wie man an der letzten Zeile sehen kann, geht für extrem hohe Frequenzen t_f1 gegen 0 (da der erste Impuls sehr schnell reinkommt), und t_flast geht gegen T_Mess: Das Verfahren konvergiert also gegen die klassische Impulszählung. Für sehr kleine n (das kleinste ist logischerweise 1), ist das Verfahren eine ganz klassische Messung der Periodendauer. Wie findet ihr das Verfahren? Machen das eigentlich viele so, also ist das "Allgemeinwissen"? Grüße, Stefan
Ok ich hab jetzt eine Lösung gefunden die denke ich recht gut funktioniert. Und zwar nutze ich jetzt nen Hallsensor, der zwei mal pro umdrehung (zwei magnete) schaltet nach der ersten hälfte auf high und bei der zweiten hälfte auf low. Nun warte ich bis ich den ersten schaltpunkt hatte, dann warte ich eine umdrehung ab und messe die Zeit. ich hab das bisher nur mit einem akkuschrauber als testmotor gemacht, da kam ich auf 856 1/min das ist denke ich ein recht realistischer Wert. In wie weit die genauigkeit bleibt wenn der RPI noch mehr zu tun hat oder die drehzahlen höher werden weiß ich nicht, das muss ich später testen, notfalls muss da doch noch nen Atmega zwischen der das misst, der kann dann auch gleich die Motortemperatur messen, hab dann wenigsten kurze kabelwege zum sensor ^^ lg Chris
Hier hätte ich etwas für Dich. Ist ein Drehzahlsensor mit Tiny85 der als I2C Slave arbeitet. Das ganze könntest Du bequem am RPI anschliessen und einfach die Drehzahl per I2C abfragen. Das ganze ist für Flugmodelle ausgelegt, um die Drehzahl eines 2-Blatt Propeller zu messen. Der Sensor funktioniert mit einem Fototransistor, möchtest du stattdessen ein Hallsensor verwenden kannst du diesen einfach an PB4 des Tiny85 anschliessen, und somit die ganze Auswertelektronik mit LM358 weglassen.
Danke, also meine Lösung hat wie befürchtet alles andere als gut geklappt, sobald ich nebenher andere Anwendungen auf dem RPI gestartet habe, wurden aus den ca 800 1/min azf einmal 12k oder mal 1-2 1/min. Somit leider unbrauchbar ^^ so ein Attiny ist ja schön klein, das ist da an der stelle gut machbar. kann ich den Attiny mit einem STK200 kmpatiblem Programmierer für den Parallel Port programmieren? lg Chris
spielt keine rolle mit welchem Programmer du den Tiny flasht. Hier hast du noch das fertige Hex-file. Hier ein beispiel in Bascom wie du die Drehzahl per i2c auslesen kannst: I2cstart 'Startkondition I2cwbyte &H30 'sende Slave Adresse I2cwbyte &HA2 'Subadresse Drehzahl I2crepstart 'Startkondition wiederholen I2cwbyte &H31 'sende Slave Adresse +1 für Lesen I2crbyte H_adr , Ack 'lese Wert MSB I2crbyte L_adr , Nack 'lese Wert LSB I2cstop 'Stoppkondition Waitms 10 H_adr und L_adr musst du noch zu einem word zusammen fügen und anschliessende das ganze mit 10 multiplizieren, somit hast du den Drehzahlwert. ACHTUNG -> Pullup Wiederstände (4.3k) nicht vergessen !! Sind im Schaltplan nicht eingezeichnet, da diese bei mir am Master hängen.
Christian schrieb: > sobald ich nebenher andere Anwendungen auf dem RPI gestartet > habe, wurden aus den ca 800 1/min azf einmal 12k oder mal 1-2 1/min Na ja nun, falsch programmiert, die Auswertung hängt nicht ausreichend am Interrupt eines Eingangs.
Ich hätte eine Frage zur obigen Schaltung von Michael: Der LM358 arbeitet hier als Komparator, oder? Ich verstehe aber nicht, wie der in dem Fall funktionieren soll. Man hat doch immer das gleiche Potential an beiden Eingängen, oder? Und welche Rolle spielen hier die beiden Kondensatoren C1 und C2? lg Andi
Hallo Andi Der LM358 ist dazu da, für die automatische Anpassung der Helligkeit. Im Detail kann ich dir das ganze auch nicht erklären, ich habe die Schaltung hier abgeschaut: http://www.sprut.de/electronic/pic/projekte/dehzahl/dreh.htm
Haha genau da hab ich die Schaltung auch zum ersten Mal gesehen ;-) Derjenige hat sich die Schaltung aber auch nur wo ausgeborgt, und bei dieser "Quelle" steht leider auch keine Erklärung dabei. Aber wird die Helligkeit nicht über die Vorwiderstände der Segmente eingestellt? Könnte man auch einfach den internen Pull-up des ATtiny und den Fototransistor als Pull-down nutzen, um die Pulse für den µC Eingang zu bekommen?
Das Prinzip müsste so sein * Der OpAmp ist so verschaltet, dass er eine 'unendlich hohe' Verstärkung hat. Das heisst, sobald der + Eingang nur ein bischen positiver ist, als der - Eingang, geht der Ausgang auf High * Wenn die beiden 40k Widerstände und die beiden Kondensatoren nicht wären, dann wären die beiden Eingänge tatsächlich immer auf gleichem Potential. * Aber: die beiden Widerstände bilden ja zusammen mit den Kondensatoren RC-Glieder. D.h. eine Veränderung der Spannung am Spannungsteiler wird unterschiedlich schnell auf die beiden Eingänge vom OpAmp weitergegeben. Dadurch gibt es aber eine kurze Zeitspanne, in der die beiden Eingänge eben nicht gleiches Potential haben. Der OpAmp 'schaltet' seinen Ausgang entsprechend und man hat einen Puls der zur Auswertung geht.
> internen Pull-up des ATtiny und den Fototransistor als > Pull-down nutzen, um die Pulse für den µC Eingang zu bekommen? Könnte man. Aber. Du hast ja verschärfte Bedingungen am Modellflugplatz. Auf der einen Seite hast du keine gesicherte Lichtquelle hinter dem Propeller, die auf den Phototransistor leuchtet. Je nachdem, wie du den Drehzahlmesser hältst, misst du gegen das Gras, gegen einen Kollegen, gegen den Himmel, etc. etc. Jedesmal wird der Phototransistor anders ausgesteuert und je nachdem hast du dann am Spannungsteiler auch eine andere Grundspannung. Das zweite ist, dass du nicht jede vom Phototranistsor festgestellte Helligkeitsänderung als 'Lichstrahl durch den Propeller unterbrochen' akzeptieren willst. Zieht vor der Sonne eine Wolke vorbei oder geht ein Kollege vorbei, dann zählt das nicht als Unterbrechung. D.h. du willst haben, dass die Heligkeitsänderung schon eine gewissen Mindest'Geschwindigkeit' haben muss. Läuft der Motor nicht und der Drehzahlmesser zeigt dir trotzdem 100U/min an, nur weil sich das Gras im Hintergrund im Wind bewegt und somit die Spannung am Spannungsteiler leicht schwankt, dann ist das nicht sehr zielführend. Die Schaltung macht daher folgendes: Sie geht nicht auf die absolute Helligkeit, sondern auf Veränderungen in der Helligkeit. Und - diese Veränderungen müssen auch noch schnell genug sein. Nur dann generiert sie am Ausgang des OpAmps auch tatsächlich einen Puls.
:
Bearbeitet durch User
Ich hab nochmal drüber nachgedacht, und ganz klar ist es mir immer noch nicht. Angenommen die beiden Eingänge hätten wirklich das gleiche Potential: was macht dann der opv? Der Ausgang kann ja nur V+ oder Gnd annehmen und würde hin- und herspringen, d.h. man hätte kein definiertes Ausgangssignal, oder?
A. Brewner schrieb: > Ich hab nochmal drüber nachgedacht, und ganz klar ist es mir immer noch > nicht. > Angenommen die beiden Eingänge hätten wirklich das gleiche Potential: > was macht dann der opv? Der Ausgang kann ja nur V+ oder Gnd annehmen und > würde hin- und herspringen Genau das ist der Sinn der Sache > d.h. man hätte kein definiertes > Ausgangssignal, oder? Doch. Die Information steckt darin, wie oft der Ausgang des OpAmp pro Sekunde hin und her springt. Jedes mal, wenn das Blatt der Luftschraube vor dem Sensor vorbeirauscht, geht der Ausgang des OpAmp einmal High und wieder Low.
:
Bearbeitet durch User
Wenn du einen Magneten an der Schwungscheibe anbringst achte auf das Auswuchten sons gib's bei 40k nen Lagerschaden ;)
Wenn du von Kubikzentimetern sprichst dann ist das doch ein Verbrennungsmotor? Wie wäre es mit einem Mikrofon daß den Lärm aufnimmt?
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.