Forum: Mikrocontroller und Digitale Elektronik Schieberegister ansprechen; Code verstehen


von Duda D. (ruma)


Lesenswert?

Ich möchte mithilfe von drei Schieberegistern 74HC595, 12 Schrittmotoren 
L293D ansteuern. Hierfür verstehe ich schon wie ich die Bauteile 
miteinander verschalten muss. Jedoch tue ich mich mit der Programmierung 
der Schieberegister etwas schwierig. Der Plan ist das immer nur ein 
gewünschter Output der drei Schieberegister auf High geschaltet ist. Man 
kann sich dass so vorstellen wie ein Projekt mit 24 LEDs und man möchte 
nach und nach nur eine ganz bestimmte LED anschalten. Ich habe mich 
schon grob vertraut gemacht mit der Programmierung von diesen 
Schieberegistern, allerdings habe ich bisher nur Lauflichter mit 
passenden Schleifen gesehen und nach programmiert. Für mein Problem 
fehlt mir noch ein wenig der Ansatz wie ich das am besten umsetze. Ich 
freue mich über gute Erklärungen, gute Links und allgemein über jede 
Hilfe.

von HildeK (Gast)


Lesenswert?

Beschäftige dich mit dem Datenblatt des HC595.
Über DI kannst du mit SHCP einen seriellen Datenstrom durch das 
Schieberegister schieben. Die Ausgänge bleiben wie vorher.
Wenn du z.B. deine 24Bit so hineingeschoben hast, dann gib eine positive 
Flanke auf STCP und der Inhalt des SR wird auf die Ausgänge gegeben.

Wenn du nur einen Ausgang ändern willst, musst du alle 24 Bit (in deinem 
Fall bei 3 x HC595) neu schreiben, nur eben mit der einen Stelle 
geändert.

von Dr. Sommer (Gast)


Lesenswert?

Duda D. schrieb:
> Ich möchte mithilfe von drei Schieberegistern 74HC595, 12
> Schrittmotoren
> L293D ansteuern.

Ist eine Motorsteuerung nicht ziemlich zeitkritisch? Wäre es nicht 
sinnvoller, einen Controller mit genügend Pins (davon gibt es jede 
Menge) zu nehmen? Manche Controller ermöglichen dir sogar per Timer eine 
Taktgenaue Steuerung von weit über 12 Kanälen.

von Peter D. (peda)


Lesenswert?

Du legst Dir einen virtuellen Port im SRAM an (24 Bit = 3 Byte) und in 
dem machst Du Deine Änderungen. Und nach jeder Änderung kopierst Du ihn 
in das SRG.

von Wolfgang (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Ist eine Motorsteuerung nicht ziemlich zeitkritisch?

Das kommt wohl auf die gewünschte maximale Schrittfrequenz an.

Auch hat der L293 IMHO höchstens aus nostalgischen Gründen noch einen 
Lebensberechtigung als Treiber für Schrittmotoren. In den meisten 
Anwendungen wird man heutzutage einen mit Stromregelung einsetzen - 
jedenfalls wenn es auch um Drehmoment bei höheren Schrittfrequenzen 
geht.

von m.n. (Gast)


Lesenswert?

Duda D. schrieb:
> Ich möchte mithilfe von drei Schieberegistern 74HC595, 12 Schrittmotoren
> L293D ansteuern.

Kannst Du bitte Deine Schaltung skizzieren, Motortyp und Schrittfrequenz 
mitteilen? Ich glaube nämlich, es handelt sich um eine Fehlplanung.

von Duda D. (ruma)


Lesenswert?

Ich möchte hiermit keine Motoren steuern, sondern lediglich eine 
spannungsstimmulation erzeugen. Am Oszilloskop hat das auch schon 
wunderbar funktioniert. Lediglich soll jetzt das ganze noch mit 
schieberegistern ausgeweitet werden. Ich hab auch jetzt einen Code 
entwickelt indem ich die Leds einzeln an bekomme. Ich glaube ich komme 
doch alleine zurecht. Td vielen Dank :)

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.