mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Niedrigfrequentes PWM Signal in analoge Spannung wandeln


Autor: Hans-Peter S. (hanspeter_s376)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vorab zu mir. Ich bin Maschinenbauingenieur mit Grundkenntnissen in 
Elektrotechnik und Elektronik, nur damit die Antworten entsprechend 
meiner (vergleichsweise geringen) Fachkenntnis nicht zu chinesisch 
werden.

Alles was ich im Forum über PWM-Analog Wandler gelesen habe bezieht sich 
meist auf hohe Frequenzen und jetzt frage ich mich, ob ich bei niedrigen 
Frequenzen, die trotzdem ein recht genaues analoges Signal liefern soll 
auf irgendetwas aufpassen muss oder die RLC-Glieder irgendwie angepasst 
werden müssen.

Realisieren will ich das nur durch Zusammenlöten von diskreten 
Bauteilen, da ich die Schaltung im Fahrradrahmen verstecken will. 
Platinen udgl. sind da eher unpraktisch. Wenn es natürlich einen 
kompakten IC oder fertige Schaltungen auf Aliexpress gibt, die ich nur 
anpassen muss, dann gerne. Grundsätzlich je kleiner und geringer der 
Aufwand desto besser.

AUFGABE:

Ich möchte ein niederfrequentes Signal (1 bis 8 bzw. 2 bis 15 Hz) in 
eine analoge Spannung Spannung umwandeln. Unter 1 Hz (2Hz) soll die 
Spannung null sein, bei 8 bzw. 15 Hz. soll sie 4V sein, der Puls hat 
eine Amplitude von 4.2V bei 5V Eingangsspannung. Dabei kann sowohl ein 
kurzer Puls mit langen Abständen als auch ein langer Puls mit kurzen 
Abständen auftreten (Drehrichtung). Kommen kurze Pulse, soll die 
Spannung unter 2V bleiben. Dis Ausgangsleistung braucht nicht hoch sein, 
da sie wieder nur einen Hallsensor, simuliert, in dem in 
unterschiedlicher Entfernung ein Magnet sitzt.

ANWENDUNG:

Das Signal ist das eines Pedal Assist Sensors (PAS), das in eine analoge 
Spannung umzuwandeln ist. Ein PAS ist ein Hall-Sensor, an dem Magnete 
auf einem kleinen Rad, das am Tretlager des Fahrrades angebracht ist, 
vorbeilaufen. Aufgrund der Orientierung der Magnete gibt der Hallsensor 
in der einen Richtung ein kurzes Signal mit langen Abständen und in der 
anderen ein langes mit kurzen Abständen aus (zumindest ist es das was 
ich so darüber gelesen habe).

Der Controller des Motors den ich damit starten will, möchte ein 
analoges Signal (zwischen 2-4V je nach gewünschter Unterstützung), das 
bisher von einem Gasgriff kommt. Der Gasgriff ist wieder nur ein 
Hallsensor, je nach Gasgriffstellung nähert oder entfernt sich ein 
Magnet und damit ändert sich die analoge Spannung. Der Motor variiert 
die Leistung zwischen 0 und 500Watt, es kommt also auf eine recht genaue 
Spannung an (-+ 0.04Volt > 10Watt).

Die Frequenz des PAS ist abhängig von der Anzahl der Magnete und 
Trittfrequenz, realistisch ist jedoch eine Startfrequenz, ab der der 
Motor loslegen soll (also 2V anliegen sollen) von ca. 1-2Hz bis maximal 
7.5 bis 15Hz (bei 6 bis 12 Magneten). Ergibt eine Startgeschwindigkeit 
um die 4km/h und eine maximale von ca. 30km/h.

Verständlicherweise soll der Converter nur ein Signal in einer Richtung 
ausgeben, und das andere ignorieren.

Unter 2V reagiert der Motor nicht, über 4V schaltet er ab. Wenn also das 
kürzer gepulste Signal unter 2V bleibt reicht das als Richtungserkennung 
aus.

Jedenfalls aber soll die Schaltung frequenzabhängig sein, d.h. wenn bei 
Stillstand zufällig ein Magnet in der Nähe des Hallsensors ist, sich die 
Spannung daher aber nicht ändert, dann soll die analoge Spannung auf 
null (bleiben) abfallen.

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wäre eine Aufgabe für einen Atiny-Prozessor.

Insgesamt würde eine solche Schaltung sehr träge, eher zu träge 
reagieren, weil die Zeitkonstante ungefähr 2s haben müßte.

Autor: Harald W. (wilhelms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans-Peter S. schrieb:

> Ich möchte ein niederfrequentes Signal (1 bis 8 bzw. 2 bis 15 Hz) in
> eine analoge Spannung Spannung umwandeln.

Ich vermute mal, das Du dir da eine andere Lösung suchen musst,
weil das benötigte Tiefpassfilter für Deine Anwendung einfach
zu träge ist.

Autor: Äxl (geloescht) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibt es das alles schon an deinem Rad, oder sind das ersteinmal nur 
grobe theoretische Betrachtungen?

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hans-Peter Ster (hanspeter_s376)

>Realisieren will ich das nur durch Zusammenlöten von diskreten
>Bauteilen, da ich die Schaltung im Fahrradrahmen verstecken will.
>Platinen udgl. sind da eher unpraktisch.

Nicht sinnvoll!

>Wenn es natürlich einen
>kompakten IC oder fertige Schaltungen auf Aliexpress gibt, die ich nur
>anpassen muss, dann gerne. Grundsätzlich je kleiner und geringer der
>Aufwand desto besser.

Das schon eher!

>Ich möchte ein niederfrequentes Signal (1 bis 8 bzw. 2 bis 15 Hz) in
>eine analoge Spannung Spannung umwandeln. Unter 1 Hz (2Hz) soll die
>Spannung null sein, bei 8 bzw. 15 Hz. soll sie 4V sein,

Das ist ein Frequenz-Spannungswandler, keine PWM. Bei derartig niedrigen 
Frequenzen macht man das sinnvollerweise digital, d.h. man mißt die Zeit 
zwischen zwei Pulsen. Die Spannungsausgabe macht man entweder mit einem 
echten DAC oder mit hochfrequenter PWM, die kann man leicht filtern.

>Jedenfalls aber soll die Schaltung frequenzabhängig sein, d.h. wenn bei
>Stillstand zufällig ein Magnet in der Nähe des Hallsensors ist, sich die
>Spannung daher aber nicht ändert, dann soll die analoge Spannung auf
>null (bleiben) abfallen.

Naja, da muss schon jemand mit ner guten Portion Sachverstand ran, da 
gibt es kaum was Fertiges.

Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald W. schrieb:
> Hans-Peter S. schrieb:
>
>> Ich möchte ein niederfrequentes Signal (1 bis 8 bzw. 2 bis 15 Hz) in
>> eine analoge Spannung Spannung umwandeln.
>
> Ich vermute mal, das Du dir da eine andere Lösung suchen musst,
> weil das benötigte Tiefpassfilter für Deine Anwendung einfach
> zu träge ist.

Analog wird man die Sache nicht in den Griff bekommen. Man muß die 
Frequenz reziprok messen, wozu man lediglich eine einzige Periode 
braucht, die dann auch sehr genau ausgewertet werden kann. Ein ATtiny44 
(z.B.) erledigt die Messung und liefert den DAC per PWM. Beispiel: 
http://mino-elektronik.de/fmeter/fm_software.htm#bsp11, wobei der 
Frequenzbereich ohne Probleme auf 1 - 15 Hz eingegrenzt werden kann.

Welches Problem konkret gelöst werden soll, habe ich allerdings nicht 
verstanden.

Autor: Äxl (geloescht) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
er möchte den Gasgriff durch sein Pedal ersetzen. Je schneller er tritt, 
umso mehr unterstützung möchte er haben, ohne am Gasgriff drehen zu 
müssen um den Unterschied zwischen e-Bike und Pedelec zu "kaschieren" 
(sag ich mal so ausm Bauch heraus)

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ m.n. (Gast)

>Welches Problem konkret gelöst werden soll, habe ich allerdings nicht
>verstanden.

Er will die Frequenz von einem Tretkurbelsensor in ein Stellsignal für 
seinen E-Motor umwandlen. Sozusagen ein selbstgestricktes E-Bike. Ob das 
SO funktioniert, bleibt offen.

Autor: Äxl (geloescht) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PLZ 14478
Wenn es das Rad mit seinen Komponenten bereits gibt, kann man sich da 
mal mitm Oszi drannsetzen und nach Analyse da was in Software gießen...

Autor: Harlekin (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Äxl (geloescht) schrieb:
> er möchte den Gasgriff durch sein Pedal ersetzen. Je schneller er tritt,
> umso mehr unterstützung möchte er haben, ohne am Gasgriff drehen zu
> müssen

Dann ist es der falsche Ansatz. Denn um schneller treten zu können, 
benötigt er mehr Unterstützung. Diese bekommt er aber erst durch 
schnelleres Treten. Alles klar?

;-)

Autor: Harald W. (wilhelms)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Harlekin schrieb:

> Denn um schneller treten zu können,
> benötigt er mehr Unterstützung. Diese bekommt er aber erst durch
> schnelleres Treten.

Vielleicht hat er ja die Kette abgebaut. :-)

Autor: Harlekin (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Harald W. schrieb:
> Vielleicht hat er ja die Kette abgebaut. :-)

Genau. Zwecks Gewichtseinsparung, daher "Grundsätzlich je kleiner"   ;-)

Autor: Hans-Peter S. (hanspeter_s376)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kurze Zusammenfassung:
Ist eine reale Anwendung, Motor steht schon in der Garage und 
funktioniert wie beschrieben über den Gasgriff. Das Problem ist nicht 
der Motor, sondern die Erfassung der richtigen Drehbewegung am Tretlager 
und Umsetzung in exakte Spannung, wobei ich auch mit einer konstanten 
Spannung leben kann.

Ich muss nicht unbedingt diese PAS verwenden, jede andere Lösung ist 
willkommen. Aber Hallsensoren sind halt recht unempfindlich (Wasser, 
Schmutz, etc)

Das mit dem schnellern Treten mehr Leistung ist richtig, so 
funktionieren die meisten Pedelecs. Ich kann aber auch mit Vollgas ab 
Erkennen einer Drehbewegung (aber in der richtigen Richtung) und 0V bei 
fehlender oder anders gerichteter Drehbewegung leben.

Warum ist die Zeitkonstante ein Problem? Ein IC würde ja auch mindestens 
einen Pulsabstand benötigen, bis er freischalten kann. Und die 
Zeitkonstante des Flankenanstieges verringert sich ja auch mit der 
Frequenz, oder?

Ich kann auch damit leben, dass das Signal ab 1Hz auf 4V geht und dort 
bleibt (also mit einem Trigger). Da weiss ich allerdings nicht wie 
berechnen und herstellen, ich kenn nur die Logik dahinter. Gerne auch 
Tips/Links dahingehend oder fertige Bauteile. Aber auch hier das 
Problem, dass in beiden Richtungen Pulse mit positiver Spannung aber 
unterschiedlicher Pulslänge anfallen und die Drehrichtung erkannt werden 
muss.

Die Variante mit attiny44 klingt auch interessant, hab allerdings noch 
keine Erfahrung mit Mikrokontrollern, flashen udgl. Ein Link zum 
Einsteigen (was brauche, wie programmiere ich den Controller,  wie kommt 
der Code dorthin) wär toll. Programmieren in python und c bekomme ich 
hin. Aber es bleibt das Problem der Drehrichtungserkennung, also nicht 
nur Frequenz, sondern auch Pulslänge. Ist das mit dem IC möglich? Mit 
einer Auswertung des analogen Einganges sollte das Doch gehen?

Autor: Gerald R. (visitor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wäre eine indirekte Auswertung des aufgewandten Drehmomentes des Fahrers 
auf die Kette auch eine Möglichkeit?
Du könntest auf der Zugseite der Kette einen kleinen Hebel mit Feder und 
Ritzel anbringen.
Wenn ich keinen Denkfehler habe dann funktioniert das im Endeffekt wie 
ein Servo.
Ob du die Tatsächliche Kraft am Hebel mittels Piezo abfragst,
oder direkt mit dem Hebel ein Potentiometer betätigst sollte egal sein.

Autor: Hans-Peter S. (hanspeter_s376)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jede Art von Kraftmessung wäre ideal, aber wo anbringen? . Das Hinterrad 
ist ein ganz normales MTB Hinterrad,  es bräuchte also einen Sensor im 
Ausfallende, das ist aber geklemmt durch den Schnellspanner. Ich wüsste 
nicht wie ich eine Krafteinwirkung messen könnte ohne eine aufwendige 
Entlastung der Hinterradeinspannung zu konstruieren.

Die Kette selbst bewegt sich bei Belastung auf der Zugseite kaum 
vertikal, durch das Schalten verändert sich auch noch die Kettenlinie.

Wie gesagt es soll ja einfach und unauffällig bleiben.

Autor: Harlekin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gerald R. schrieb:
> Wäre eine indirekte Auswertung des aufgewandten Drehmomentes des Fahrers
> auf die Kette auch eine Möglichkeit?
> Du könntest auf der Zugseite der Kette einen kleinen Hebel mit Feder
> und Ritzel anbringen.

Wo ist der Motor platziert? Hat er den selben Antriebsstrang wie die 
Pedalen?

Falls die Pedalkraft nicht gemessen werden kann, wäre der Hallsensor als 
Sicherheitselement neben dem Gashebel denkbar. Nach dem Motto: wird vor 
Schreck das Treten vergessen, wird der Motor deaktiviert. Das Losfahren 
ist dann allerdings nicht so bequem, da für die Unterstützung zuerst 
Tretimpulse erzeugt werden müssen.

Autor: Hans-Peter S. (hanspeter_s376)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Motor ist im Vorderrad. Der Motorcontroller startet frühestens ab einer 
Umdrehungsgeschwindigkeit von 7kmh. Treten muss man also auf jeden Fall.

Kraftmessung im Pedal / Kurbel: bewegt sich, wie komm ich an das Signal? 
Schleifkontakte sind viel zu anfällig.

Die Servoidee scheitert an der veränderlichen Kettenlinie.

Autor: Harlekin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann vielleicht die Kraft auf das Tretlager gemessen werden? Mit der 
Kette zieht man nach vorne, somit wird das Lager nach hinten gedrückt.

Es gibt käufliche Kraftmesspedalen. Leider konstruktionsbedingt nicht 
billig.

Autor: Harlekin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harlekin schrieb:
> Es gibt käufliche Kraftmesspedalen. Leider konstruktionsbedingt nicht
> billig.
Da Funk

Autor: Harlekin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht Kraftmessung via Verformung des Rahmens. Kurbellager und 
Hinterradlager werden über die Kette zusammengezogen.

Autor: Hans-Peter S. (hanspeter_s376)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, überschneidet sich aber mit anderen Lastfällen. Beispielsweise wird 
die Kettenstrebe gezogen, wenn dass Hinterrad am Berührungspunkt mit 
Asphalt stärker gedrückt wird - Schlagloch, Sprung über Bordstein. Und 
dann dürften diese Belastungen auch noch recht schwingungsbehaftet sein.

Eigentlich funktioniert die Kraftmessung nur mit einem eigenen Teil im 
Ausfallende. Alle anderen Punkte haben alle möglichen anderen Zug, Druck 
und Querkräfte, als dass man ohne Analyse (also wieder IC) das reine 
Treten rausfiltern könnte.

Autor: Harald W. (wilhelms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans-Peter S. schrieb:

> Das Hinterrad ist ein ganz normales MTB Hinterrad,

Dann gibts doch für die Schaltung einen Kettenspanner. An dessen
Bewegung kann man erkennen, ob man tritt oder nicht.

Autor: Hans-Peter S. (hanspeter_s376)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, aber wie bekomme ich das Signal von dort, und wie erreiche ich dass 
es 4V hat. Ob ich die Drehbewegung im Tretlager, an der Kurbel, oder im 
Ritzel von der Schaltung messe, ändert ja nichts am 
Konvertierungsproblem.

Und fürs Tretlager gibt es schon vorkonfektionierte Hallsensoren und 
Magnetscheiben.

: Bearbeitet durch User
Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans-Peter S. schrieb:
> Die Variante mit attiny44 klingt auch interessant, hab allerdings noch
> keine Erfahrung mit Mikrokontrollern, flashen udgl. Ein Link zum
> Einsteigen (was brauche, wie programmiere ich den Controller,  wie kommt
> der Code dorthin) wär toll. Programmieren in python und c bekomme ich
> hin. Aber es bleibt das Problem der Drehrichtungserkennung, also nicht
> nur Frequenz, sondern auch Pulslänge. Ist das mit dem IC möglich?

Die Erkennung von Pulsabstand und Pulslänge ist mit einem 
Mikrocontroller meist kein Problem, solange das Ganze nicht zu schnell 
(µs) wird. Alles eine Frage der Programmierung und der Nutzung der auf 
dem µC vorhandenen Hardware. Mit Python beißt du bei einem ATtiny44 
allerdings auf Granit.

Wie sehen deine Pulse zeitlich aus.
Was sind "kurze Pulse", was sind "lange Pulse"? Ein "hohes Anzugsmoment" 
für eine M24 Schraube sieht anders aus, als für eine M2.5-Schraube. Ich 
habe beim Überfliegen des Fadens jetzt kein Pulsdiagramm endecken können 
;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.