Forum: Mikrocontroller und Digitale Elektronik 2 Rechtecksignale mit ATmega8 umwandeln


von Michael (Gast)


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!

von Matthias (Gast)


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.

von Karl H. (kbuchegg)


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.


von Michael (Gast)


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?

von Peter D. (peda)


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

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.