#include <SevSeg.h>
SevSeg sevseg; // Cria o objeto para o display
void setup() {
Serial.begin(115200); // Inicializa a comunicação serial
// Configurações do display
byte numDigits = 7; // Número de dígitos
byte digitPins[] = {9, 10, 11, 12, 13, A0, A1}; // Pinos comuns dos dígitos
byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8}; // Pinos dos segmentos (a, b, c, d, e, f, g)
// Configura o display como Ânodo Comum
sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins);
sevseg.setBrightness(90); // Define o brilho
// Inicializa o display apagado
sevseg.setNumber(0); // Define um número que acende todos os segmentos
delay(100); // Aguarda um momento para visualizar a inicialização
sevseg.setNumber(0); // Apaga todos os dígitos
}
void loop() {
// Testa a leitura da porta serial
if (Serial.available()) {
String input = Serial.readStringUntil('\n'); // Lê até a nova linha
input.trim(); // Remove espaços em branco
// Verifica se o número está dentro do limite de 6 caracteres
if (input.length() > 6) {
input = input.substring(0, 6); // Limita a 6 caracteres
}
// Converte a string para inteiro
long num = input.toInt(); // Converte a string para um número inteiro
// Exibe o número nos 6 dígitos
sevseg.setNumber(num); // Define o número a ser exibido no display
}
// Atualiza o display
sevseg.refreshDisplay(); // Atualiza o display
}
// Função para testar segmentos individualmente (opcional)
void testSegments() {
for (int i = 0; i < 10; i++) {
sevseg.setNumber(i); // Mostra números de 0 a 9
delay(1000); // Aguarda 1 segundo
}
}