Hallo, habe mir schon die Suche hier im Forum zu Hilfe genommen. Habe nur noch eine kleine Verständnisfrage zum Schieberegister 74HC595. Wenn ich eine LED Matrix wie hier : http://home.wanadoo.nl/electro1/avr/images/dotmat.gif aufbaue, dann nehm ich 2 Schieberegister. mit dem 1. steuere ich die Anoden an und mit dem 2. Schieberegister steuere ich die Kathoden über Transistoren gegen masse an. ist das richtig ? mfg Kay
hi, kann sein, ich hab da was reingeschrieben. ich habe aber nur was wegen der Ansteuerung gefragt. hier wollte ich was zur hardware fragen. mfg Kay
Hallo Kay, sollte so gehen. An die Vorwiderstände für die LEDs und die Basis wirst du ja gedacht haben. Immer nur einen Transistor durchschalten und das passende Muster auf die LEDs geben. Oryx
Hallo Oryx, also an die Vorwiderstände für die LEDs und die Basis habe ich gedacht :-) Wieso nur einen Transistor durchschalten ? wenn ich alle LEDs einschalten will, muss ich ja alle Transistoren durchschalten, damit alle Kathoden auf masse liegen und die Leds angehen oder ? mfg Kay
Hallo Kay, schalte alle Transistoren durch(also Pin 1, 3, 10, 7, 8). Jetzt schalte deinen Pin 4. Es werden wohl alle LEDs in der Reihe leuchten. Also die Reihen der Reihe nach durchschalten(wenn Pin 10 auf GND), den Pin 4 einschalten. Dann leuchtet die im Bild angegebene LED. Deshalb heist das Ding auch LED-Matrix. Oryx
Hi Oryx, genauso wollte ich das auch machen. hab mich vielleicht etwas falsch ausgedrückt. trotzdem danke. weißt Du zufällig, wie ich das ding mit bascom ansteuern kann ????? bräuchte da dringend hilfe mfg Kay
Über die Ansteuerung brauchst du dir vorerstkeine Sorgen machen, mit den Schieberegistern ist die Schaltung nicht realisierbar. Die HC595 können maximal 7mA liefern. In den Matrixen sind meist LEDs mit Inenn=20mA drin. Durch das zeitliche Multiplexen kommst du auf einen Dutycycle von maximal 20% (wenn du nur eine Stelle ansteuern willst, bei drei oder vier Ziffern wirds noch schlechter). Somit bleiben bei der LED ca. 3,5mA über (etwas salopp formuliert ;-) und die wird wahrscheinlich nur noch glimmen. grüsse leo9
hallo leo9, ich benutze Low Current LEDs und benutze an den ausgängen des 74HC595 einen Treiber namens ULN2803. müsste dann doch funktionieren oder ? mfg Kay
Hallo Kay, die Transis verwendest du von den Kathoden gegen Masse, dort sind sie absolut notwendig, da ja dort der 7-fache LED-Strom auftreten kann (es könnten ja alle Punkte einer Spalte ein sein). Die Anoden werden direkt aus den Schieberegistern gespeist? Die effektive Helligkeit deiner LEDs kannst du nur ausprobieren, dimensioniere den Vorwiderstand aber auf jedenfall auf max. 7mA. Wenn du nur eine Stelle ansteuerst bleibt pro LED eben ein effektiver Strom von 7/5 = 1,4mA über (in meiner oberen Berechnung mit 3,5mA hab ich irgendwie falsch gedacht). Ob die Low-Current LED mit dem quasi halben Strom ausreichend hell leuchtet kannst du nur ausprobieren. Eventuell wäre auch eine Lösung die Anoden direkt an den uP anzuschließen. Die meisten AVRs können gut 20mA. Wenn du detailierte Fragen bezüglcih Ansteuerung hast kannst du dich gerne melden, ich hab vor kurzem ein ähnliches Projekt mit Mega 8 und Schieberegistern in Bascom realisiert. (Bin aber mittlerweile zu c konvertiert, weil dort einfach der effektivste Code rauskommt). grüsse leo9
Hi, bei http://www.semiconductors.philips.com/pip/74HCT595.html laut Philips Datenblatt Seite 8: Io +- 35mA VCC or GND current +- 70 mA Da jeder Ausgang nur eine LED treiben muss, sehe ich da kein Problem. Die 9mA sind nicht ganz abwegig, wenn es auf die Schaltzeiten ankommt. Bei den Leuchtdioden sind ein paar nSek. aber wohl egal. Oryx
@oryx, leider steht aber keine Ausgangsspannung für diesen Strom dabei, auf Seite 9 siehst du dass bereits bei 4mA bis 700mV am Schalttransistor abfallen. Bei 35mA sieht der Wert sicher noch schlechter aus, leider fehlen die entsprechenden Diagramme im Datenblatt. Laut der Übersicht auf deinem link kann der HC übrigends etwas mehr Strom als der HCT. Sollange Kai sich nicht äußert, wie viele Stellen er ansteuern will, kann man über den Duty-Cycle eh nur spekulieren und die Effektivität der LEDs spielt auch noch mit. Alles in allem kann die Schaltung ausreichen um eine entsprechende Helligkeit zu erreichen, wenns seriös sein soll würde ich entweder Transis oder stärkere Treiber einsetzen. grüsse leo9
Hallo Leo9, wenn ich die Anoden direkt an den AVR schalte, dann brauch ich bei ca. 520 LEDs ( zusammgeschaltet zu ner Matrix ) 26 Portpins. das ist e bissl viel. deswegen will ich ja das Schieberegister. kann ich denn nicht hinter jedes Schieberegister einen ULN2803 (500mA max) schalten ? müsste doch auch gehen. Ich will insgesamt 576 Leds zu ner Matrix zusammenschalten. also 24*24. dafür brauche ich 6 Schieberegister. von den Portpins gehe ich zu den ersten 3 Schieberegistern, von dort über 3 ULN2803 an die Anoden. Die Kathoden schalte ich über die anderen 3 Schieberegister und Transistoren gegen masse. So stell ich mir das vor. Bitte um Berichtigung :-)) Jetzt weiß ich halt nur nicht, wie ich das mit Bascom realisieren soll ? Da wäre ich dankbar wenn du mir vielleicht nen codebeispiel für 1 Schieberegister geben könntest. damit könnte ich experimentiern und dann selbst weitermachen. danke gruß Kay
Die ULN2803 sind npn-Arrays, d.h. sie können "irgendwas" gegen Masse Schalten - in diesem Fall die Kathoden. Von V+ zu den Anoden brauchst du aber pnp-Transisitoren. Die sind als array praktisch nicht zu bekommen und wenn dann nur zwei oder drei pro Gehäuse, da würde ich Einzeltransistoren verwenden. Auch würde ich den ULN2804 gegen ULN2004 ersetzen, hat zwar nur 7 Transistoren ist dafür preisgünstiger und leichter zu bekommen. Ob man bei 24 Spalten noch eine vernünftige Helligkeit von den LEDs bekommt ist fraglich, allgemein spricht man von 10% Duty-Cycle. Ich würde an deiner Stelle mal eine Schaltung aufbauen mit der du die LEDs mit unterschiedlichen Signalen versorgen kannst (Dauerein, 10% und 4% (enstpricht 25 Spalten) und unterschiedliche Vorwiderstände einsetzt. Wenn du mal den notwendigen Strom kennst, können wir die Schaltung entsprechend auslegen. grüsse leo9
Hallo Leo9, ich werde nächste woche wahrscheinlich die 576 LEDs bekommen. werde sie dann zu ner Matrix schalten. Dann geh ich hin und schalte ich pnp transistoren hinter die 3 Schieberegister für die Anoden und npn transistoren für die Kathoden. dann dürfte ich doch keine probleme mehr bekommen. Aber wie gesagt, ich fange mal klein an und bau mal erst 1 Schieberegister mit bascom ansteuern. bitte helf mir da auch nochmal. ich komme mit dem DataSheet vom 595N net klar danke gruß Kay
ich würde die Matrix und die Transistoren noch nicht zusammenlöten, du kennst die notwendige Dimensionierung noch nicht. Test erst bis zu wie "wenig" Duty-Cycle du deine LEDs ansteuern kannst um noch ausreichende Helligkeit zu erhalten. Danach kannst du festlegen wieviele Spalten deine Matrix haben darf und davon sind die Transistoren abhängig, pnp werden wohl Wald und Wiesen Typen sein, aber bei den Spaltentreibern sehe ich Probleme. Sollten die 4% reichen wäre das ein theoretischer LED-Strom von 3mA/4%*100% = 75mA für die gleiche Leistung, das wird die LED nicht aushalten, also nehmen wir mal die Hälfte als Pulsstrom durch eine LED an. Wenn alle Spalten leuchten muß der Spaltentransi 24*37mA=740mA aushalten, das wird der ULN nicht lange aushalten. Senkst du jetzt den Spaltenstrom auf 500mA (und hast damit keine Reserve in der Dimensionierung) bekommt eine einzelne LED nur gute 20mA und das Stromäquvalent für Dauerein liegt bei 0,8mA (20mA/100*4) und damit wird vermutlich auch eine LOW-Current nicht mal glimmen. Die Ansteuerung steht doch eh im Datenblatt: Initialisierung: MR auf Low, warten MR auf High OE auf Low Shift auf Low Strobe auf Low DS auf Low wenn du nun ein byte ausgeben willst: for i = 1 to 8 if (byte and 1) = 1 then DS = High else DS = Low end if Shift = High Shift = Low byte = byte / 2 // um ein bit nach rechts schieben next i Strobe = High strobe = Low grüsse leo9
Hi leo9, sorry, das ich dich schon wieder nerve, aber ich komme mit dem Code nicht klar. Wie müsste der Aussehen, damit am Schieberegister folgender Zustand ist : 10101010 ? ich werde Dich dann auch in Ruhe lassen :-) danke Kay
Kay, schau dir mal die Application note AN102 auf http://www.mcselec.com/applicat.htm an dort wird findest du Basic Source für die 595 Ansteuerung mit BASCOM Wolf
Hi, bin schon wieder hier. ich habe mir mal die *.bas von Mcselec gezogen. Aber ich komme damit net klar.da wird die serielle genutzt um die schieberegister anzusteuern. und dann ist die Doku in Englisch. Ist net ganz mein Fall. aber da werde ich durchmüssen. Wenn vielleicht sich jemand mit Basom und Schieberegistern auskennt und dann noch Zeit hat, mir etwas beizubringen, dann würde ich mich freuen, wenn er sich melden würde. danke Kay
Hi, wo ist den dein Problem bei dem Beispielsprg? Ich hatte mal hier im Forum eine LED MATRIX mit zwei Schieberegistern 74HC595 und Treibern gestellt(Hardwareschematic). Beim Source koennte ich dir ein bischen unter die arme greifen. Ich kann aber nur helfen wenn du konkrete Fragen stellst. Mfg Dirk
Hallo Kay, das hab ich doch schon weiter oben erläutert: byte = &b10101010 wenn der 1-er auf Q7 raus soll, mußt du bei der Abfrage Bit 7 prüfen (if byte and 128 = 128); für MR, OE, Shift, Strobe und DS mußt du die verwendeten Pins einsetzen und =High wird in basic zu set und =Low wird als reset geschrieben. Was isz daran noch unklar, die Syntax von Bascom wirst du ja hoffentlich können, ansonsten schließe ich mich Dirk an: auf konkrete Fragen wirst du sinnvolle Antworten bekommen, je allgemeiner desto weniger. grüsse leo9
Hi Dirk, habe es so aufgebaut wie es im Source steht. habe aber nur 1 Schieberegister. Wenn ich einschalte, dann leuchten alle LED´s. LED´s sind über einen 1kOhm Widerstand gegen VCC geschaltet. also ist der Zustand von Q0 bis Q7 = 0 !! es tut sich aber nichts anderes mfg Kay
hi, habe das Schieberegister so wie hier angeschlossen: http://wiki.mikrocontroller.net/Porterweiterung_mit_SPI.htm wenn ich mit ponyprog meinen Chip auslese oder beschreibe, dann tut sich mal wenigstens was an den LEDs. juhuuuuuu. jetzt müsste ich nur noch per SPI das Schieberegister steuern können. Aber da werde ich versuchen mich selbst durchzuschlagen. Will euch net weiter stören. mfg Kay
Kay, probiere mal den angehängten Bascom Source. 3 HC595 als Porterweiterung an Port D2, D3, D4 Wolf
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.