Ok. So I have soldered my PCB. After tests buttons and changing inputs wont work. Here is code:
//IR//
#include <IRremote.h>
#define irPin 11
IRrecv irrecv(irPin);
decode_results results;
//TABLICA LEDy I PRZYCISKI//
byte leds [8] = {9,10,8,31,14,30};
byte inputs [8] = {18,19,20,21,22,23};
byte i,j;
byte temp=0;
//PRZYCISKI//
#define OPT1sw 18
#define OPT2sw 19
#define OPT3sw 20
#define COAXsw 21
#define USBsw 22
#define BTsw 23
//LEDy//
#define OPT1led 9
#define OPT2led 10
#define OPT3led 8
#define COAXled 31
#define USBled 14
#define BTled 30
//RGB//
int redPin = 12;
int greenPin = 13;
int bluePin = 15;
//RGB//
int potPin_red = A7;
int potPin_green = A6;
int potPin_blue = A5;
//RGB//
int readValue_red;
int readValue_green;
int readValue_blue;
//RGB//
int writeValue_red;
int writeValue_green;
int writeValue_blue;
//TABLICA//
enum zrodloEnum {opt1, opt2, opt3, coax, usb, bt, zrodloCount};
enum outputEnum {IPS0, IPS1, ISOusb, MUXbt, MUXak, outputPinCount};
const byte IPS0Pin = 2;
const byte IPS1Pin = 3;
const byte ISOusbPin = 5;
const byte MUXbtPin = 7;
const byte MUXakPin = 8;
const byte OutputPins[outputPinCount] = {IPS0Pin, IPS1Pin, ISOusbPin, MUXbtPin, MUXakPin};
const boolean zrodla[zrodloCount][outputPinCount] =
{
{/*opt1*/ 0, 0, 0, 0, 1},
{/*opt2*/ 1, 0, 0, 0, 1},
{/*opt3*/ 0, 1, 0, 0, 1},
{/*coax*/ 1, 1, 0, 0, 1},
{/*usb*/ 0, 0, 1, 0, 0},
{/*bt*/ 0, 0, 0, 1, 0}
};
//MUXy//
#define MUXak 2
#define MUXbt 1
//IZOLATOR//
#define ISOusb 0
//AK4118//
#define IPS0 4
#define IPS1 3
void setup()
{
//PRZYCISKI//
pinMode(OPT1sw, INPUT);
pinMode(OPT2sw, INPUT);
pinMode(OPT3sw, INPUT);
pinMode(COAXsw, INPUT);
pinMode(USBsw, INPUT);
pinMode(BTsw, INPUT);
//LEDy//
pinMode(OPT1led, OUTPUT);
pinMode(OPT2led, OUTPUT);
pinMode(OPT3led, OUTPUT);
pinMode(COAXled, OUTPUT);
pinMode(USBled, OUTPUT);
pinMode(BTled, OUTPUT);
//MUXy//
pinMode(MUXak, OUTPUT);
pinMode(MUXbt, OUTPUT);
//IZOLATOR//
pinMode(ISOusb, OUTPUT);
//AK4118//
pinMode(IPS0, OUTPUT);
pinMode(IPS1, OUTPUT);
//PIERWSZE ZRODLO//
digitalWrite(ISOusb, HIGH);
digitalWrite(USBled, HIGH);
//WYLACZENIE POZOSTALYCH ZRODEL//
digitalWrite(MUXak, LOW);
digitalWrite(MUXbt, LOW);
//RGB//
pinMode(potPin_red, INPUT);
pinMode(potPin_green, INPUT);
pinMode(potPin_blue, INPUT);
//RGB//
pinMode(redPin,OUTPUT);
pinMode(bluePin,OUTPUT);
pinMode(greenPin, OUTPUT);
}
void loop()
{
//TABELA//
for (byte k = 0; k < zrodloCount; k++)
test(k);
//RGB//
readValue_red = analogRead(potPin_red);
readValue_green = analogRead(potPin_green);
readValue_blue = analogRead(potPin_blue);
//RGB//
writeValue_red = (255./1023.)*readValue_red;
writeValue_green = (255./1023.)*readValue_green;
writeValue_blue = (255./1023.)*readValue_blue;
//RGB//
analogWrite(redPin,writeValue_red);
analogWrite(greenPin,writeValue_green);
analogWrite(bluePin,writeValue_blue);
//PRZYCISKI//
for(i=0;i<6;i++)
{
if(digitalRead(inputs[i]))
{
temp=0;
bitSet(temp,i);
}
}
for(j=0;j<6;j++)
{
if(bitSet(temp,j))
digitalWrite(leds[j],HIGH);
else
digitalWrite(leds[j],LOW);
}
//ZRODLA//
//OPT1//
if(digitalRead(OPT1sw) == LOW)
{
test(opt1);
}
//OPT2//
if(digitalRead(OPT2sw) == LOW)
{
test(opt2);
}
//OPT3//
if(digitalRead(OPT3sw) == LOW)
{
test(opt3);
}
//COAX//
if(digitalRead(COAXsw) == LOW)
{
test(coax);
}
//USB//
if(digitalRead(USBsw) == LOW)
{
test(usb);
}
//BT//
if(digitalRead(BTsw) == LOW)
{
test(bt);
}
}
void test(const byte zrodlo)
{
for (byte k = 0; k < outputPinCount; k++)
digitalWrite(OutputPins[k], zrodla[zrodlo][k]);
}
Maybe I should put switch and leds to enum with zrodlo/output? After power ON supply, all leds are on, and pressing keys nothing change.
Regards