Forum: Mikrocontroller und Digitale Elektronik LED Uhr mit 74HC595 und ATmega32


von Tim R. (gigiga)


Angehängte Dateien:

Lesenswert?

Hallo,
ich muss für die Schule ein Projekt in Fach Mikrocontroller durchführen. 
Ich habe mir ausgesucht eine LED Uhr zu bauen und zu programmieren. Die 
Uhr besteht aus 132 LED's, die mit einem 74HC595 angesprochen werden 
sollen. Also Controller kommt ein ATmage32 zum Einsatz. Die Uhr selbst 
und die Platinen sind fertig, ich hänge momentan aber daran, wie ich 
diese an meinem Controller anschließe und wie ich ein Schieberegister in 
C "programmiere". Ich werde leider auch nicht aus den Tutorials schlau.

Ich würde mich riesig freuen, wenn mir jemand bei der Initialisierung 
eines Schieberegisters in C helfen könnte und mir eventuell ein Beispiel 
geben kann, wie ich so eine LED anschalte. Die restlichen LED's wären 
dann ja nur noch Transferarbeit.

Ich hoffe irgendjemand kann mir helfen.

Anbei ein Bild der Uhr im inneren, sowie ein Bild des Schaltplans der 
einzelnen Platinen. Insgesammt habe ich 3 Platinen. Jeweils eine für 
Stunden, Minuten und Sekunden.

: Bearbeitet durch User
von Axel G. (axelg) Benutzerseite


Lesenswert?

Hast du denn deinem ATmega32 überhaupt schon etwas beigebracht, will 
sagen eine einzelne LED (ohne Schieberegister) zum Blinken gebracht?

: Bearbeitet durch User
von Tim R. (gigiga)


Lesenswert?

Ja habe ich. Habe auch schon das Uhr System, mit timer, aber ohne dcf77. 
Nur ich weiß einfach nicht wie ich das mit den Schieberegistern mache.

von Axel G. (axelg) Benutzerseite


Lesenswert?

Ein paar Denkanstöße:
An deinem Schieberegister hängen mehrere LEDs, du brauchst also mehrere 
Bits an Information um die LEDs unabhängig anzusteuern. Du musst dein 
Programm also etwas mehrfach machen lassen um das Schieberegister einmal 
komplett mit neuen Informationen zu füllen.
So ein Schieberegister hat einen Dateneingang und einen Takteingang.

von Sven S. (boldie)


Lesenswert?

Die Frage ist, wo genau dein Problem ist, bei der Ansteuerung des 
Schieberegisters oder bei der Abstraktion der Daten und was du in das 
Schieberegister hineinschreiben sollst.

Hast du schon etwas in das Schieberegister hineinbekommen, also 0/1/0/1 
oder so etwas ähnliches und das bei den LEDs gesehen?

Im wesentlichen solltest du dir klar machen, was folgende Pins am 
Schieberegister bewirken, wie sie angeschlossen sind und was du dort vom 
Mikrocontroller aus gesehen anlegen must, das etwas passiert.

MR 10 master reset (active LOW)
SHCP 11 shift register clock input
STCP 12 storage register clock input
OE 13 output enable input (active LOW)
DS 14 serial data input

Insbesondere, wann muss bei SHCP, STCP etwas passieren und wie, wie muss 
MR und OE im normalen Betrieb beschaltet sein. Am Besten du schreibst 
einmal runter, was du mit diesen Eingängen machen würdest, dann kann 
dich jemand hier korrigieren, wenn du es falsch machst.

Alles vorkauen ist aber auch nichts, denn du sollst es auch verstehen.

von Karl H. (kbuchegg)


Lesenswert?

So ein 595 Schieberegister ist eigentlich eine ganz einfache Sache.
Lies dir doch hier
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister
mal die Beschreibung durch, wie das ganze prinzipiell funktioniert.

> Ich würde mich riesig freuen, wenn mir jemand bei der
> Initialisierung eines Schieberegisters in C

Am 595 gibts nichts zu initialisieren. Der Baustein arbeitet nach dem 
Anlegen der Versorgungsspannung einfach so.
Wenn du ihn komplett per Software ansteuerst, brauchst du einfach nur 
die Pins am Mega, an denen die SR-Eingänge liegen auf Ausgang schalten 
und schon kannst du loslegen.
Wenn du das Hardware SPI Modul zur Ansteuerung nimmst, dann musst du 
eben das im Mega initialisieren. In deinem Fall würde ich allerdings 
erst mal zu einer Software Ansteuerung greifen. Denn die kannst du 
leicht verstehen und vor allen Dingen kannst du, falls die Ansteuerung 
nicht funktioniert, das Pinwackeln dann so langsam wie notwendig machen 
um dir mit ein paar LED an den Leitungen die Zustände anzeigen zu lassen 
und mit dem vergleichen wie es eigentlich sein sollte.

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.