Forum: Mikrocontroller und Digitale Elektronik Mit einem Taster weiter schalten


von Sören (Gast)


Lesenswert?

Hallo zusammen,

möchte gerne mit einem Taster durch 12 LEDs schalten und zwar so das 
wenn ich den Taster 1 drücke die erste angeht. Beim erneuten drücken 
soll dann die erste ausgehen und die zweite LED an.

Wo finde ich dazu ein passendes Tuturail?

Grüße.

von Karl H. (kbuchegg)


Lesenswert?

AVR-Tutorial

Edit:
D.h. ob das passt weiss ich nicht. Da hast ja weder µC Typ noch 
Programmiersprache erwähnt.

: Bearbeitet durch User
von V Schlegel (Gast)


Lesenswert?

Such mal was ein 74HC4017 macht und wie man ihn Kaskadiert

von Fritz (Gast)


Lesenswert?

If Taster
   Led *= 2

If Led = 2048
   Led = 0

von Arduinoquäler (Gast)


Lesenswert?

Fritz schrieb:
> If Taster
>    Led *= 2
>
> If Led = 2048
>    Led = 0

Das ist zu anspruchsvoll! Ein Tuturail bitte!

von Volker S. (vloki)


Lesenswert?

Muss sicher Torturial heißen ...

von Chris K. (christopher_k25)


Lesenswert?

Möchtest du das ganze evtl. ohne Mikrocontroller aufbauen, rein druch 
eine logiche Schaltung?
Dann wäre eine Grundkenntnis von Zustandsautomaten bzw. 
zustandsgesteuerten Schaltungen von Vorteil.

Grundidee: du hängst hinter den Taster 12 Transistoren mit LEDs etc., 
und in Reihe zur Steuerleitung eine weitere Schaltung die von der 
vorherigen LED freigeschaltet wird bzw. von der nächsten wieder 
deaktiviert. Somit "Rattert" der geschaltete Stromfluss durch deine 
Schaltung durch.

Dann noch Signalflankensteuerung, Anfangsbedingungen, Schaltprellen etc. 
berücksichtigen.

von Karl Peter Gustafson (Gast)


Lesenswert?

Fritz schrieb:
> If Taster
>    Led *= 2
>
> If Led = 2048
>    Led = 0

Da vertraust du aber auf deinen Compiler und deine Architektur.

Multiplikation mit 2? Schieben ist angesagt (okay, macht der Compiler 
hier vermutlich).

Und wenn du den Wert von Led auf 0 setzt, dann kannst du so oft schieben 
oder multiplizieren, es bleibt 0.

Ich finde den Vorschlag mit dem Schieberegister persönlich am schönsten. 
Mit Startwert 1 nach Reset laden und dann einfach weiterschieben. Schön 
simpel und man braucht nix programmieren.

von Reinhard #. (gruebler)


Lesenswert?

Fritz schrieb:
> If Taster
>    Led *= 2
>
> If Led = 2048
>    Led = 0

Das funktioniert so nicht!
Es fehlt die Flankenauswertung
für Taste.

von Sören (Gast)


Lesenswert?

Karl Heinz schrieb:
> Edit:
> D.h. ob das passt weiss ich nicht. Da hast ja weder µC Typ noch
> Programmiersprache erwähnt.

Stimmt auch wieder.
Ich verwende einen Atmega8 und schreibe in C

na dachte mir das ich einfach

if taster
{
...
}
if taster
{
...
}

aber das geht nicht wirklich :D

von Amateur (Gast)


Lesenswert?

Früher hätte ich gesagt:
Nimm 'nen 74??92, schließe Deinen Taster an den Takt an und schalte 
einen 74??154 dahinter. Mit einem 74??93 vorweg kannst Du sogar 16 LEDs 
steuern.
Außerdem geht dann: 0, 1, 2, ... 10, 11, "aus" - sind 13 Zustände. O12 = 
Reset.

Kein Reset, kein Set, keine großen LEDs (ohne 12 zusätzliche Treiber).

von Volker S. (vloki)


Lesenswert?

Sören schrieb:
> aber das geht nicht wirklich :D

Vielleicht wartest du einfach mal zwischen durch
bis der Taster wieder losgelassen wird ?

Die möglichen Prell-Probleme kommen dann im Anschluss ...

von Sören (Gast)


Lesenswert?

Amateur schrieb:
> Früher hätte ich gesagt:
> Nimm 'nen 74??92, schließe Deinen Taster an den Takt an und schalte
> einen 74??154 dahinter. Mit einem 74??93 vorweg kannst Du sogar 16 LEDs
> steuern.
> Außerdem geht dann: 0, 1, 2, ... 10, 11, "aus" - sind 13 Zustände. O12 =
> Reset.
>
> Kein Reset, kein Set, keine großen LEDs (ohne 12 zusätzliche Treiber).

die sache ist die das ich den µC brauche. Also wäre eine Softwarelösung 
ganz gut :)

von Sören (Gast)


Lesenswert?

Volker SchK schrieb:
> Vielleicht wartest du einfach mal zwischen durch
> bis der Taster wieder losgelassen wird ?

danke top geht so!

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.