const int led1 = 2; // Primer LED (bit 0)
const int led2 = 3; // Segundo LED (bit 1)
const int led3 = 4; // Tercer LED (bit 2)
const int led4 = 5; // Cuarto LED (bit 3)
const int buttonPin = 7;
int counter = 0;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Configurar el botón con resistencia pull-up interna
Serial.begin(9600);
Serial.println("Sistema iniciado. Presiona el botón para incrementar el contador hexadecimal.");
}
void loop() {
if (digitalRead(buttonPin) == LOW) { // Botón presionado
delay(50); // Espera 50 ms para evitar rebote
if (digitalRead(buttonPin) == LOW) { // Verifica si el botón sigue presionado
counter++;
if (counter >= 16) {
counter = 0; // Reiniciar el contador al llegar a 16
}
displayCounter(counter);
// Espera a que se suelte el botón
while (digitalRead(buttonPin) == LOW) {
delay(10); // Espera 10 ms dentro del while para evitar un bucle demasiado rápido
}
}
}
}
void displayCounter(int number) {
Serial.print("Número hexadecimal: 0x");
Serial.println(number, HEX);
// Controlar los LEDs
digitalWrite(led4, number & 0x01); // Primer bit
digitalWrite(led3, (number >> 1) & 0x01); // Segundo bit
digitalWrite(led2, (number >> 2) & 0x01); // Tercer bit
digitalWrite(led1, (number >> 3) & 0x01); // Cuarto bit
}