Hallo Ich würde gerne eine Led Matrix mit 10x10 Leds mit dem Raspberry Pi ansteuern. Habe Multiplex entdeckt und wollte wissen ob und wie es damit möglich wäre eine Led Matrix anzusteuern? Ich habe dieses Youtube-Video gefunden: http://www.youtube.com/watch?feature=player_detailpage&v=E1ahqpRWH0A#t=59 Auch diese Seite habe ich gefunden: http://www.tacticalcode.de/2013/01/led-matrix-grundlagen-mit-multiplexing.html Das wären Beispiele. Allerdings weiß ich nicht, ob es beim Raspberry Pi möglich ist die GND Pins ein- und auszuschalten. Gibt es noch andere Möglichkeiten?
Ground-Pins ein-/ausschalten? Dafür verwendet man normale GPIO-Pins. Wenn ich mich recht erinnere hat der Raspberry bis zu 17 GPIOs. Damit ist ein Matrixbetrieb (theoretisch) schonmal ohne weiterer Hardware möglich. Allerdings muss der maximale Strom der Pins beachtet werden. Der Raspberry ist kein Echtzeitsystem. Wie sich das auf die Signalerzeugung für eine LED-Matrix auswirkt kann ich nicht sagen. Könnte aber Probleme machen.
Hallo, warum nicht einfacher? - PCF 8575 16bit I/O Expander I2C - MAX 7219 64 einzel LEDs - MAX 6955 ... Die brauchen den Strom nicht vom Pi, sondern werden separat versorgt. Somit geht der Pi auch nicht so schnell kaputt. Grüße aus Berlin
Matze schrieb: > Dafür verwendet man normale GPIO-Pins. Wenn ich mich recht erinnere hat > der Raspberry bis zu 17 GPIOs. Damit ist ein Matrixbetrieb (theoretisch) > schonmal ohne weiterer Hardware möglich. Allerdings muss der maximale > Strom der Pins beachtet werden. 10x10 mit 17 IO Pins ??
Die mangelnde Echtzeitfähigkeit des RPI wird dir einen Strich durch die Rechnung machen. Nimm ein paar Treiber die das Multiplexen für dich erledigen. Sowas wie ein MAX7219
Ich denke ich werde einfach soviele i2c io expander anschließen, dass ich jede Led einzeln ansteuern kann. Vielen Dank für die schnelle Hilfe!!
Roman Brock schrieb: > Ich denke ich werde einfach soviele i2c io expander anschließen, dass > ich jede Led einzeln ansteuern kann. > Vielen Dank für die schnelle Hilfe!! Dann beachte die maximalen Ströme der Expander, vielleicht schaffen die es nicht jede LED mit 20 mA zu versorgen. Außerdem vergiss die Vorwiderstände nicht.
Ich hab vor kurzem 2 SAA1064 von NXP verbaut: http://www.reichelt.de/ICs-NE-STV-/SAA-1064/3/index.html?&ACTION=3&LA=446&ARTICLE=15778&GROUPID=2915&artnr=SAA+1064 Die sind eigentlich zum Steuern von Siebensegmentanzeigen über I2C gedacht, aber da stecken ja auch nur LEDs drin. Pro Baustein hast du dann 16 Konstantstromsenken, an die du die LEDs direkt anschließen kannst. Wenn du noch 2 Transistoren pro Baustein investierst, kann der Bautstein automatisch Multiplexen und so 32 LEDs ansteuern. Für deine 10x10 LEDs gibst du dich also entweder mit 96 LEDs zufrieden (3 Bausteine) oder 4 Bausteine und hast dann 128 Konstantstromsenken, also 28 Reserve. Du kannst dann auch noch für jeden Baustein den Stromwert über I2C einstellen, bis 21mA sind drin. Ich glaube mit denen bist du am besten bedient. Sind nicht vom Preis noch erträglich, einfach anzusteuern, und dein Real-Time-Problem hast du auch nicht mehr. BTW: beim Bestellen passende Widerstände nicht vergessen, denn du musst, um den Bausteinen verschiedene Adressen zu geben, mit einem Spannungsteiler verschiedene Spannungen an einen Pin führen. Siehe dazu Datenblatt Seite 5 unter dem Kasten.
Danke für den Tipp. Ich glaube ich werds so machen. Ein Problem gibt es aber noch. Ich kenne mich noch nicht so recht mit i2c aus. Ich habe einige Tutorials gefunden, allerdings weiß ich nicht, wie ich drei i2c bausteine an den Raspbery Pi anschließen kann. Könnte mir das noch jemand erklären?
Das hier plus die nächsten beiden Beiträge sollten für dich interessant sein: http://www.roboternetz.de/community/threads/57091-Raspberry-Pi-ARM-Linux-Computer-f%C3%BCr-28-Euro/page6?p=550522#post550522 Den Pegelwandler kannst du so übernehmen (der Raspi hat 3V3-Pegel und die LED-Treiber arbeiten mit 5V) Dann kommt ja die Frage und in meiner Antwort darauf schreibe ich ja von dem I2C-Treiber. Ich glaube, dass man das inzwischen nicht mehr braucht, sondern out-of-the-box funktioniert. Sicher bin ich mir aber nicht.. In dem Codebeispiel gehts darum, einen Roboter via I2C zu steuern, aber das Prinzip ist ganz einfach und du musst nur: - die #define raushauen, brauchst du ja nicht - bei "slave_addr = 0x05;" die Adresse des Bausteins, den du gerade ansprechen möchtest eintragen - bei "char buffer[] = {0, CMD_MOVE_AT_SPEED, 30, 30};" die Daten eintragen die du senden möchtest Das sollte für erste Tests schon hinhauen.
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.