const int segmentPins[] = {7, 8, 9, 10}; // Pinos F a I
const int digitCommonPins[] = {2, 3, 4, 5, 6}; // Pinos D1 a D5 (comum positivo)
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(segmentPins[i], OUTPUT);
}
for (int i = 0; i < 5; i++) {
pinMode(digitCommonPins[i], OUTPUT);
}
}
void loop() {
// Exemplo: Acender o número "1" no terceiro dígito
displayDigit(3, 0); // Troque para o dígito desejado e número desejado
delay(1000); // Aguarde 2 segundos
}
void displayDigit(int digit, int value) {
// Desligar todos os dígitos
for (int i = 0; i < 5; i++) {
digitalWrite(digitCommonPins[i], HIGH);
}
// Desligar todos os segmentos
for (int i = 0; i < 4; i++) {
digitalWrite(segmentPins[i], LOW);
}
// Determinar quais segmentos devem ser ligados para o número desejado
int segmentsToLight[4] = {LOW, LOW, LOW, LOW}; // Inicialmente, todos desligados
// Adicione os segmentos necessários para o número desejado
switch (value) {
/*
segmentsToLight[0] = HIGH; // F
segmentsToLight[1] = HIGH; // G
segmentsToLight[2] = HIGH; // H
segmentsToLight[3] = HIGH; // I
*/
case 0:
segmentsToLight[0] = HIGH; // F
segmentsToLight[1] = HIGH; // G
segmentsToLight[2] = HIGH; // H
segmentsToLight[3] = HIGH; // I
break;
// Continue para os outros números
}
// Ativar os segmentos necessários
for (int i = 0; i < 4; i++) {
digitalWrite(segmentPins[i], segmentsToLight[i]);
}
// Ligar o dígito desejado
digitalWrite(digitCommonPins[digit], LOW);
}