void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Contador de CE °L°");
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
int rapido = 100;
int lento = 500;
// 6 = 1, 7 = 2, 8 = 4, 9 = 8
int values[] = { 8, 4, 2, 1 };
int pins[] = { 6,7,8,9 };
int mapa[16][4] = {
{ 0,0,0,0 },
{ 0,0,0,1 },
{ 0,0,1,0 },
{ 0,0,1,1 },
{ 0,1,0,0 },
{ 0,1,0,1 },
{ 0,1,1,0 },
{ 0,1,1,1 },
{ 1,0,0,0 },
{ 1,0,0,1 },
{ 1,0,1,0 },
{ 1,0,1,1 },
{ 1,1,0,0 },
{ 1,1,0,1 },
{ 1,1,1,0 },
{ 1,1,1,1 },
};
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Once more! °L°");
parpadearPinsDel1Al15EnBinario(pins, rapido, lento, mapa, values);
}
void parpadearPinsDel1Al15EnBinario(int pins[], int rapido, int lento, int mapa[16][4], int values[4]) {
for (int i = 0; i < 16; i++) {
const int ii = syncPinesEnRow(rapido, pins, mapa[i], values);
Serial.println(ii);
const char* byteBinary = getByteBinary(mapa[i]);
Serial.println(byteBinary);
delay(lento);
}
}
const char * getByteBinary(int row[4]) {
char result[4] = "";
for (int j = 0; j < 4; j++) {
strcat(result, row[j] == 1 ? "1" : "0"); // Append str2 to str1
}
Serial.println(result);
return result;
}
const int syncPinesEnRow(int velocidad, int pins[], int row[], int values[4]) {
int aa = 0;
for(int p = 0; p < 4; p++) {
bool hl = (row[p] == 1) ? HIGH : LOW;
int pin = pins[p];
digitalWrite(pin, hl);
aa += hl ? values[p] : 0;
}
delay(velocidad);
return aa;
}