1/4/2017
Ar dui no Tem por i zador.
| FOROS
Inicio Elastix - VoIP Estación meteorológica
B4A (Basic4Android) Cosas de Windows
App inventor 2 Webs interesantes
|
Tutoriales
|
WAMP - PHP - MySQL Arduino
Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.
Arduino en español Cir cuitos cuitos con Arduin Arduino o - Juan Antonio Villalpando
-- Tutorial de iniciación a Arduino -Volver al índice del tutorial
Return to index tutorial
____________________________ _______________________ _____ Arduino. Delay.
8.- Temporizador. Al pulsar el pulsador se espera 8 segundos. Al cabo de ese tiempo el LED parpadea 5 veces. El tiempo empieza a contar desde el momento que se pulsa el pulsador.
http://ki o4.com /ar dui no/8tem por i zador.htm
1/3
1/4/2017
Arduino Temporizador.
Código
/* Juan A. Villalpando kio4.com agosto 2015. */ /* Pulsamos, después de 8 segundos empieza a parpadear el LED. Hace 5 parpadeos y se apaga. Al pulsar el pulsador se marca activado=1, se establece tiempo inicial y final. Cuando ha sido activado y el tiempo actual supera al final... entra en funcionamiento la subrutina parpadeo. Cada vez que hace un parpadeo cuenta 1 más. Cuando hace 5 parpadeo inicializa todo. Pone activado a 0 y contador a 0. */ #define pin2 2 // Al terminal 2 lo llamamos pin2. Aquí irá el pulsador. #define LED13 13 // Al terminal 13 lo llamamos LED13. Aquí irá el LED. int valor2; // Esto es una variable entera int contador=0; // Variable contador igual a cero en el inicio. int activado=0; // Al principio no ha sido activado. long inicio, final, actual; // Tiempos. void parpadeo(); // Vamos a utilizar la subrutina parpadeo. La declaramos. // En el setup establecemos los parámetros iniciales. void setup() { pinMode(pin2, INPUT); // El pin2 será entrada. Pulsador. pinMode(LED13, OUTPUT); // El LED13 será salida. LED. }
void loop() { valor2 = digitalRead(pin2); // Lee el valor del pin2 y se lo asigna a valor2. (Puede ser 0 o 1) if (valor2 == HIGH && activado == 0) { activado = 1; inicio = millis(); final = inicio + 8000; } actual = millis(); if (activado == 1 && (actual > final) ) { parpadeo(); } }
// Si ha pulsado HIGH y no ha sido activado=0 antes... // marca activado=1 y guarda el tiempo de inicio. // Tiempo final es inicio más 8 segundos.
// Consulta el tiempo actual. // Si fue activado=1 y el tiempo actual es mayor que el final.... // haz un parpadeo.
// Subrutina parpadeo. void parpadeo() { contador = contador + 1; // Cada vez que hace un parpadeo cuenta uno más. if (contador == 5){ // Si la cuenta llega a 5, inicializa todo. contador = 0; activado = 0;
http://kio4.com/arduino/8temporizador.htm
2/3
1/4/2017
Arduino Temporizador.
} digitalWrite(LED13, HIGH); delay(300); digitalWrite(LED13, LOW); delay(300); }
- Recuerda que debes guardar cada archivo de proyecto en una carpeta única para él. - Una subrutina es un trozo de código al que podemos llamar desde el código principal. - La subrutina la declaramos al principio: - if
(valor2 == HIGH && activado == 0).
- inicio
void parpadeo(); .
Si valor2 es ALTO Y activado es cero. El doble ampersand "&&" significa Y
= millis();. millis() toma los milisegundos actuales desde que se inició la ejecución de la aplicación.
Supongamos que millis = 64010 inicio = 64010 final = 64010 + 8000 = 72010 Supongamos que actual = 65900 if (activado == 1 && (actual > final) ) --------- Actual no supera a final .
Supongamos que actual = 72011 if (activado == 1 && (actual > final) ) --------- Actual sí supera a final y hace el contenido del if.
________________________________ Si quieres que este tutorial se mantenga y lo actualice con más programas, escríbeme un correo a Juan Antonio: juana1991@yahoo.
- Mi correo:
[email protected]
- KIO4.COM
http://kio4.com/arduino/8temporizador.htm
- Política de cookies.
Textos e imágenes propiedad del autor: © Juan A. Villalpando No se permite la copia de información ni imágenes.
3/3