circuito de suma y resta

Este código controla seis LED mediante dos pulsadores que permiten aumentar o disminuir la cantidad de LED encendidos. Aquí está la explicación detallada:

Declaración de Pines y Variables


const int pulsador_resta = 3; const int pulsador_suma = 4; const int led1 = 5; const int led2 = 6; const int led3 = 7; const int led4 = 8; const int led5 = 9; const int led6 = 10; int contador = 0;
  • Los pinos pulsador_restay pulsador_sumaestán conectados a pulsadores que se usarán para disminuir e incrementar el valor del contador.
  • Los pinos led1a led6están conectados a los LED.
  • La variable contadorlleva la cuenta de cuántos LED deben estar encendidos.

Configuración inicial ( setup())


void setup() { pinMode(pulsador_resta, INPUT_PULLUP); pinMode(pulsador_suma, INPUT_PULLUP); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); }
  • INPUT_PULLUPconfigure los pines de los pulsadores con una resistencia interna de pull-up , lo que significa que normalmente están en HIGHy cambian a LOWcuando se presionan.
  • Los pinos de los LED se configuran como salidas ( OUTPUT).

Ciclo Principal ( loop())


void loop() { int lectura_resta = digitalRead(pulsador_resta); int lectura_suma = digitalRead(pulsador_suma);
  • lectura_restay lectura_sumaalmacenan el estado actual de los pulsadores.

Decremento del Contador ( pulsador_resta)


if (lectura_resta == LOW) { delay(500); if (contador == 0) { contador = 0; } else { contador = contador - 1; } }
  • Si el pulsador de resto está presionado ( lectura_resta == LOW), introduzca un retraso de 500 ms para evitar rebotes.
  • Si el contador ya está en 0, se mantiene en 0. Si no, disminuye en 1.

Incremento del Contador ( pulsador_suma)


if (lectura_suma == LOW) { delay(500); if (contador == 6) { contador = 6; } else { contador = contador + 1; } }
  • Si el pulsador de suma está presionado ( lectura_suma == LOW), introduzca un retraso de 500 ms para evitar rebotes.
  • Si el contador ya está en 6 (el valor máximo de LED), se mantiene en 6. Si no, incrementa en 1.

Encendido de LED según el Valor decontador

if (contador == 0) { digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); digitalWrite(led5, LOW); digitalWrite(led6, LOW); } if (contador == 1) { digitalWrite(led1, HIGH); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); digitalWrite(led5, LOW); digitalWrite(led6, LOW); } if (contador == 2) { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, LOW); digitalWrite(led4, LOW); digitalWrite(led5, LOW); digitalWrite(led6, LOW); } if (contador == 3) { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, LOW); digitalWrite(led5, LOW); digitalWrite(led6, LOW); } if (contador == 4) { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); digitalWrite(led5, LOW); digitalWrite(led6, LOW); } if (contador == 5) { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); digitalWrite(led5, HIGH); digitalWrite(led6, LOW); } if (contador == 6) { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); digitalWrite(led5, HIGH); digitalWrite(led6, HIGH); } }

Cada bloque ifcomprueba el valor de contadory enciende o apaga los LED en consecuencia:

  • contador == 0: Todos los LED están apagados.
  • contador == 1:Solo led1está encendido.
  • contador == 2: led1y led2están encendidos.
  • Y así sucesivamente, hasta que contador == 6, en el que todos los LED están encendidos.

Resumen

Este código controla los LED de acuerdo con el valor de contador, que se incrementa o disminuye con los pulsadores. Cada pulsador incrementa o disminuye el contador, y el estado de los LED se actualiza para reflejar el valor actual del contador, aumentando progresivamente más LED a medida que el contador aumenta.

 

No hay comentarios:

Publicar un comentario