Kann man LEDs mit einem Multiplexer steuern?
ich habe es so im loop: digitalWrite(dataPin_10, LEDs*);*
```
*// +++ Leonardo: HAUPT TAB +++ //
#include <OneButton.h>
// Array für 3 achtfach Multiplexer (Buttons & LEDs)
byte butNummer[] = {20,21,22,23,24,25,26,27};
int LEDs[8] = {1,1,1,0,0,1,0,1};
int butWert = {0};
int Wert = {0};
int but = {0};
// selectPins Multiplexer
int multiBut_sA = 5; //select A
int multiBut_sB = 6; //select B
int multiBut_sC = 7; //select C
//dataPins Multiplexer
int dataPin_2 = 10; //But R2 1- 8
int dataPin_10 = 13; //LEDs R2 1- 8 (Buttons)
// 8 Buttons für OneButton zuweisen
OneButton buttons[8] = {
{ dataPin_2, true },
{ dataPin_2, true },
{ dataPin_2, true },
{ dataPin_2, true },
{ dataPin_2, true },
{ dataPin_2, true },
{ dataPin_2, true },
{ dataPin_2, true }
};
void setup() {
Serial.begin(31250);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
//Select-Pins 4051s
pinMode(multiBut_sA, OUTPUT);
pinMode(multiBut_sB, OUTPUT);
pinMode(multiBut_sC, OUTPUT);
pinMode(dataPin_2, INPUT_PULLUP);
pinMode(dataPin_10, OUTPUT);
}
void loop() {
for (int i = 0; i < 8; i++){
digitalWrite(multiBut_sA, HIGH && (i & B00000001));
digitalWrite(multiBut_sB, HIGH && (i & B00000010));
digitalWrite(multiBut_sC, HIGH && (i & B00000100));
butWert = digitalRead(dataPin_2);
but = butNummer[i];
buttons[i].attachClick(singleClick[i]);
buttons[i].attachDoubleClick(doubleClick[i]);
buttons[i].tick();
digitalWrite(dataPin_10, LEDs[i]);
}
}
// +++ Leonardo: singleClick TAB +++ //
void singleClick(){
Serial.println("");
Serial.println("");
Serial.println("");
Serial.println("singleClick() detected.");
Serial.println(but);
Serial.println(butWert);
}
// +++ Leonardo: doubleClick TAB +++ //
void doubleClick(){
Serial.println("");
Serial.println("");
Serial.println("");
Serial.println("doubleClick() detected.");
Serial.println(but);
Serial.println(butWert);
}*
```