komplizierte Blinkschaltung für LED realisieren

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Zusammen,

    ich stehe gerade vor einer für mich noch unlösbaren Aufgabe und hoffe hier Hilfe zu bekommen.

    Ich versuche eine Schaltung zu bauen mit der ich 20 LEDs ansteuern kann.
    Diese werden unterschiedlich gruppiert, so dass ich z.B. mit 6 und 7 Leds je ein Lauflicht realisieren will. 4 Leds sollen blinken und der Rest soll permanent leuchten.

    Das große Problem dabei ist dass ich in dem Gehäuse in dem das Ganze verbaut werden soll kaum Platz habe.

    Daher scheiden große Schaltungen aus.

    Ich dachte daran einen ATtiny Microcontroller zu verwenden, das sich dann die Anzahl der Elkos und Widerstände in Grenzen hält.

    Ich weiß aber nicht welchen ATtiny ich benötige um 20 LEDs zu steuern und ob ich mit einem Microcontroller auskomme oder ob ich mehrere, z.B. für jedes Lauflicht einen eigenen, muss.
    Am Liebsten wäre es mir alles über einen Microcontroller zu regeln.

    das Ganze soll dann wenn möglich mit Pythn softwareseitig gesteuert werden und Strom über den Raspberry beziehen.

    Es wäre sehr nett wenn mir jemand weiterhelfen könnte wie ich diese Schaltung realisieren kann.

    Besten Dank im Vorraus.

    Einmal editiert, zuletzt von Bladerunner (9. April 2015 um 10:58)

  • Naja wenn du insg. 20 LEDs hast und Gruppen mit 6 LEDs bilden willst kommst du auf eine krumme Zahl von 3,3333 Gruppen.... Das wird so also schon mal nix

    Wenn dann musst du 4 Gruppen á 5 LEDs haben um auf insg. 20 LEDs zu kommen ... Oder du hast deine Vorhaben falsch beschrieben.

    Dann willst du aber ein Lauflicht, also musst du trotzdem jede einzelne LED der jeweiligen Gruppe ansteuern können. Wenn da ein paar dauerhaft leuchten ist das nix Lauflicht

    Willst du jede LED einzeln ansprechen wirst du keinen 'normalen' ATtiny mehr nehmen können da der größte nur 18 I/O's besitzt, also 2 zu wenig - sondern musst auf den einzigen ATtiny mit > 18 Pins, nämlich den ATtiny48 bzw ATtiny88 setzen, der hat dann aber auch schon insg. 32 Pins wovon eben 28 I/O's wären. Was da zwischen gibts bei den ATtiny nicht. Es wäre also vermutlich besser z.B. einen ATmega8 zu nehmen, der hat dann auch doppelt so viel Flash (8 Vs. 4 kB) und 32 Pins wovon 23 I/O's wären.


    Allerdings stellt sich mir eine entscheidende Frage: Wieso ATtiny und Python :s
    Wieso machst du das nicht direkt über einen PI ohne microController?


    Also ich glaub du solltest erst mal einen Plan machen und nicht nur für uns ein detallierteres Konzept ausarbeiten, wie viele LEDs insg., wie viele Gruppen, jede LED der Gruppe einzeln ansteuern oder nur jede zweite Gruppe etc, Dimmen um den Übergang flüssiger wirken zu lassen? usw usw usw

    Und in die Überlegung mit einfließen sollte auch Wofür das letztlich dienen soll - denn es könnte ja sein das du dir das falsch oder zu umständlich überlegst aber für das Ziel auch ein einfacherer Weg möglich wäre - aber dazu können Wir zZt nix sagen da wir das genau Ziel nicht kennen.

  • Welche Rolle soll den der RPi bei diesem Projekt haben? Da es hier ja nicht um Geschwindigkeit geht, wäre eine Lösung per I2C Bus mit IO Port Expandern möglich. (z.B. PCF8575 16 IO Ports bzw. PCF8574 8 IO Ports ) Evtl. wirst Du noch einen Treiber für die LED's brauchen, was man aber vermeiden kann, wenn man Low-Current LED's verwendet und nicht alle LED's gleichzeitig ansteuert.

    Einmal editiert, zuletzt von Fliegenhals (8. April 2015 um 17:43)

  • Wie soll die Kommunikation zwischen Rpi und Attiny erfolgen? Der Attiny hat nicht sonderlich viele Schnittstellen. Da wirst du das ein oder andere vermutlich in Software lösen.

    Ansonsten ist der Aufbau sehr simple. Nehm 74hc595 oder tlc5917 Shift Register. Bei den tlcs hast du den Vorteil, dass du nur einen IRef Widerstand brauchst. Die Leds werden dann über die Konstantsstromquelle aus dem tlc59157 betrieben. Es gibt von Texas Instrument oder anderen Herstellern noch weitaus mehr 8 oder mehrBit Shiftregister.

    Je nach dem welchen Attiny du nimmst, wirst du die SPI Schnittstelle in Software lösen müssen, was aber mit etwas einlesen trivial ist. Das ganze ist auf mikrocontroller.net sehr gut beschrieben für AVR-GCC oder Assembler.

    Aber hier ist der Attiny komplett überflüssig. Du kannst am Rpi auch Schieberegister betreiben.

    https://github.com/mignev/shiftpi

  • Ok, vielen Dank schon mal für die Antworten, ich muss aber wohl etwas weiter ausholen.

    Es geht um ein Modellbauprojekt welches mehrere Servomotoren benutzt um Klappen zu Öffnen.
    Diese werden über den Raspi mittels I2C Schnittstelle und mehreren Adafruit Servo Boards angesteuert. Aus der einen Klappe fährt dann mittels DC Motor der über PWM geregelt wird und auch an einem Adafruit Board hängt ein Bauteil aus, das mehrere LEDs beherbergt.

    Diese werden folgendermaßen gruppiert.

    1. 6x LED rot als Lauflicht
    2. 7x LED weiß als Lauflicht
    3. 2x LED weiß permanent an
    4. 1x LED weiß blinkt schnell
    5. 3x LED grün gelb rot blinken langsam

    Ich möchte am Liebsten alle LEDs einzeln per Software, bevorzugt in python gecodet, ansteuern und Ihnen somit die gewünschten Eigenschaften mitgeben.

    Es kommen unterschiedliche Formen und Größen von LEDs zum Einsatz.

    Prinzipiell ist es mir egal welchen Microcontroller ich benutze, oder welches Bauteil generell. Das Einzige das sicher feststeht sind die LEDs.
    Bei allen anderen Bauteilen bin ich flexibel, so lange die Schaltung möglichst platzsparend zu löten ist, da das ausfahrbare Bauteil nicht viel Platz im Gehäuse hat.
    Es wären auch mehrere IC´s möglich wenn das einfacher zu realisiern wäre.

    Wenn das Ganze dann ncoh über die I2C Schnittestelle, also dann über die Adafruit Servo Boards versorgt werden könnte wäre das perfekt.

    Leider bin ich nicht besonders geschickt darin Schaltungen zu entwerfen, ich kann aber alles zusammenlöten wenn ich einen Schaltplan habe.

    Ich hoffe mein Vorhaben ist nun etwas klarer geworden und Ihr habt immer noch Lust mir zu helfen.

    Besten Dank im Vorraus.

    Einmal editiert, zuletzt von Bladerunner (9. April 2015 um 10:54)

  • Dann liste mal bitte deine Ledtypen auf, am besten mit Datenblatt und optional mit Link zur Artikelbeschreibung.

    Wie sieht das ganze mit dem Platz aus? Kommt für dich nur PDIP Gehäuse (Lochrastermontage) oder auch SMD in Frage?

    Das einfachste wäre HC595 an SPI zu nutzen. Zu I2C kann ich wenig zu den gängigen Expandern sagen, da sich diese nur auf fertigen Platinen befinden.

    Ich kann dir gleich noch einen Schaltplan anfertigen, habe im Netz gerade nichts passendes gefunden.

    So, Schaltung im Anhang, weitere Infos, wenn auch nicht für den Raspberry/Python (spielt aber beim Funktionsprinzip keine Rolle).

    Weitere Infos hier
    http://www.mikrocontroller.net/articles/AVR-T…Schieberegister

  • Danke Dir,

    was mir aber an dieser Schaltung nicht gefällt ist die hohe Anzahl an Widerständen.
    Dafür habe ich bei 19 LEDs keinen Platz.

    Ich hatte anfangs ja an sowas in der Art gedacht:

    xlauflicht_attiny13_8leds_v06_abgespeckt.gif.pagespeed.ic.gPDrGDC7HuM68aW-0N9c.png

    Hier habe ich nur einen Widerstand und einen Elko für 8 LEDs.
    Allerdings kann ich bei dieser Variante auch immer nur eine LED gleichzeitig leuchten lassen.

    Evtl muss ich mir für jedes Lauflicht so eine Schaltung bauen und dann die blinkenden LED über eine Dritte Schaltung verwalten.
    das könnte aber auch zu eng werden, daher meine Frage ach einem IC der alle 19 LEDs gleichzeitig verwalten kann, so dass ich dann softwareseitig meine LEDs gruppieren und steuern kann wie ich es benötige.

    Einmal editiert, zuletzt von Bladerunner (9. April 2015 um 13:09)

  • Wenn Du einen AVR wie in deinem Beispiel nehmen willst, hast Du aber mehrer Baustellen. ( Ansteuerung , AVR Programmierung und Hardware ) Für I2C gibt es auch diverse "exotische" Portexpander auch für 20 o. 24 Bit, da müsste man sicht aber erst intensiv in die Materie einarbeiten. Ich würde einen PCF8575 mit 16 IO Ports & einen PCF8574 mit 8 IO Ports verwenden, diese sind recht weit verbreitet und relativ einfach anzusteuern. Wenn es mit dem Platz eng wird könnte man ja SMD IC's und Widerstandsnetzwerke verwenden.

  • Hallo,

    ich hatte doch auch bereits geschrieben, es gibt auch Shiftregister mit integrierter Konstantstromsenke. Aber solange du nicht mit weiteren Infos zu den Leds und deinen Lötkenntnissen rausrückst, kann man da wenig helfen. Mit den TLC5916/TLC5917 hättest du schon einmal ICs, die 16 Pins haben und in PDIP verfügbar sind. Hier wird nur ein Widerstand zum einstellen des Stroms pro Konstantstromquelle benötigt. Deine Idee mit einem Widerstand im Lastteil ist murkst.

    Alternativ gibt es auch noch größere Shiftregister (nicht umbedingt der TCL5960, der etwas etwas komplexer in der Ansteuerung).

  • Hi,
    @Bladrunner: mir fällt da gerade was ein, was ich schon eine ganze Weile einbringen wollte: wenn Du die Schaltung mit dem einen Widerstand oder was ähnliches einsetzen solltest - ich fürchte, da kommst Du mit einem Standard 1/4 Watt Widerstand nicht aus ;)
    Ausserdem hast Du natürlich das Problem, dass verschiedenfarbige LEDs bei gleichem Widerstand unterschiedlich hell sind ...

    Wenn Du Angst hast, dass die Schaltung wegen der Widerstände zu gross wird: nimm SMD Widerstände auf eine evtl. doppelseitige Lochrasterplatine ... die lassen sich ganz einfach verarbeiten. Ich hab' zu diesem Thema -> hier <- mal was zusammengeschrieben.

    cu,
    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!