#include <Streaming.h>
Print &cout {Serial};
#include "CD4051.hpp"
//
// Variante mit eigenen Select-Pins pro IC
//
// Steuerpins für den Kanal pro IC
// constexpr byte selectPins[][3] {
// {2, 3, 4 },
// {5, 6, 7 },
// {8, 9, 10}
// };
// Drei IC Objekte erzeugen
// CD4051 muxIc[] {
// {selectPins[0], A2, 8}, // Steuerpins, Analogpin, Anzahl verwendete Kanäle
// {selectPins[1], A1, 8},
// {selectPins[2], A0, 6}
// };
//
// Variante mit gleichen Select-Pins für alle ICs
//
constexpr byte selectPins[] {2, 3, 4 };
// Drei IC Objekte erzeugen
CD4051 muxIc[] {
{selectPins, A2, 8}, // Steuerpins, Analogpin, Anzahl verwendete Kanäle
{selectPins, A1, 8},
{selectPins, A0, 6}
};
void setup() {
Serial.begin(115200);
for (auto &m : muxIc) { m.begin(); } // Intialisiere PinMode und Speicher
// Die Analogwerte sind natürlich Zufallszahlen
cout << "Daten auslesen und speichern:" << endl;
size_t icNr {0};
for (auto &m : muxIc) {
cout << "\nMuxIC Nr. : " << ++icNr << endl;
m.readData();
}
icNr = 0;
cout << "\nGelesene Daten aus dem Speicher zurücklesen:" << endl;
for (auto &m : muxIc) {
cout << "MuxIC Nr. : " << ++icNr << endl;
for (size_t i = 0; i < maxChannelsPerMux; ++i) {
cout << _WIDTH(m.getData(i), 4) << " ";
delay(500); // Nur damit die Ausgabe langsamer erfolgt. Muss eigentlich weg!
}
cout << endl;
}
icNr = 0;
for (auto &m : muxIc) {
cout << "\nLösche Daten MuxIC Nr. : " << ++icNr;
m.clearData();
delay(500); // Nur damit die Ausgabe langsamer erfolgt. Muss eigentlich weg!
}
icNr = 0;
cout << "\n\nDaten aus dem Speicher zurücklesen:" << endl;
for (auto &m : muxIc) {
cout << "MuxIC Nr. : " << ++icNr << endl;
for (size_t i = 0; i < maxChannelsPerMux; ++i) { cout << _WIDTH(m.getData(i), 4) << " "; }
cout << endl;
}
}
void loop() {}