Ja und zwar haben wir bei uns auf der Berufsschule schon seid längerem das Fach µController Technik und wir haben auch schon ne Grundbestückung fertig , jetzt sollte sich halt jeder mal nen Projekt überlegen und das dann versuchen umzusetzen und ich hatte halt die Idee ne Uhr mit Datums und Temperatur anzeige zu machen und halt um das Display verteilt 60 LEDs anzubringen so das jede sekunde eine mehr aufblinkt , ich habe nur leider noch keine Ahnung wie genau ich das am besten mache , hat wer vieleicht ein paar links die sich mti der ansteuerung von mehreren LEDs beschäftigen ? Ich habe bei google nichts passendes gefunden... MFG Lars
Ich kenn mich zwar mit dem Zeug auch nicht gut aus aber ich glaube mit ein paar hintereinandergehängten Schieberegistern währe es möglich immer eine LED mehr aufleuchten zu lassen.
das hört sich ja schonmal nach was brauchbarem an was mich etwas weiter bringt :) dankeschön ich werde mich mal überschieberegister informieren (hatte bis jetzt nichts mit ihnen zu tun ^^)
wie sind die 60 leds angeordnet? habe hier im forum irgendwo schonmal von jmd ne schaltung gesehen, der das komplett ohne kontroller gemacht hat. da kam das alles aus nem eeprom. du koenntest zb die zeit in nem sram speichern und dann von externer hardware (binaerzaehler etc) die leds ansteuern lassen.
Hi nimm doch einfach ein paar 74hc595 und einfach über SPI ausgeben.
Danke erstmal für die zahlreichen Antowrten , aber ich habe noch nie mit den sogenannten Schieberegistern gearbeitet, habt irh vieleicht nen paar Infos mehr dazu ? Währe auch cool wenn jemand ne Schaltung hätte die man sich mal als Beispiel nachbauen kann oder zumindest mal angucken kann um die Sache zu verstehen !!
brauch ich eigentlich für jede LED nen eigenen 1 kOhm Widerstand ? Ich habe mal als Anhang auch noch ne PDF mit dem Platinen Layout angehängt !!!
Hallo Lars. Wenn du es wirklich mit Schieberegistern machen willst, dann kannst du dir die Schaltung, die ich dazugelegt habe, mal anschauen. Ist mit 60 Leds und 60 Stück 470 Ohm Widerständen. Dazu brauchst du 8 Schieberegister... Es gibt auch welche, die 16 Ausgänge für die Leds haben...dann würdest du nur mehr 4 brauchen. Die bekommt man aber eher schwerer. Wenn du jede Led einzeln mit einem Widerstand versorgst, dann kannst du viel mehr muster generieren...Dann sind keine Grenzen mehr gesetzt. z.B. Du macht dir ein Lauflicht, das einmal in der Sekunde um deine Digitaluhr läuft, und dazu noch, das die Leds durchaus leuchten, wenn sie einmal angegangen sind... Wenn du das mit dem Mikrocontroller machen willst, dann am besten mit dem Hardware SPI. Da brauchst du dann nur noch 5 Leitungen zu deiner Schaltung.. Eine Clockleitung,Signalleitung,Output Enableleitung, Plus und minus. Wie du siehst, geht bei der Schaltung immer eine Leitung raus, und beim nächsten IC wieder rein... Du schiebst also ein byte rein z.B. 0b10000000 und die bits die sich im 74HC595 befinden, die schiebt er hinten wieder raus und in den nächsten ic rein... Am besten könntest du das mit Tabellen lösen... Du schiebst 8 bytes rein, und machst dann eine Sekunde pause und dann das nächste Muster... Hier ein Beispiel: Lauflicht: .db 128,0,0,0,0,0,0,0 .db 64,0,0,0,0,0,0,0 .db 32.0.0.0.0.0.0.0 .db 16.0.0.0.0.0.0.0 .db 8,0,0,0,0,0,0,0 .db 4,0,0,0,0,0,0,0 .db 2,0,0,0,0,0,0,0 .db 1,0,0,0,0,0,0,0 ;das waren die Daten vom ersten Schieberegister für die ersten 8 Leds .db 0,128,0,0,0,0,0,0 .db 0,64,0,0,0,0,0,0 .db 0,32.0.0.0.0.0.0 .db 0,16.0.0.0.0.0.0 .db 0,8,0,0,0,0,0,0 .db 0,4,0,0,0,0,0,0 .db 0,2,0,0,0,0,0,0 .db 0,1,0,0,0,0,0,0 ;das waren die Daten vom zweiten Schieberegister für die zweiten 8 Leds usw....... Du schiebst immer alle 8 bytes rein, und last sie dann eine Sekunde ausgeben.. Das gute ist, SPI ist so schnell, man erkennt nicht, wenn man die leds mit output enable ausschaltet, und dann die neuen Daten reinschiebt. Ich hoffe, ich konnte Dir ein bisschen weiterhelfen... Gruß Florian
Man könnte es auch als Matrix im Multiplex-Betrieb auslegen... (da gibt es auch fertige Chips u.a. von Maxim)
Die Idee mit dem Lauflicht ist garnicht mal schlecht vieleicht versuch ich es dann so zu lösen das man das per Taster druck umstellen kann also das man entweder mit Lauflicht oder halt ohne Lauflicht die Uhr betreiben kann , aber ich danke schonmal dafür die Schaltung von Florian hat mich wieder nen Stück weiter gerbacht :) und ich danke allen die mir geantwortet haben :) , also wenn ich noch ne frage haben sollte frag ich nochmal nach aber soweit war es das erstmal :), also thx @ all Gruß Lars
Der Multiplexbetrieb spart dir eine Menge ICs und Widerstände, egal ob mit speziel IC oder auch ohne. Ist aber ein wenig mehr Softwareaufwand.
Oder du machst die eine 8x8 Matrix und steuerst die mit Dem Controller ohne zusätzlichen Ic's an. Es wäre gut, wenn es low Current Leds wären, damit du deinen Atmel nicht zerstörst.. Folgendes Beispliel: eine 8x8 Matrix kennst du hoffe ich... Du Brauchst dabei 2 Ports: z.B. Port P1 und Port P3. So. Nun schließt du die ganzen Anoden am Port P1 und die ganzen Kathoden an Port P3 an. Das Porgramm sollte dann folgendermaßen aussehen: lade Register 2 mit dem Wert 0b00000001 lade Register 3 mit dem Wert 0b11111110 gib Register 2 an Port P1 und Register 3 an Port P3 aus... So,die erste Led leuchtet... call pause ;eine Sekunde Pause jetzt mach eine Schleife: schleife: lade register 2 in den accu rolle den accu einmal nach links (rl a) lade den accu wieder in register 2 gib accu an Port P1 aus vergleiche accu mit wert 0b00000001 wenn gleich, dann springe zu schleife 2 call pause<--- Mach eine Sekunde Pause jmp schleife schleife2: lade register 3 in den accu rolle den accu einmal nach links (rl a) lade den accu wieder in Register 3 gib accu an Port P3 aus call pause jmp schleife pause:...1 Sekunde pause ret jmp schleife Meine Assemblerbefehle für die '51 Serie sind nichtmehr die besten. Ich wollte dir auch kein Programm schreiben, sondern nur eine Aufgabe für dich, wie du es eventuell realisieren könntest. Da du ja in der Schule Assembler lernst, dürfte es kein Problem für dich sein. Gruß Florian Ach ja, ich würde nie mehr als eine Led so ansteuern, da ich nicht weiß, ob der Controller mehrere verträgt..
Hallo Lars, ich würde nen Max7219 bzw. Max7221 nehmen. Mit dem kann man 64 Led's ansteuern. Gruß Thomas
@thomas: aber das multiplex geflacker macht es für emv nicht gerade einfacher (auch wenn das nicht von relevanz ist) ausserdem ist der maxim ic viel zu teuer. da kannst de auch nen mega16 nehmen, und dir so ne ansteuerung selber programmieren.
Hi, mein Vater hat mal eine Funkuhr auf diese Weise gebaut (60 LEDs für Sekunden und Minuten plus 12 LEDs für die Stunden). Da hat er sich ein 8x8 Matrix gebaut und an den Zeilen jeweils einen SN74HC138 (3 zu 8 Decoder) mit nachgeschaltetem Widerstand angeschlossen. Die Spalten hat er dann mit einem weiteren SN74HC138 und nachgeschaltetem Inverter mit Strom versorgt. So hat das ohne Probleme funktioniert und du brauchst vom Controller nur 6 Ausgänge. Dafür würde ich einen 8 Bit Port nehmen und dann im Low-Nibble die Zeilen und im High-Nibble die Spalten ausgeben. So kannst du es am einfachsten zerlegen (Swap bei den AVRs, swapf bei PICs) und zusammenfügen. Per Multiplex kannst du da auch jedes beliebige Muster anzeigen.
hi, wollte auch so ein uhr bauen, leider klappen die ersten versuche mit dem hc595 schon nicht. hier mein aufbau: (hc595 + atmega8) hc595: pin 8 (GND) : GND (ach was....) pin 16 (vcc) : 5 V pin 10 (sclr) : 5 V pin 13 (g) : GND pin 14 (SI) : pin 2 ( PD0 ) am mega8 pin 12 (RCK) : pin 4 ( PD2 ) am mega8 pin 11 (SCK) : pin 3 ( PD1 ) am mega8 an den ausgängen ( Qa - Qh ) LEDs mit vorwiderständen (200 ohm) gegen GND mein programm: 8x { bit für PD0 setzen (oder auch nicht, je nach gewünschtem schaltzustand) bit für PD1 setzen ( steigende flanke erzeugen ) PD1 zurück setzen } dann steigende flanke an PD2 habe die schaltung aus der c't (roboter projekt) übernommen und alles mögliche aus dem datenblatt versucht. leider hat nie was geklappt. hab auch die bauteile ausetauscht, aber das hats auch nicht gerichtet. wäre euch für eine anfänger-freundliche antwort (wann muss ich wo was an/aus schalten ;) ) sehr verbunden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.