int pins[] = {13, 12, 11, 10}; // Array dos pinos A, B, C, D, que correspondem aos pinos digitais do Arduino
// Array bidimensional que contém as combinações de valores para cada número
// Cada linha do array representa um número, de 0 a 9, usando quatro pinos
int numbers[][4] = {
{LOW, LOW, LOW, LOW}, // Número 0 (0000 em binário)
{HIGH, LOW, LOW, LOW}, // Número 1 (1000 em binário)
{LOW, HIGH, LOW, LOW}, // Número 2 (0100 em binário)
{HIGH, HIGH, LOW, LOW},// Número 3 (1100 em binário)
{LOW, LOW, HIGH, LOW}, // Número 4 (0010 em binário)
{HIGH, LOW, HIGH, LOW},// Número 5 (1010 em binário)
{LOW, HIGH, HIGH, LOW},// Número 6 (0110 em binário)
{HIGH, HIGH, HIGH, LOW},// Número 7 (1110 em binário)
{LOW, LOW, LOW, HIGH}, // Número 8 (0001 em binário)
{HIGH, LOW, LOW, HIGH} // Número 9 (1001 em binário)
};
void setup() {
Serial.begin(9600); // Inicia a comunicação serial a 9600 bits por segundo para o monitor serial
// Define todos os pinos no array 'pins' como saídas
for (int i = 0; i < 4; i++) {
pinMode(pins[i], OUTPUT);
}
}
void loop() {
// Percorre cada número de 0 a 9
for (int i = 0; i < 10; i++) {
// Define os pinos de acordo com o número atual
for (int j = 0; j < 4; j++) {
digitalWrite(pins[j], numbers[i][j]); // Define o estado (HIGH ou LOW) de cada pino
}
Serial.print("Número exibido: "); // Imprime a string "Número exibido: " no monitor serial
Serial.println(i); // Imprime o número atual no monitor serial e pula para a próxima linha
delay(1000); // Aguarda 1 segundo antes de passar para o próximo número
}
}