Hola estoy haciendo un proyecto
- 8 LEDs
- 8 resistencias (220 ohmios)
- Pulsador (botón)
- Resistencia pull-down (10k ohmios)
- Obligatorio el uso de interrupciones
Cuando inicio el simulador de mi proyecto en Tinkercad, inicia girando inicialmente en sentido antihorario pero cuando presiono el pulsador no me cambia a sentido horario.
Este es el codigo:
const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Pines donde están conectados los LEDs
const int buttonPin = 10; // Pin donde está conectado el pulsador
volatile bool direction = false; // Variable que almacena la dirección de rotación
void setup() {
// Configurar pines de los LEDs como salida
for (int i = 0; i < 8; i++) {
pinMode(ledPins[i], OUTPUT);
}
// Configurar pin del pulsador como entrada
pinMode(buttonPin, INPUT);
// Configurar interrupción en el pin del pulsador
attachInterrupt(digitalPinToInterrupt(buttonPin), changeDirection, FALLING);
}
void loop() {
if (direction) {
rotateClockwise();
} else {
rotateCounterClockwise();
}
delay(100); // Retardo para observar el movimiento de los LEDs
}
void rotateClockwise() {
for (int i = 0; i < 8; i++) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
}
void rotateCounterClockwise() {
for (int i = 7; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH);
delay(100);
digitalWrite(ledPins[i], LOW);
}
}
void changeDirection() {
direction = !direction; // Cambiar la dirección de rotación
}

