Ich weiß bereits, wie man die Anzahl der digitalen Pins eines Arduino mithilfe eines Multiplexers erweitert.
Ich möchte die Anzahl der analogen Eingangskanäle erhöhen, die ich habe. Eine Lösung besteht darin, einen weiteren Arduino als Slave hinzuzufügen.
Wie würde ich die Anzahl der analogen Eingangskanäle erhöhen? (Ich gehe davon aus, dass einige MUX- und ADCs beteiligt sind). Wenn es zu kompliziert ist, eine Antwort zu schreiben, ist auch eine allgemeine Beschreibung der Schaltung / des Codes in Ordnung.
Ich bin auch offen für Schildvorschläge, obwohl ich es vorziehen würde, wenn es eine nicht zu harte Hardwarelösung gäbe.
Antworten:
Wenn Sie bereits mit digitalen Multiplexer-Chips vertraut sind, sind Sie hier richtig! Sie können auch für analoge Signale verwendet werden.
http://playground.arduino.cc/Learning/4051
Die Grundvoraussetzung ist genau wie beim digitalen Signalmultiplex. Sie verwenden den 4051-Chip als "Spurwechsler" und lesen das Signal der Spur, auf die Sie den Chip umschalten lassen. Der 4051 verwendet 3 digitale Pins und 1 zusätzlichen analogen (oder digitalen) Pin am Arduino, um bis zu 8 Eingangsspuren zu erstellen. Einige Multiplexer sind verkettbar, sodass Sie ziemlich einfach 8 weitere Signale hinzufügen können, ohne sie vom Arduino selbst entfernen zu müssen.
Es ist genau wie bei der Technik, die Sie bereits für digitale Signale kennen. Schließen Sie einfach den Kanal, von dem Sie gelesen haben, an einen analogen anstatt an einen digitalen Pin an, durchlaufen Sie die Binärzustände und lesen Sie die analogen Werte.
Ich habe ein animiertes GIF für dich gemacht.
quelle
Es kann wichtig sein, sich daran zu erinnern, dass der ATmega-Chip des Arduino selbst einen analogen MUX verwendet. Die Uno-basierten (ATmega328) Chips haben nur einen einzigen ADC. Die 6 analogen Eingänge sind eigentlich ein MUX, der an diesen einen ADC angeschlossen wird.
Aus diesem Grund können Sie jeweils nur 1 Analogeingang lesen.
Wenn Sie analoge Eingänge erweitern, müssen Sie möglicherweise überlegen, wie viel Zeit für das gesamte MUX-Verfahren erforderlich ist und ob in Ihrer Anwendung zusätzliche externe ADCs erforderlich sind.
quelle
Bedenken Sie Folgendes: Fügen Sie ATtiny 85 mit serieller Kommunikation mit dem Arduino hinzu, es verwendet 2 Pins für Rx, Tx und Sie haben 3 weitere Pins, die als Analog verwendet werden können. Diesmal können Sie Ihr eigenes Protokoll entwickeln, der ATtiny kann den Algorithmus verarbeiten und die verarbeiteten Informationen an Arduino senden. Es ist auch sehr billig. Ich habe es selbst ausprobiert. Es ist eine schöne Architektur, denke ich.
Schönen Tag
quelle