I think I can save some space if I will add arrays for this in void setup():
//6ch button
mcp1.pinMode(0, INPUT);
mcp1.pinMode(1, INPUT);
mcp1.pinMode(2, INPUT);
mcp1.pinMode(3, INPUT);
mcp1.pinMode(4, INPUT);
mcp1.pinMode(5, INPUT);
mcp1.pinMode(6, INPUT);
mcp1.pinMode(7, INPUT);
//6ch led
mcp1.pinMode(8, OUTPUT);
mcp1.pinMode(9, OUTPUT);
mcp1.pinMode(10, OUTPUT);
mcp1.pinMode(11, OUTPUT);
mcp1.pinMode(12, OUTPUT);
mcp1.pinMode(13, OUTPUT);
mcp1.pinMode(14, OUTPUT);
mcp1.pinMode(15, OUTPUT);
//selektor cyfrowy
mcp2.pinMode(0, OUTPUT);
mcp2.pinMode(1, OUTPUT);
mcp2.pinMode(2, OUTPUT);
mcp2.pinMode(3, OUTPUT);
mcp2.pinMode(4, OUTPUT);
mcp2.pinMode(5, OUTPUT);
mcp2.pinMode(6, OUTPUT);
mcp2.pinMode(7, OUTPUT);
//selektor analogowy
mcp3.pinMode(0, OUTPUT);
mcp3.pinMode(1, OUTPUT);
mcp3.pinMode(2, OUTPUT);
mcp3.pinMode(3, OUTPUT);
mcp3.pinMode(4, OUTPUT);
mcp3.pinMode(5, OUTPUT);
mcp3.pinMode(6, OUTPUT);
mcp3.pinMode(7, OUTPUT);
//pvc
mcp4.pinMode(0, OUTPUT);
mcp4.pinMode(1, OUTPUT);
mcp4.pinMode(2, OUTPUT);
mcp4.pinMode(3, OUTPUT);
mcp4.pinMode(4, OUTPUT);
mcp4.pinMode(5, OUTPUT);
mcp4.pinMode(6, OUTPUT);
mcp4.pinMode(7, OUTPUT);
about my code, I think that I cant change nothing to get more free space. Main problem is with all libraries which arent optymalize :
void PrintRTC()
{
dt = clock.getDateTime();
if (blokadaRTC == 0)
{
display.drawLine(74, 18, 128, 18, WHITE);
display.fillRect(74, 0, 54, 8, WHITE);
display.drawRect(74, 8, 54, 22, WHITE);
display.setTextSize(1);
display.setTextColor(BLACK, WHITE);
display.setCursor(90, 1);
display.print("DATE");
}
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(77, 10);
FillRTC();
if (dt.hour < 10)
{
display.print("0");
}
display.print(dt.hour);
display.print(":");
if (dt.minute < 10)
{
display.print("0");
}
display.print(dt.minute);
display.print(":");
if (dt.second < 10)
{
display.print("0");
}
display.print(dt.second);
display.setCursor(77, 20);
if (dt.day < 10)
{
display.print("0");
}
display.print(dt.day);
display.print(".");
if (dt.month < 10)
{
display.print("0");
}
display.print(dt.month);
display.print(".");
display.print(dt.year - 2000);
blokadaRTC = 1;
}
void PrintAnalog()
{
if (blokadaAnalog == 0)
{
display.fillRect(0, 0, 54, 8, WHITE);
display.drawRect(0, 8, 54, 22, WHITE);
display.setTextSize(1);
display.setTextColor(BLACK, WHITE);
display.setCursor(4, 1);
display.print(" ANALOG");
}
if (count == 1 && blokadaClearFillAnalog == 0)
{
ClearFillAnalog();
}
display.setTextSize(1);
display.setTextColor(WHITE);
FillAnalog();
if (Analog == 1)
{
drawCentreString("DAC", 27, 15);
}
else if (Analog == 2)
{
drawCentreString("IN-2", 27, 15);
}
else if (Analog == 3)
{
drawCentreString("IN-3", 27, 15);;
}
else if (Analog == 4)
{
drawCentreString("IN-4", 27, 15);
}
else if (Analog == 5)
{
drawCentreString("IN-5", 27, 15);
}
else if (Analog == 6)
{
drawCentreString("VIDEO", 27, 15);
}
blokadaAnalog = 1;
}
void PrintDigital()
{
if (blokadaDigital == 0)
{
display.fillRect(0, 35, 54, 9, WHITE);
display.drawRect(0, 35, 54, 29, WHITE);
display.setTextSize(1);
display.setTextColor(BLACK, WHITE);
display.setCursor(7, 36);
display.print("DIGITAL");
}
if (count == 2 && blokadaClearFillDigital == 0)
{
ClearFillDigital();
}
display.setTextSize(1);
display.setTextColor(WHITE);
FillDigital();
if (Digital == 1)
{
drawCentreString("TV", 27, 50);
}
else if (Digital == 2)
{
drawCentreString("XBOX", 27, 50);
}
else if (Digital == 3)
{
drawCentreString("DVD", 27, 50);
}
else if (Digital == 4)
{
drawCentreString("COAX", 27, 50);
}
else if (Digital == 5)
{
drawCentreString("USB", 27, 50);
}
else if (Digital == 6)
{
drawCentreString("BT", 27, 50);
}
blokadaDigital = 1;
void AnalogChange()
{
if (Analog_change)
{
Analog_change = 0;
if (Analog == 1)
{
mcp3.digitalWrite(5, HIGH);
mcp1.digitalWrite(8, HIGH);
}
else
{
mcp3.digitalWrite(5, LOW);
mcp1.digitalWrite(8, LOW);
}
if (Analog == 2)
{
mcp3.digitalWrite(4, HIGH);
mcp1.digitalWrite(9, HIGH);
}
else
{
mcp3.digitalWrite(4, LOW);
mcp1.digitalWrite(9, LOW);
}
if (Analog == 3)
{
mcp3.digitalWrite(3, HIGH);
mcp1.digitalWrite(10, HIGH);
}
else
{
mcp3.digitalWrite(3, LOW);
mcp1.digitalWrite(10, LOW);
}
if (Analog == 4)
{
mcp3.digitalWrite(2, HIGH);
mcp1.digitalWrite(11, HIGH);
}
else
{
mcp3.digitalWrite(2, LOW);
mcp1.digitalWrite(11, LOW);
}
if (Analog == 5)
{
mcp3.digitalWrite(1, HIGH);
mcp1.digitalWrite(12, HIGH);
}
else
{
mcp3.digitalWrite(1, LOW);
mcp1.digitalWrite(12, LOW);
}
if (Analog == 6)
{
mcp3.digitalWrite(0, HIGH);
mcp1.digitalWrite(13, HIGH);
}
else
{
mcp3.digitalWrite(0, LOW);
mcp1.digitalWrite(13, LOW);
}
}
}
}