Documentation Index
Fetch the complete documentation index at: https://mintlify.com/FrancoMartino/cod-es/llms.txt
Use this file to discover all available pages before exploring further.
Cod-ES simplifica las pausas temporales con la función esperar, que acepta la cantidad de tiempo y la unidad deseada en un solo llamado.
Constantes de unidad
| Constante | Valor | Equivalente Arduino |
|---|
MILISEGUNDOS | 0 | delay(ms) |
SEGUNDOS | 1 | delay(s * 1000) |
MICROSEGUNDOS | 2 | delayMicroseconds(us) |
MILISEGUNDOS es la unidad por defecto. Si no se pasa el segundo argumento, esperar interpreta el tiempo en milisegundos.
Función esperar
Detiene la ejecución durante el tiempo especificado.
Cantidad de tiempo a esperar. El tipo float permite fracciones (por ejemplo 0.5 segundos).
body.modo
int
default:"MILISEGUNDOS"
Unidad de tiempo: MILISEGUNDOS, SEGUNDOS o MICROSEGUNDOS.
Ejemplos
Milisegundos
Segundos
Microsegundos
Uso predeterminado. Pausa la ejecución durante el número de milisegundos indicado.bucle
encender(LED_INTERNO);
esperar(500); // 500 ms
apagar(LED_INTERNO);
esperar(500, MILISEGUNDOS); // equivalente explícito
fin
Permite expresar duraciones largas de forma legible sin convertir manualmente a milisegundos.bucle
Serial.println("Iniciando medición...");
esperar(2, SEGUNDOS); // espera 2 s (= delay(2000))
flotante lectura = leerPin(A0, ANALOGICO);
Serial.println(lectura);
esperar(0.5, SEGUNDOS); // 500 ms usando fracciones
fin
Para retardos de alta precisión, como la señal de disparo de un sensor ultrasónico.bucle
salidaDigital(9, ALTO);
esperar(10, MICROSEGUNDOS); // pulso de 10 µs
salidaDigital(9, BAJO);
largo duracion = pulsacionEn(10, ALTO);
Serial.println(duracion);
esperar(60, MILISEGUNDOS); // pausa entre mediciones
fin
Comportamiento interno
Internamente, esperar delega en las funciones nativas de Arduino según la unidad elegida:
// Implementación en time.h
void esperar(float s, int modo = MILISEGUNDOS)
{
switch (modo)
{
case MILISEGUNDOS:
delay(s);
break;
case SEGUNDOS:
delay(s * 1000);
break;
case MICROSEGUNDOS:
delayMicroseconds(s);
break;
default:
delay(s);
break;
}
}
esperar bloquea completamente la ejecución. Durante una pausa el programa no puede leer sensores, atender comunicación serial ni actualizar salidas. Para tareas concurrentes, usa millis() con lógica no bloqueante.
Ejemplo completo: temporizador de 3 etapas
#include <cod-es.h>
inicio
configurarSalida(LED_INTERNO);
Serial.begin(9600);
fin
bucle
// Etapa 1: parpadeo rápido (milisegundos)
repetir(entero i = 0, i < 6, i++)
salidaDigital(LED_INTERNO, ENCENDIDO);
esperar(100);
salidaDigital(LED_INTERNO, APAGADO);
esperar(100);
fin
// Etapa 2: pausa larga (segundos)
Serial.println("Esperando 3 segundos...");
esperar(3, SEGUNDOS);
// Etapa 3: pulso corto (microsegundos) — ejemplo de señal
repetir(entero j = 0, j < 5, j++)
salidaDigital(9, ALTO);
esperar(500, MICROSEGUNDOS);
salidaDigital(9, BAJO);
esperar(500, MICROSEGUNDOS);
fin
fin