mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2 Rechtecksignale mit ATmega8 umwandeln


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Für ein Projekt möchte ich zwei Signale (Ansteuerung für einen 
Schrittmotor) mit dem Atmega8 umwandeln.

Leider fehlt mir irgendwie die zündende Idee, wie ich das realisieren 
kann. Es handelt sich um folgende Signale:

Signal 1: 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0
Signal 2: 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1

Also eigentlich zwei Rechtecksignale, die phasenversetzt sind.

Für die Richtungsänderung sehen die Signale so aus:

Signal 1: 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1
Signal 2: 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0

Das Problem für mich ist, ich brauche nur ein Rechtecksignal für den 
Schritmotor und eines für die Bewegungsrichtung.

Schrittmotor: 0 0 1 1 0 0 1 1 0 0 1 1 0 0
Dieses Signal zu erzeugen ist ja kein Problem, da ich einfach Signal 1 
und 2 verUNDen oder verODERn kann.

Das Problem ist aber das Signal für die Bewegungsrichtung. Also für 
Richtung 1 ein L und für Richtung 2 ein H.

Lässt sich doch bestimmt in ASM programmieren, doch leider habe ich 
keinen Ansatz. Außerdem würde mich interesserieren, ob es auch möglich 
wäre das Signal ohne Programmierung, also nur mit Schaltungstechnik, zu 
erzeugen.

Danke für Eure Hilfe!

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das würde auch ohne Programm gehen:
Signal1:    0 0 1 1 1 0 0 1 1 1 ..
              ^^^^^^^^^^
              Periode hier
Das sollte auch mit nem 5stufigen Schieberegister gehen, welches mit 
dieser Signalfolge paralell vorgeladen wird.
EIn Schieben nach rechts oder links wäre dann der drehrichtung 
gleichzusetzten
Ein Ausgangs des SRG kann dann als SIgnal eins, der davor bzw 
dahinterliegende als Signal2 verwendet.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael wrote:
...
> Leider fehlt mir irgendwie die zündende Idee, wie ich das realisieren
> kann. Es handelt sich um folgende Signale:
>
> Signal 1: 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0
> Signal 2: 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1
>
> Signal 1: 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1
> Signal 2: 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0
>
...
> keinen Ansatz.

Schau dir mal den Pegel am Signal 2 an, wenn im Signal 1 ein
Übergang 0 -> 1 erfolgt. Ditto für den Übergang 1 -> 0.
un ditto für Signal 1, wenn im Signal 2 besagte Übergänge
stattfinden.


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also kann ich das dann folgendermaßen machen?

- Abfrage der 2 Eingänge

- Wenn Signal 1 von L auf H wechselt
  UND
  Signal 2 gleich H ist
  DANN
  Richtung1

- Wenn Signal 1 von L auf H wechselt
  UND
  Signal 2 gleich L ist
  DANN
  Richtung2

---------------------------------------------------------------------
@Matthias: mit welchem Schieberegister könnte man so etwas aufbauen?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael wrote:
> Hallo!
>
> Für ein Projekt möchte ich zwei Signale (Ansteuerung für einen
> Schrittmotor) mit dem Atmega8 umwandeln.
>
> Leider fehlt mir irgendwie die zündende Idee, wie ich das realisieren
> kann. Es handelt sich um folgende Signale:
>
> Signal 1: 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0
> Signal 2: 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1
>
> Also eigentlich zwei Rechtecksignale, die phasenversetzt sind.
>
> Für die Richtungsänderung sehen die Signale so aus:
>
> Signal 1: 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1
> Signal 2: 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0
>
> Das Problem für mich ist, ich brauche nur ein Rechtecksignal für den
> Schritmotor und eines für die Bewegungsrichtung.


Beitrag "Drehgeber auslesen"


Peter

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.