Verriegelungsschaltung, die den Ein-Zustand für verschiedene Ausgänge verzögert

Erstens bin ich sehr unerfahren im Entwerfen von Schaltungen wie dieser, also entschuldige ich mich, wenn dies trivial erscheint. Ich versuche im Grunde, einen Startsequenzeffekt zu erstellen, bei dem LEDs in einer verzögerten Reihenfolge einschalten. Hier ist der Effekt, den ich erstellen möchte.

  • Drücken Sie den Momentschalter einmal
  • Warten Sie ca. 2 Sekunden und schalten Sie dann einige LEDs ein (eingeschaltet)
  • Warten Sie weitere ca. 2 Sekunden und schalten Sie dann ein paar weitere LEDs ein (eingeschaltet)
  • 2-4 zusätzliche Einschaltereignisse, um LEDs nacheinander einzuschalten
  • Drücken Sie den Momentschalter erneut, um alle LEDs auszuschalten

Ich werde entweder 9V oder 12V laufen lassen. Ich hätte lieber n-verzögerte Schalter (mindestens 5 oder 6), die mit Verzögerungen zwischen den einzelnen Ereignissen (0,5 Sek. und 5 Sek.) verkettet sind, um den Einschaltsequenzeffekt zu erzeugen, nach dem ich suche. Die Verzögerung zwischen zwei Ereignissen ist konstant, aber es wäre optimal, eine gewisse Kontrolle über die Verzögerungen einzeln zu haben. Beispielsweise kann die Verzögerung zwischen 1 und 2 2 Sekunden betragen, aber die Verzögerung zwischen 2 und 3 kann 1,2 Sekunden betragen. Das spezifische Timing erfordert ein wenig Experimentieren. Jedes der On-Ereignisse hat etwa 4-6 LEDs, sodass an jedem einzelnen Ausgang nicht viel Strom benötigt wird.

Scheint, als sollten ein paar 555-Timer es schaffen, aber ich habe mich ein bisschen verlaufen, als ich versucht habe, das zu lösen. Jede Hilfe wird sehr geschätzt.

Dies wäre mit einem kleinen 8-Bit-Mikrocontroller wie einem PIC16 trivial. Gibt es einen Grund, warum Sie diesen Weg nicht gehen können?
Eine ausgezeichnete Idee ... Obwohl ich noch nie einen PIC16 verwendet habe. Irgendwelche Empfehlungen, um mehr über ihre Verwendung zu erfahren? Oder können Sie mich in die richtige Richtung weisen, um es für so etwas zu verwenden?
Ich bin mir nicht ganz sicher, wie ich dem momentanen Druckschalter die bedingte Fähigkeit geben soll, das System zu starten oder zurückzusetzen, aber wenn Sie sich in Google umsehen, finden Sie möglicherweise das, wonach Sie beim Erstellen eines benutzerdefinierten Binärzählers suchen. Sie müssen nur die Wahrheitstabelle aufschreiben, lösen und in Flip-Flops umsetzen. Beachten Sie, dass dies wahrscheinlich einen ziemlich großen Fußabdruck haben wird; Sie sollten sich wahrscheinlich an andere Empfehlungen halten, die Mikrocontroller-Designs betreffen. +1 für pic16 und Arduino.
@josh Ich habe meinen PIC16-Vorschlag zu einer Antwort erweitert.

Antworten (2)

Um die Anzahl der Teile auf ein Minimum zu beschränken, schlage ich vor, einen kleinen 8-Bit-Mikrocontroller wie den PIC16 in einer der neueren Varianten, insbesondere den PIC16F1788, zu verwenden. Einige seiner Spezifikationen sind:

28 KB flash memory, 2 KB RAM (much larger than earlier PIC16s)
runs on 2.3v to 5v
comes in a 28 pin DIP for prototyping, and surface mount for PCB's
can source or sink up to 25mA on each output pin (max, keep well below that)
internal oscillator, so you don't need to wire in a crustal
costs $2.66 in single quantities

Aufgrund des internen Oszillators und der Möglichkeit, die LEDs direkt anzusteuern (keine Treibertransistoren), benötigen Sie lediglich eine Stromversorgung, eine Bypass-Kappe, ein Mikro und LEDs sowie jeweils Widerstände.

Ich würde das Mikro mit 5 V betreiben und dieselbe Schiene für meine LEDs verwenden. Wenn Sie Ihre LEDs mit (z. B.) 15 mA betreiben, können Sie das Anodenende über einen Widerstand mit 5 V und das Kathodenende direkt mit einem der PIC-E / A-Pins verbinden. Sie konfigurieren den Pin dann als "Open-Drain" und setzen ihn auf 0, um die LED einzuschalten.

Geben Sie hier die Bildbeschreibung ein

Sie werden auch viele Schaltpläne sehen, in denen die LEDs genau umgekehrt verdrahtet sind; das Kathodenende ist mit Masse verbunden, und das Anodenende ist über einen Widerstand mit einem I/O-Stift verbunden. In diesem Fall ist der I/O-Pin als Gegentakt konfiguriert und liefert Strom (I/O-Pin auf 1 gesetzt, um die LED einzuschalten). Beide Konfigurationen funktionieren genauso gut.

Hier einige Links zum Download etc.:

PIC16F1788-Funktionen

PIC16F1788 Datenblatt

PIC16F1788 Digi-Key-Seite

MPLAB X IDE herunterladen

MPLAB XC8 kostenloser C-Compiler-Download

Sie müssen den PicKit III-Programmierer kaufen, um den Code auf das Mikro herunterzuladen und den Flash zu programmieren. Sie können eine von Digi-Key erhalten .

Hier ist ein Tutorial zum Einrichten der MPLAB X IDE und des XC8-Compilers. Und hier ist ein weiteres Tutorial zur Verwendung der PicKit3- und MPLABx-Programmierung. Es ist für einen PIC18 anstelle eines PIC16, aber das meiste davon sollte anwendbar sein.

Zum Schluss noch ein schönes Beispiel für blinkende LEDs mit dem XC8-Compiler.

Hier ist einer, der einige LEDs steuert,

Ihre beste Wette ist wahrscheinlich, ein Arduino zu bekommen. Abhängig von Ihren gesamten LEDs (Stromaufnahme) können Sie diese entweder direkt mit Widerständen anschließen oder eine externe Stromversorgung mit Transistoren verwenden. Viel Glück.

Ich habe so etwas wie einen Arduino oder Raspberry Pi in Betracht gezogen, aber das ist eine Menge Overhead für etwas so Triviales. Und ich möchte den Platzbedarf minimal halten, da Platz in diesem Fall eine Prämie ist.
@josh Ein Arduino-Nano-kompatibles Board könnte eine Option sein, mit 1,85 cm x 4,3 cm und 5 bis 10 US-Dollar bei ebay? Sie benötigen keinen separaten Programmierer, was eine große Kostenersparnis sein kann, wenn Sie nur ein Gerät herstellen.