2 Rechtecksignale mit ATmega8 umwandeln

Gast #596814
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!
Gast #596846
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.
#596847
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.

Gast #596870
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?
#596938
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren