Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage Binäruhr


von Luke S. (no3x)


Lesenswert?

Hallo, hier ein weiterer Betrag zum Thema Binäruhr.

Ich habe vor eine Binäruhr zu bauen, bisher habe ich jedoch nur die Uhr 
am laufen. Ich möchte das ganze gern mit einer Matrix realisieren, 4x6 
Felder, 20 LED.

Problem ist nun die Verarbeitung der Uhrzeit:
Ich denke, dass es Sinn macht jeden "Spalte" zu durchlaufen - 
h,h,m,m,s,s.
Z.B. mit der Uhrzeit 13:53:21: dann würde ich die erste und zweite 
Spalte h durchgehen (1 = 1. LED an, 3 = 1.&2. LED an) usw. mit den 
restlichen Stellen..
Das ist die Theorie - jedoch arbeite im Programm mit der Variable stunde 
= 13. Wie soll ich aus diesem integer die 1 und die 3 einzeln betrachten 
können? Nehme ich char könnte ich mit den Stellen arbeiten, jedoch nicht 
rechnen.

Weiß jemand wie das zu lösen ist?

von Peter (Gast)


Lesenswert?

Christian Zöller schrieb:
> jedoch arbeite im Programm mit der Variable stunde
> = 13. Wie soll ich aus diesem integer die 1 und die 3 einzeln betrachten
> können?

13 / 10 = 1
13 % 10 = 3

von Luke S. (no3x)


Lesenswert?

Okay Peter, das ist sehr interessant. Vielen Dank!
Dann würde ich aus den beiden Zahlen jetzt die Binärzahl bilden.
1 =  0001
3 =  0011
und die Felder der ersten Spalte füllen:
[0][][][][][] (8)
[0][][][][][] (4)
[0][][][][][] (2)
[1][][][][][] (1)
die felder der zweiten Spalte füllen
[0][0][][][][] (8)
[0][0][][][][] (4)
[0][1][][][][] (2)
[1][1][][][][] (1)

daraus folgt, dass ich 4 Ports mit jeweils 6 Pins benötige Portx 
Pin0..Pin6.
Und dann einfach Portx = Zeilex (bei Zeile 4 = 110000) belege.

Stimmt die Logik so? Geht es nicht effizienter?

von Peter (Gast)


Lesenswert?

Christian Z. schrieb:
> Stimmt die Logik so? Geht es nicht effizienter?

ich dachte du willst multiplexen? Bei 4x6 brauchst du 10 ausgänge über 
wieviel Port sie verteilt sind es fast egal.

von Luke S. (no3x)


Lesenswert?

Das habe ich noch nie gemacht, ich weiß darüber nur, dass man somit eine 
Menge Ausgänge spart dafür aber mehr Spannung braucht und eine bestimmte 
Frequenz benötigt um das Auge zu "täuschen". Wie das jetzt direkt hier 
realisiert wird weiß ich nicht.
Ich habe noch nie Elektronik angesteuert, außer auf dem Evaluationsboard 
von Pollin.

von Sascha W. (sascha_w)


Lesenswert?

und dann die Matrix so anordnen, das du die 4 Bits einer Stelle zusammen 
ausgibst und nicht von allen 6 Stellen immer 1 Bit!

Sascha

von Luke S. (no3x)


Lesenswert?

Sascha Weber schrieb:
> und dann die Matrix so anordnen, das du die 4 Bits einer Stelle zusammen
> ausgibst und nicht von allen 6 Stellen immer 1 Bit!
>
> Sascha

Kannst du es ein wenig visualisieren, ich versteh nicht so recht wie du 
es meinst.

von Peter (Gast)


Lesenswert?


von Luke S. (no3x)


Lesenswert?

Wie gesagt bin ich kaum mit Elektronik vertraut, was sich jetzt wohl 
dafür ändern muss. Ich würde jetzt alle LED an 1 Port (1. Zeile an Pin0, 
2. Zeile an Pin1 usw.) anschließen und dann jeden Pin anhand der Spalte 
schnell durchlaufen. So dürfte der Effekt theoretisch entstehen... und 
dann noch extra Strom draufgeben.

Wäre das Vorgehen Multiplexing?

von Peter (Gast)


Lesenswert?

hast du dir den Artikel durchgelesen? Dort steht alles drin.

von Karl H. (kbuchegg)


Lesenswert?

Einen anderen Zugang zum Multiplexen findest du hier

http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige

Stör dich nicht daran, dass hier 7-Led in einer speziellen Form 
angeordnet sind. Es sind trotzdem einfach nur 7 LED und davon 4 Stück. 
Ob die jetzt als 4 Stück 8-er Form oder als 4 Zeilen a 7 LED (bei dir 6 
LED) angeordnet sind ... das Prinzip ist haarscharf das gleiche.

von Luke S. (no3x)


Lesenswert?

Ja, aber verstehe ihn nur teilweise, wegen Elektronikkentnissen. Werd 
ein bisschen probieren müssen. Hoffe ich bekomm erstmal was zum 
leuchten, auch wenn es der µC ist. :)

Vielen Dank an euch.

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.