Ich muss die analogen Werte von bis zu 50 analogen Lichtreflexionssensoren lesen, die verwendet werden, um die Entfernung zu einem bestimmten Objekt mit einem Arduino-kompatiblen Mikrocontroller zu bestimmen, wie zum Beispiel:
Aber wenn ich über meine Idee nachdenke, kommen mir einige Fragen, die ich mir nicht wirklich beantworten kann:
Meine erste Idee war, mehrere ATSAMD21G18 zu verwenden, um ein Bündel von 6 analogen Geräten zu lesen. Aber das würde dazu führen, dass man mindestens 9 ATSAMD21G18 hat und diese mit SPI oder I2C verbinden muss.
Also dachte ich daran, stattdessen mehrere analoge Multiplexer/Demultiplexer wie den 4067 zu verwenden. Selbst dies würde in mehreren Einheiten des 4067 enden, aber ich könnte einen einzelnen Arduino Due / Zero verwenden.
Meine Bedenken sind jedoch, dass der 4067 die analogen Eingänge für meine Bedürfnisse nicht schnell genug umschaltet. Ich würde wirklich gerne all diese analogen Werte so schnell wie möglich lesen. Wie schnell wäre ein 4067 in dieser Anwendung?
Und auch. Bei Verwendung des 4067 muss ich digitale I/Os verwenden, um den Eingangskanal des 4067 einzustellen. Kann ich sie parallel verdrahten, sodass ich die digitalen I/Os mit jedem einzelnen 4067 teilen könnte?
Und wirkt sich die Länge der Schaltung auch auf die Messwerte aus, wenn Sie mit Abständen zwischen dem 4067 und dem Arduino von etwa 50 cm umgehen müssen?
Generell gilt: Multiplex digital, nicht analog. Irgendwo irgendwo wirst du 50 separate Signale haben. Ob diese in eine Reihe analoger Muxes und dann in eine kleine Anzahl von A/Ds oder in eine Reihe von A/Ds und eine kleine Anzahl digitaler Ports fließen, ändert nicht viel an der Komplexität.
Sie müssen Ihre Prioritäten richtig setzen. Sie tun diese Art von Dingen nicht, indem Sie zuerst den Mikrocontroller auswählen und dann herausfinden, wie Sie Dinge anpacken, um trotz des Mikros schließlich das zu tun, was Sie wollen. Sie beginnen mit den Anforderungen und wählen dann ein geeignetes Mikro aus.
Ihre Logik, einen digitalen Muxing-Ansatz abzulehnen, macht keinen Sinn:
Aber das würde dazu führen, dass man mindestens 9 ATSAMD21G18 hat und diese mit SPI oder I2C verbinden muss.
Ähm, OK, aber inwiefern ist das ein Problem? Auch hier werden Sie irgendwie 50 separate Pins haben. Diese Eingänge für eine Reihe von 8-Kanal- (oder was auch immer) A/Ds zu haben, klingt nach einem vernünftigen Ansatz. Dann klingt die Verwendung von SPI zum Muxen der Daten von diesen Chips ziemlich vernünftig. Abgesehen davon, dass Sie dies verwerfen, haben Sie eigentlich keinen Grund angegeben, warum dies kein vernünftiger Ansatz ist.
alex.forencich
Simon Kemper
Andi aka
Wouter van Ooijen
Simon Kemper
user_1818839
Wouter van Ooijen
Simon Kemper