Ich möchte einen interaktiven LED-Tisch bauen. Welche Optionen habe ich für einen Controller?

Ich habe ein paar Videos und Anleitungen gesehen, in denen Leute eine Matrix von LEDs erstellt haben, die von Fotodioden / Fotowiderständen in Couchtischen gesteuert werden, so dass, wenn Sie Ihre Hand über den Tisch legen oder einen Becher abstellen, die Lichter unter dem Objekt aufleuchten.

Ich möchte dies auf die nächste Ebene bringen, indem ich die Matrix mit einem Mikrocontroller steuere. Grund: Ich kann mit der Matrix noch mehr machen, vielleicht ein VU-Meter daraus machen oder coole Lichtshows machen.

Hier ist, was ich dachte:
Eine 9x5-Matrix von LEDs (blau) mit einer 8x4-Matrix von Sensoren (Fotowiderständen):Geben Sie hier die Bildbeschreibung ein

Ich habe ein paar PIC-Mikrocontroller mit 36 ​​I / O-Pins herumliegen und einige andere kleinere. Ich habe noch nie PIC MCs verwendet, also dachte ich, dies könnte ein gutes Projekt sein, um sie zu verwenden.

Haben Sie Empfehlungen für das Controller-Design? Vielleicht könnte ich 2 MCs verwenden, einen für die LEDs und einen für Sensoren? Vielleicht nur einen MC verwenden und Demultiplexer verwenden, um die vielen Sensoren einzuschalten?

Legen Sie es auf mich Jungs!

Welche PICs hast du?
Ich habe 2 PIC16F1519 und 2 kleinere 8-polige. Ich erinnere mich nicht an die Teilenummer
LEDs können auch als Lichtsensoren verwendet werden.
Interessanterweise können LEDs auch als Fotosensoren verwendet werden: blog.makezine.com/archive/2009/08/…
Shubham ist es möglich, dass Sie Ihren Schaltplan teilen, wenn Sie mit Ihrem Tisch fertig sind, weil ich plane, den interaktiven LED-Boden zu machen, aber ich bin mir nicht ganz sicher, wie ich vorgehen soll. Danke

Antworten (2)

Viel hängt von den verfügbaren PICs ab, insbesondere davon, wie viele und welche Art von E / A sie haben, denken Sie an analogen Multiplex-ADC.

Die gemeinsame Nutzung von Zeilen oder Spalten zwischen Sensoren und LEDs, wie Chris vorschlägt, wird häufig durchgeführt, wenn Sensoren wie die LEDs I/O digital sind, beispielsweise für eine Matrix von Drucktasten. Beim Mischen von Analog (Fotowiderstände) und Digital (LEDs) ist dies nicht so offensichtlich. Was Sie teilen könnten, sind die I/Os, die (De-)Multiplexer steuern, wenn Sie diese benötigen würden.

Ein separater Controller für Sensoren und LEDs, wie Sie vorschlagen, könnte eine gute Idee sein, da die zusätzlichen E / A einige Multiplexer überflüssig machen können. Sie benötigen auch jeweils ein paar Leitungen für die Kommunikation zwischen den beiden. Wie ich es verstehe, möchten Sie mit einer einfachen "Aktion!" Signal, aber wenn die Interaktion weiter fortgeschritten ist, möchten Sie vielleicht die Koordinaten des Bechers an den anderen Controller weitergeben, damit seine Aktionen von diesen Koordinaten abhängen können. Ein einfacher UART reicht aus, benötigt aber immer noch 2 E / A auf jedem Controller (auch wenn Sie nur in eine Richtung kommunizieren).

Bei den Sensoren denke ich an zwei CD4051-Multiplexer, einen für die Zeilen, den anderen für die Spalten einer Matrix. Wenn Ihr PIC einen analogen Multiplexer für seinen ADC hat, können Sie mit nur einem CD4051 auskommen, aber dieser verwendet ein paar mehr I/Os.
Wählen Sie einen der Fotowiderstände aus, um ihn in Reihe mit einem festen Widerstand zu schalten, um einen Spannungsteiler zu bilden, damit Sie den Wert des Fotowiderstands mit einem ADC bestimmen können.

Zum Ansteuern der LEDs können Sie einen 74HC138-Demultiplexer verwenden, um eine Zeile auszuwählen, und den aktiven Ausgang mit niedrigem Pegel verwenden, um einen PNP-Transistor anzusteuern, der den Strom zum Ansteuern einer Spalte liefert. Zum Ansteuern der Spalten können Sie direkt einen I/O-Port des PIC verwenden.
Wie gesagt, Sie können die Ansteuerleitungen für einen der analogen Multiplexer mit denen des 74HC138 teilen. Spart nur 3 E/A-Leitungen.

Ich habe 2 PIC16F1519. Der ADC ist etwas, worüber ich auch fragen wollte: Auf der Microchips-Website steht über den MC, dass er einen 28-Kanal-ADC hat. Was bedeutet das? Bedeutet dies, dass 28 E / A-Pins ein analoges Signal lesen können? microchip.com/wwwproducts/Devices.aspx?dDocName=en549053
Was die Stromversorgung angeht, habe ich ein altes Telefonladegerät, das ich als Stromversorgung verwende: 5,9 V bei 350 mA. Natürlich werde ich dies auf 5 V regeln, aber wird es ausreichen, um 2 Mikrocontroller mit Strom zu versorgen: Was ist, wenn ich 36 der 72 Pins einschalte, die 5 V bei 25 mA ausgeben (ich bin mir ziemlich sicher)? Wird das zu viel Strom ziehen oder die LEDs dimmen?
@Shubham - Ja, Sie können so viele analoge Eingänge haben. Wenn Sie sie alle als analoge Eingänge konfigurieren, haben Sie natürlich nur noch sehr wenige (wenn überhaupt) digitale I/O übrig. Ich würde vorschlagen, eine Reihe von analog konfigurierten Pins mit einem analogen Multiplexer zu kombinieren, wie ich in meiner Antwort erläutert habe.
@Shubham - 45 LEDs x 25 mA = 1,125 A, sodass das Ladegerät die LEDs nicht ansteuern kann. Beim Multiplexen werden sie normalerweise für kurze Zeit mit höheren Strömen betrieben, aber im Durchschnitt sind es immer noch 25 mA.
Könnten Sie den Schaltplan oder Schaltplan dieses Projekts unter Berücksichtigung der von Ihnen erwähnten Optionen veröffentlichen? Danke :)

Sie könnten die Verwendung von IO-Expandern, CPLDs oder ja, Sie könnten Slave-Mikrocontroller verwenden. Da ein solches Projekt nur in menschlichen Zeitrahmen reagieren muss, kann die interne Architektur eine lange Reihe von Dingen erfordern, die getan werden müssen, um ein für Menschen sichtbares Ergebnis zu erzielen.

Ihre Sensoren könnten leicht in einer Zeilen-Spalten-Matrix platziert werden, die Sie scannen würden.

Ihre LEDs können in dem Maße matriziert werden, dass Sie bereit sind, sie mit Impulsen statt kontinuierlich anzusteuern (was ziemlich häufig vorkommt).

Möglicherweise können Sie einen Satz (die Zeile oder Spalte) Linien zwischen den Sensoren und LEDs teilen.

Sie könnten sich eine Technik namens "Charlieplexing" ansehen, obwohl sie wie bei allem Kompromisse hat.