Forum: Mikrocontroller und Digitale Elektronik wie erzeuge ich hohe Frequenzen zum steuern eines Laufbands?


von Zeitjäger  . (forgoden)


Angehängte Dateien:

Lesenswert?

Hallo, ich hab ein Laufband (Sportgerät) und ich möchte denn mit AtMega 
ansteuern (Arduino)

Der Steuerungskasten, der zu diesem Laufband dazugehörte, erzeugt ein 
Signal wie auf dem Bild zu sehen ist. Ich habe (Oszilloskop) auf 20 
mikro Sekunden gestellt, dann war dieser Frequenz zu sehen.

Wenn ich mit Arduino versuche einen ähnlichen Frequenz zu erzeugen dann 
ist High und Low gleichmäßig. (zweites Bild) Wie kann ich das ändern?

In wiki: 
http://de.wikipedia.org/wiki/Pulsweitenmodulation#/media/File:Pulse_wide_wave.svg

ich müsste einmal T festlegen, dann kommt dieser t1 welcher sich 
variieren lässt. Gibt es eine Library dazu oder wie programmiert man das 
überlicherweise?

Zweite Frage: Wie kann ich diesen Frequenz in einen genauern Wert 
messen?

von Wolfgang (Gast)


Lesenswert?

Helmut vB schrieb:
> Gibt es eine Library dazu oder wie programmiert man das
> überlicherweise?

Üblicherweise müssen bei einem µC die Register, die für die 
Pulserzeugung mit dem Timer zuständig sind, passend gesetzt werden. Das 
ist genau im Datenblatt des Prozessors beschrieben. Wenn man dafür keine 
Library hat, muss man sich eine schreiben oder die Register zu Fuß 
passend setzen.

Zum Glück bist du nicht der erste mit diesem Problem und mit Google 
findest du zum Stichwort "Arduino PWM" massenweise Unterstützung, z.B. 
Tutorials
http://arduino.cc/en/Tutorial/PWM

IMHO bei allen Arduinos findest du die Funktion analogWrite() für diesen 
Zweck und wenn du nicht gerade die ersten beiden Analogkanäle eines 
Arduino Due erwischt, wird das Signal über PWM erzeugt. Für deine Zeiten 
musst du nur noch an der Frequenz drehen.

von Zeitjäger  . (forgoden)


Lesenswert?

schon aber es handelt sich hier um Kiloherz! Das wären so um die 23kHz 
die der Motor braucht.

in Arduino kann ich nur Milisekunden einstellen.

Vielleicht geht es das http://arduino.cc/en/Reference/delayMicroseconds

von Wolfgang (Gast)


Lesenswert?

Helmut vB schrieb:
> schon aber es handelt sich hier um Kiloherz! Das wären so um die 23kHz
> die der Motor braucht.

Der Herr Hertz hatte auch ein Herz für Arduino Nutzer. Verrate einfach 
mal ein paar Daten.
 - mit welcher Taktfrequenz läuft dein Arduino
 - die PWM scheint 23kHz zu sein
 - wie genau musst du das Puls-Pausenverhältnis einstellen können.

von Wolfgang (Gast)


Lesenswert?

p.s.

Wolfgang schrieb:
> ... mit Google findest du zum Stichwort "Arduino PWM" massenweise
> Unterstützung

Helmut vB schrieb:
> schon aber es handelt sich hier um Kiloherz! Das wären so um die 23kHz
> die der Motor braucht.

Du solltest dir den zweiten und den vierten Google Treffer zu den 
Stichworten auch noch ansehen und durchlesen/-arbeiten

> in Arduino kann ich nur Milisekunden einstellen.
Wie meinst du das?

von Ulli-B (Gast)


Lesenswert?

Wolfgang schrieb:
> in Arduino kann ich nur Milisekunden einstellen.
>
> Wie meinst du das?

Das war ein Hinweis darauf, dass Wolfgang nicht kapiert hat, was du ihm 
versucht hast mit zu teilen.

Ulli-B

von Ulli-B (Gast)


Lesenswert?

Ulli-B schrieb:
> Wolfgang schrieb:
> in Arduino kann ich nur Milisekunden einstellen.
> Wie meinst du das?
>
> Das war ein Hinweis darauf, dass Wolfgang nicht kapiert hat, was du ihm
> versucht hast mit zu teilen.
>
> Ulli-B

Sorry, Wolfgang hat es natürlich kapiert, Helmut ist derjenige, der mit 
PWM nichts anfangen kann.

Ulli-B

von Zeitjäger  . (forgoden)


Lesenswert?

äh ich muss jetzt aber nicht mit PWM timer registers beschäftigen ???

von PeterZ (Gast)


Lesenswert?

äää, doch wenn es funktionieren soll.

von Ben (Gast)


Lesenswert?

Helmut vB schrieb:
> äh ich muss jetzt aber nicht mit PWM timer registers beschäftigen ???

Nein.
Wenn du Arduino benutzt (und das tust du anscheinend) gibt es da die 
AudioInterface lib.

Wenn du diese in dein Projekt einbindest musst du nichts weiter machen 
als zu deinem Arduino zu sprechen: "Computer, Laufband ansteuern!".

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.