Mehrere 4-stellige 7-Segment-Anzeigen mit Arduino

Ich habe 3, 4-stellige 7-Segment-Displays von Adafruit , und die mitgelieferten Dokumente/Bibliotheken sagen, dass ich das Display an die Pins A4 und A5 anschließen sollte. Ich habe jedoch drei der Displays, also suche ich nach einer Möglichkeit, eines an die Pins A1 und A2, ein anderes an A2 und A3 und das dritte an A4 und A5 anzuschließen. Ich habe die enthaltenen Dokumente/ Bibliotheken durchgesehen , aber ich kann anscheinend nicht herausfinden, was ich an meinem Code oder den Bibliotheken ändern soll.

Hier ist der Code, den ich verwende, um sie zu initialisieren:

Adafruit_7segment matrix = Adafruit_7segment();

Ich hoffe auf eine Lösung in Form von:

    Adafruit_7segment matrix1 = Adafruit_7segment(1); 
    Adafruit_7segment matrix2 = Adafruit_7segment(2);

oder etwas ähnliches.

Ich habe unten mehr bearbeitet, um zu versuchen, Ihnen zu helfen, aber ich kenne C++ nicht!

Antworten (1)

Ich sehe, dass dies einen I2C-Treiber hat! Sie sollten nicht jedes Display auf 2 I/O-Pins routen und drei separate I2C-Busse einrichten müssen. Es gibt einen Jumper, um die Adresse auf der Platine zu ändern. Verketten Sie einfach die SDA- und SCL-Leitungen (stellen Sie sicher, dass irgendwo ein Pull-up-Widerstand vorhanden ist, wenn sie nicht bereits auf den Platinen sind) und sprechen Sie mit jeder in Ihrem Code über ihre eindeutige Adresse. Möglicherweise müssen Sie diese Funktion bearbeiten, die Sie aufrufen, um eine Adresse als Argument zu übergeben - vielleicht kann ein Arduino-Benutzer gute Anweisungen dazu posten.

Um es etwas klarer zu machen, verwenden Sie den On-Board-Jumper, um jedem Display seine eigene eindeutige I2C-Adresse zu geben, und bearbeiten Sie die Funktion so, dass sie ein Adressargument enthält, das angibt, mit welchem ​​​​Display Sie sprechen.

UPDATE: http://forums.adafruit.com/viewtopic.php?f=47&t=29774

sehen Sie sich das Beispiel dort an. Ich spreche kein C ++, also werde ich mich hier wirklich in Verlegenheit bringen, um zu versuchen, Ihnen zu helfen, aber ich denke, irgendwo brauchen Sie

matrix1.begin(0x70);  // Start up the  LCD matrixes
matrix2.begin(0x71);

Die Hexadezimalzahlen ändern sich je nachdem, wie Sie Ihre Anzeigeadressen hardwaredefiniert haben.

Danke!. Das scheint der richtige Weg zu sein. Können Sie erklären, was ich an was anschließen soll. SDA1 zu Arduino, SCL1 zu SDA2 oder was auch immer. Danke!
Ich habe noch nie ein Arduino verwendet, aber SDA und SCL sind gebused. Einer der Arduino-Pins (entweder a4 oder a5, ich kann nicht sagen, welcher) geht an das Pad mit der Aufschrift "SCL" auf allen Platinen, und der andere Pin geht an das Pad mit der Aufschrift "SDA". Es sieht so aus, als wären bereits Pull-up-Widerstände vorhanden, was ein Problem sein könnte, da die parallele Kombination zu einem niedrigen Wert führen würde, aber dies wird wahrscheinlich kein Problem sein. Es sieht so aus, als würden die mit A0 bis A2 bezeichneten Pads verwendet, um die Adresse irgendwie einzustellen, von der die Dokumentation Ihnen erzählen wird