Arduino: Ejecutando todo al mismo tiempo

  1. Sin Delay

Para muchos de los que inician en el mundo de Arduino, quieren que su arduino ejecute varias tareas al mismo tiempo, y la pregunta es como si tenemos nuestro código bien!, pero seguramente este tiene varios delay().

Ningún microcontrolador puede hacer varias tareas al mismo pero el no usar delay() hace ver que está ejecutando todo al mismo tiempo ya que no hay ningún retardo ni interrupciones en el codigo y la velocidad de ejecución es realmente alta lo cual nos da a persivir que todo lo hace al mismo tiempo.

Si!, el secreto esta en no usar el delay,¿Pero entonces como hacemos un retardo o como hacemos para que encienda y se apague un led y adicionalmente suene un buzzer o se ejecute cualquier otra cosa?, llevando o manteniendo el control mediante variables que almacenan el tiempo de ejecución, y verificando mediante “if” si se ha logrado o ya ha pasado el tiempo requerido para ejecutar alguna acción. Se lee algo enredado pero haciendo el código es mucho mas fácil. por eso vamos a explicar el ejemplo que tiene nuestro Arduino IDE, asi que vamos abrir el IDE y abrir el siguiente ejemplo:

archivo>ejemplos>digital>BlinkWithoutDelay

Este código encenderá y apagara un led sin usar la función delay(), ya que esta función nos genera que un retardo en el cual nuestro código se detendrá y no realizara ninguna otra función hasta que este retardo se acabe, como si empezaras a descargar un juego que pesa 1,5GB y no te movieras del frente de tu computadora hasta que se descargue sin realizar ninguna otra tarea.

depende de la necesidad de nuestro proyectos sera viable usar o no delays.

BLINK WITH OUT DELAY:

Entonces el secreto esta en ir validando el tiempo a medida que se ejecutan varias tareas, debemos utilizar variables de control y varias variables que nos mantenga cierto tiempo almacenado para poder ejecutar varias tareas. por ejemplo:
les dejare en los siguientes links códigos donde se ejecutan varias tareas y se usan varias variables de control y de tiempo para que traten de entenderlo.

Códigos:

Robot Evita Obstaculos combina delays y ejecuta tareas sin delays, código directo descargar AQUI!.

Robot Animador, todo su código es sin delays, y ejecuta tareas como escribir en una matrix led 8×8, mueve 2 servo motores, enciende varios leds y activa un buzzer, código directo descargar AQUI!.

Cualquier duda no olviden en dejarme su comentario no dudare en contestarles

No olviden seguirme en las redes sociales y suscribirse a mi canal de youtube

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *