AdmiralCrunch
Well-known member
Hi
I have wired some 10k potentiometers and slide-potentiometers (faders) to my mux-board. Now both, the pots and the faders make some "noise" (?) .. the SerialMonitor goes like:
beside that noise, every pot has a different starting point.. oO .. I mean, when I turn all to where 0 should be, on one pot it is 12, on other something else..
this can't be normal, can it?
These are my mux functions:
I have wired some 10k potentiometers and slide-potentiometers (faders) to my mux-board. Now both, the pots and the faders make some "noise" (?) .. the SerialMonitor goes like:
faderTrackVolume1 - 9
faderTrackVolume1 - 14
faderTrackVolume1 - 9
faderTrackVolume1 - 14
faderTrackVolume1 - 9
faderTrackVolume1 - 15
faderTrackVolume1 - 10
faderTrackVolume1 - 15
faderTrackVolume1 - 9
faderTrackVolume1 - 14
faderTrackVolume1 - 9
faderTrackVolume1 - 14
faderTrackVolume1 - 9
faderTrackVolume1 - 15
faderTrackVolume1 - 9
faderTrackVolume1 - 15
faderTrackVolume1 - 10
faderTrackVolume1 - 15
faderTrackVolume1 - 10
faderTrackVolume1 - 15
beside that noise, every pot has a different starting point.. oO .. I mean, when I turn all to where 0 should be, on one pot it is 12, on other something else..
this can't be normal, can it?
These are my mux functions:
Code:
void pollCtrl() {
for (int i = 0; i <= 15; i++) {
// count through MUX
digitalWrite(cfg.muxPinInh, HIGH);
cfg.MuxBit1 = bitRead(i, 0);
cfg.MuxBit2 = bitRead(i, 1);
cfg.MuxBit3 = bitRead(i, 2);
digitalWrite(cfg.muxPin1, cfg.MuxBit1);
digitalWrite(cfg.muxPin2, cfg.MuxBit2);
digitalWrite(cfg.muxPin3, cfg.MuxBit3);
digitalWrite(cfg.muxPinInh, LOW);
delayMicroseconds(40);
// 4051 pins 0-7 btnTrackSelect
if(i >= 0 && i <= 7) {
pollMuxDigital(i, "btnTrackSelect", cfg.btnTrackSelectPin);
}
// 4051 pins 8-15 faderTrackVolume
if(i >= 8 && i <= 15) {
pollMuxAnalog(i-8, "faderTrackVolume", cfg.faderTrackVolumePin); // these are my pots right now for debug, so don't be irritated by name "fader.."
}
}
}
/*
Polls 4051 with digital Input-Sources
*/
void pollMuxDigital(int i, String element, int digitalPin) {
btnTrackSelect[i].btnStatus = digitalRead(cfg.btnTrackSelectPin);
if (btnTrackSelect[i].btnStatus == HIGH && btnTrackSelect[i].btnStatusOld != btnTrackSelect[i].btnStatus) {
if(cfg.shiftStatus == true) {
// trackSelect()
Serial.print("-> TrackSelect(): "); Serial.print(i); Serial.println();
} else {
// muteTrack()
Serial.print("# MuteTrack(): "); Serial.print(i); Serial.println();
}
}
btnTrackSelect[i].btnStatusOld = btnTrackSelect[i].btnStatus;
}
/*
Polls 4051 with analog Input-Sources
*/
void pollMuxAnalog(int i, String elementName, int analogPin) {
// int h = analogRead(analogPin);
// faderTrackVolume[i].faderValue = 0.6 * faderTrackVolume[i].faderValue + 0.4 * map(h,0,1023,0,127); // smoothing
// faderTrackVolume[i].faderValue = map(analogRead(cfg.faderTrackVolumePin),0,1023,0,127);
faderTrackVolume[i].faderValue = analogRead(analogPin);
if( abs(faderTrackVolume[i].faderValue - faderTrackVolume[i].faderValueOld) > 4) {
Serial.print(elementName); Serial.print(i);
Serial.print(" - ");
Serial.print(faderTrackVolume[i].faderValue);
Serial.println("");
faderTrackVolume[i].faderValueOld = faderTrackVolume[i].faderValue;
}
}