PublicidadHacer parpadear un LED es uno de los proyectos más básicos para los principiantes de Arduino. Anteriormente, hemos demostrado cómo hacer parpadear el LED y emitir un pitido cada X segundos al presionar el botón. Sin embargo, agregar una condición para que el LED parpadee solo una cierta cantidad de veces después de presionar un botón introduce un nuevo nivel de complejidad. En este tutorial, exploraremos cómo lograr esta funcionalidad usando una placa Arduino, un LED y un botón. Materiales necesarios para este proyecto Placa Arduino (p. ej., Arduino Uno) LED Resistencia de 220 ohmios Pulsador Placa de pruebas Cables de puente Diagrama de circuito Aquí está la simulación en TinkerCAD: Código requerido Aquí está el código requerido: // Defina constantes para el pin del LED, el pin del botón y el número de parpadea constante int ledPin = 13; botón const intPin = 2; const int numBlinks = 2; // Variable para rastrear el número de parpadeos int flashCount = 0; void setup() { // Inicializa el pin LED como salida pinMode(ledPin, OUTPUT); // Inicializa el pin del botón como entrada con una resistencia pull-up pinMode(buttonPin, INPUT_PULLUP); } void loop() { // Comprobar si el botón está presionado if (digitalRead(buttonPin) == LOW) { // Hacer parpadear el LED el número especificado de veces para (int i = 0; i < numBlinks; i++) { digitalWrite(ledPin, HIGH); // Turn on the LED delay(500); // Wait for 500 milliseconds digitalWrite(ledPin, LOW); // Turn off the LED delay(500); // Wait for 500 milliseconds } // Increment the blink count blinkCount++; // Check if the desired number of blinks has been reached if (blinkCount >= numBlinks) { // Restablecer el recuento de parpadeos flashCount = 0; // Agregue lógica adicional aquí si es necesario } } }123456789101112131415161718192021222324252627282930313233343536// Definir constantes para pin de LED, pin de botón y número de parpadeosconst int ledPin = 13;const int buttonPin = 2;const int numBlinks = 2; // Variable para rastrear el número de parpadeosint flickCount = 0; void setup() { // Inicializa el pin LED como salida pinMode(ledPin, OUTPUT); // Inicializa el pin del botón como entrada con una resistencia pull-up pinMode(buttonPin, INPUT_PULLUP);} void loop() { // Comprobar si el botón está presionado if (digitalRead(buttonPin) == LOW) { // Hacer parpadear el LED el número especificado de veces para (int i = 0; i < numBlinks; i++) {      digitalWrite(ledPin, HIGH); // Turn on the LED      delay(500); // Wait for 500 milliseconds      digitalWrite(ledPin, LOW); // Turn off the LED      delay(500); // Wait for 500 milliseconds    }    // Increment the blink count    blinkCount++;     // Check if the desired number of blinks has been reached    if (blinkCount >= numBlinks) { // Restablecer el recuento de parpadeos flashCount = 0; // Agregue lógica adicional aquí si es necesario } }}En el código anterior, este fragmento es el bucle principal de un boceto de Arduino, que se ejecuta continuamente mientras la placa Arduino esté encendida. Analicemos cada parte de la función de bucle: La función de bucle es una función especial en los bocetos de Arduino que se ejecuta repetidamente después de que se completa la función de configuración. Cualquier código dentro de esta función se ejecutará en un bucle continuo hasta que el Arduino se apague o se reinicie. // Comprobar si el botón está presionado if (digitalRead(buttonPin) == LOW) { // Comprobar si el botón está presionado if (digitalRead(buttonPin) == LOW) {Esta línea de código verifica el estado de un botón conectado a un pin específico (buttonPin) configurado como entrada. La función digitalRead lee el estado del pin y si devuelve BAJO, significa que el botón está presionado. Esta condición se utiliza para determinar cuándo ejecutar el código dentro de la instrucción if: // Hacer parpadear el LED el número de veces especificado para (int i = 0; i < numBlinks; i++) { // Hacer parpadear el LED el número de veces especificado para (int i = 0; i < numBlinks; i++) {Inside the if statement, there is a for loop that iterates a certain number of times, specified by the variable numBlinks. This loop controls the blinking of an LED connected to another pin (ledPin). During each iteration of the loop, the LED is turned on for 500 milliseconds (using digitalWrite(ledPin, HIGH)) and then turned off for another 500 milliseconds (using digitalWrite(ledPin, LOW)). This creates the effect of blinking the LED. // Increment the blink count blinkCount++;      // Increment the blink count      blinkCount++;After the LED blinks the specified number of times, the blinkCount variable is incremented. This variable keeps track of the number of times the LED has blinked. // Check if the desired number of blinks has been reached if (blinkCount >= numBlinks) { // Comprobar si se ha alcanzado el número deseado de parpadeos if (blinkCount >= numBlinks) {Esta instrucción if verifica si el número de parpadeos (almacenados en BlinkCount) ha alcanzado o excedido el número deseado de parpadeos (almacenados en número de parpadeos). Si es así, significa que el LED ha parpadeado la cantidad de veces deseada. // Restablecer el recuento de parpadeos flashCount = 0; // Restablecer el recuento de parpadeos flashCount = 0;Este comentario indica que se puede agregar lógica adicional aquí si es necesario. Por ejemplo, podría agregar código para realizar otras acciones o tareas después de que el LED haya terminado de parpadear: // Agregue lógica adicional aquí si es necesario } // Agregue lógica adicional aquí si es necesario } En general, esta función de bucle verifica si se presiona un botón, hace parpadear un LED una cantidad específica de veces cuando se presiona el botón y restablece el recuento de parpadeos después de la cantidad deseada de parpadeos.

Source link