Forum: Mikrocontroller und Digitale Elektronik AVR Programmierung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von TT (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte gerne einen inkremental Encoder auswerten (A-,B-,N-Signal). 
Hierfür benutze ich einen µC aus der UC3A-Baureihe(32Bit).
Zudem soll der gemessene Winkel mit einem Zeitstempel versehen werden.

Kurze Infos:
Drehzahl: 116,67 1/s
Impulse pro Umdrehung: 1800

Kann mir einer sagen , wie ich das am besten lösen kann?
Benötige jetzt kein Programm , mir reicht eine schrittweise Erklärung 
vollkommen.
Könnte der Capture Mode eventuell nützlich sein ?

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Bewertung
0 lesenswert
nicht lesenswert
> UC3A-Baureihe(32Bit)
Uiuiui, bißchen knapp, oder? Das schafft der doch nie.

Im Grund wertet man eine (z.B. die fallende) Flanke von einem Kanal aus 
und schaut bei deren Erkennung nach, wie der Pegel des anderen Kanals 
ist. Daraus erkennt man die Richtung.

Edit: Aber ich denke das wird sowieso nichts, Du erzeugst da Impulse mit 
210kHz. Wenn ich da für jeden Impuls einen Zeitpunkt speichern möchte, 
fallen da einige Megabyte Daten pro Sekunde an. Wozu?

: Bearbeitet durch User
von Toliam T. (tt95)


Bewertung
-1 lesenswert
nicht lesenswert
Ah stimmt , die Richtungserkennung habe ich mit D-Flip-Flops gelöst.
Bsp. 1 für Linksdrehend und 0 für Rechtsdrehend.

von M.A. S. (mse2)


Bewertung
0 lesenswert
nicht lesenswert
Ben B. schrieb:
> Edit: Aber ich denke das wird sowieso nichts, Du erzeugst da Impulse mit
> 210kHz. Wenn ich da für jeden Impuls einen Zeitpunkt speichern möchte,
> fallen da einige Megabyte Daten pro Sekunde an. Wozu?

Es ist doch nicht gesagt, dass bei jeder Flanke ein Winkel mit 
Zeitstempel erhoben werden muss (oder doch?).

von Toliam T. (tt95)


Bewertung
-1 lesenswert
nicht lesenswert
Einen externen 24 Mhz Quarz verwende ich auch noch.

von Toliam T. (tt95)


Bewertung
0 lesenswert
nicht lesenswert
M.A. S. schrieb:
> Ben B. schrieb:
>> Edit: Aber ich denke das wird sowieso nichts, Du erzeugst da Impulse mit
>> 210kHz. Wenn ich da für jeden Impuls einen Zeitpunkt speichern möchte,
>> fallen da einige Megabyte Daten pro Sekunde an. Wozu?
>
> Es ist doch nicht gesagt, dass bei jeder Flanke ein Winkel mit
> Zeitstempel erhoben werden muss (oder doch?).

Der Zeitstempel dient dazu um mehrdeutige Winkelinformationen zu 
vermeiden.

von M.A. S. (mse2)


Bewertung
0 lesenswert
nicht lesenswert
Toliam T. schrieb:
> Der Zeitstempel dient dazu um mehrdeutige Winkelinformationen zu
> vermeiden.

TT schrieb:
> ich möchte gerne einen inkremental Encoder auswerten...

"Auswerten" ist keine sehr eindeutige Information. Wie viele Winkelwerte 
pro Zeit sollen denn nun genommen werden? Was wird damit gemacht?

von Toliam T. (tt95)


Bewertung
0 lesenswert
nicht lesenswert
M.A. S. schrieb:
> Toliam T. schrieb:
>> Der Zeitstempel dient dazu um mehrdeutige Winkelinformationen zu
>> vermeiden.
>
> TT schrieb:
>> ich möchte gerne einen inkremental Encoder auswerten...
>
> "Auswerten" ist keine sehr eindeutige Information. Wie viele Winkelwerte
> pro Zeit sollen denn nun genommen werden? Was wird damit gemacht?


Die Messdauer beträgt 10s. Sinn ist von einem Motor die Winkel zu 
bestimmen.
Mit einer Winkelauflösung von 0,2°. Maximale Drehzahl wäre 7000 U/min.
Die Messdaten werden auf einem MT48LC16M16A2-75 zwischengespeichtert.
Danach sollen die Daten auf einem USB Speicher abgeliefert werden in 
Form einer Textdatei. Auswertung erfolgt offline.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Bewertung
0 lesenswert
nicht lesenswert
7000 U/min bei 1800 Impulsen pro Umdrehung? Was soll das werden, ein 
Maschinensender? Sowas kann man inzwischen schon in Röhrentechnik bauen.

Nee ernsthaft, hast Du das überhaupt mal durchgerechnet? Ich verstehe 
nicht mal was Du damit meinst von einem Motor die Winkel zu bestimmen.

von Thomas F. (igel)


Bewertung
0 lesenswert
nicht lesenswert
TT schrieb:
> Könnte der Capture Mode eventuell nützlich sein ?

Die AT32UC3 haben Quadrature-Encoder in Hardware. Da braucht es keine 
Capture-Interrupts. Dazu findet sich bestimmt auch Beispiel-Code oder 
ein Application-Note.

von Toliam T. (tt95)


Bewertung
0 lesenswert
nicht lesenswert
Ben B. schrieb:
> 7000 U/min bei 1800 Impulsen pro Umdrehung? Was soll das werden, ein
> Maschinensender? Sowas kann man inzwischen schon in Röhrentechnik bauen.
>
> Nee ernsthaft, hast Du das überhaupt mal durchgerechnet? Ich verstehe
> nicht mal was Du damit meinst von einem Motor die Winkel zu bestimmen.

Geht um einen Bremsmotor von dem ich die exakte Position bestimmen soll.
Wären soweit ich richtig gerechnet habe 210kHz.
Mit Einbezug auf das Abtasttheorem müsste ich dann jede 2,4 µs abtasten.

von Rufus Τ. F. (rufus) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Toliam T. schrieb:
> Die Messdauer beträgt 10s. Sinn ist von einem Motor die Winkel zu
> bestimmen.
> Mit einer Winkelauflösung von 0,2°. Maximale Drehzahl wäre 7000 U/min.

Und was sollen "die Winkel" von einem sich schnell drehenden Motor sein?

von abc.def (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich rate mal, daß man die Winkelgeschwindigkeit eines Hubkolbenmotors in 
der Abwürge-Rampe bestimmen kann, inkl. Drehschwingungen.
ISt aber nur geraten. Bestimmt ein Studentenprojekt.

von abc.def (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Brauchst du noch einen DMS auf der Welle für das Drehmoment mit gleichem 
Zeitstempel.? Oder macht das der kommilitone? Werden die zeitstempel 
synchronisiert?
Wird ein Sample pro Winkel genommen, oder pro Zeiteinheit?
Schreibst Du diesen thread ins Literaturverzeichnis von deiner 
'Batschellerarbeit'??!!

von Thomas F. (igel)


Bewertung
1 lesenswert
nicht lesenswert
Toliam T. schrieb:
> Geht um einen Bremsmotor von dem ich die exakte Position bestimmen soll.

Und wie oft sollst du die Position bestimmen?
Wirklich jedes mal wenn einer der 1800 Impulse pro Umdrehung auftritt?

Oder vielleicht doch nur z.B. jede Millisekunde.

Wir haben hier auch Bremsmotore mit 2048 Impulsen pro Umdrehung. 
Trotzdem wird die Drehzahl nur alle 10ms abgespeichert.

von M.A. S. (mse2)


Bewertung
0 lesenswert
nicht lesenswert
Thomas F. schrieb:
> Und wie oft sollst du die Position bestimmen?
> Wirklich jedes mal wenn einer der 1800 Impulse pro Umdrehung auftritt?
>
> Oder vielleicht doch nur z.B. jede Millisekunde.
>
> Wir haben hier auch Bremsmotore mit 2048 Impulsen pro Umdrehung.
> Trotzdem wird die Drehzahl nur alle 10ms abgespeichert.

Eben.
@TO: Was denn nun?

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]
  • [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.