// Defina os pinos dos sensores em formato de matriz
const int numLinhas = 4; // Número total de sensores em cada coluna
const int numColunas = 2;
int sensorPinos[numLinhas][numColunas] = {
{2, 4},
{5, 12},
{13, 14},
{15, 18}
};
int valorSensor[numLinhas];
void setup() {
Serial.begin(115200);
// Configure os pinos dos sensores como entrada
for (int linha = 0; linha < numLinhas; linha++) {
for (int coluna = 0; coluna < numColunas; coluna++) {
pinMode(sensorPinos[linha][coluna], INPUT_PULLUP);
}
}
}
void loop() {
// Leitura da primeira coluna de sensores
for (int linha = 0; linha < numLinhas; linha++) {
int valorSensor = digitalRead(sensorPinos[linha][0]);
Serial.print("Coluna 1 - Linha " + String(linha) + ": " + String(valorSensor) + "\t");
// Realize ações com base nos valores lidos, se necessário
}
if (valorSensor[0] == LOW && valorSensor[1] == LOW && valorSensor[2] == LOW && valorSensor[3] == LOW) {
Serial.print("elevador ainda não inciado");
} else if (valorSensor[0] == HIGH && valorSensor[1] == LOW && valorSensor[2] == LOW && valorSensor[3] == LOW) {
// ...
}
Serial.println();
// Leitura da segunda coluna de sensores
for (int linha = 0; linha < numLinhas; linha++) {
int valorSensor = digitalRead(sensorPinos[linha][1]);
Serial.print("Coluna 2 - Linha " + String(linha) + ": " + String(valorSensor) + "\t");
// Realize ações com base nos valores lidos, se necessário
}
Serial.println();
delay(1000); // Adicione um atraso entre as leituras para evitar leituras muito frequentes
}