Multitareas en Arduino

Slides:



Advertisements
Presentaciones similares
Programación Interactiva Fundamentos de Programación
Advertisements

Programación Básica con NQC Pedro F. Toledo – Patricio Castillo 18/08/2006.
PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS CONTROL DE BARRERA DE PARKING
Funciones y recursividad
Álvaro Narváez Palazón
Fundamentos de la Programación Estructurada
Seminario de Actualización - Excel Avanzado y Macros
Controla tu entorno con un microcontrolador PIIISA
Controla tu entorno con un microcontrolador PIIISA
Controla tu entorno con un microcontrolador PIIISA /2/2014
PANTALLA RESPONSIVA AL SONIDO
FUNCIÓN IGUAL (Lo que entra igual (=) a lo que sale)
Tema 7c Entrada y salida de funciones. Funciones Funcion Entradas SalidasTareas.
Armando Mtz.R. ITNL Microcontroladores
CI TEORIA semana 4 Estructura Algorítmica: SELECCIÓN
Ordenación y Búsquedas1UVM Ordenación y Búsqueda.
INTRODUCCIÓN A ARDUINO Carolina Pino
ARDUINO SUENA Y PUDES HACER MÚSICA SI PROGRAMAS BIEN.
Physical Computing Clase 4. Memoria y Variables decimal, binario, hexadecimal Ver anexo 4.1. por favor.
INTERMITENCIA VAMOS A APRENDER A ESPERAR. En este programa vamos a presentar una instrucción que nos sirve para esperar antes de ejecutar la instrucción.
INTRODUCCIÓN A ARDUINO
Introducción a la robótica educativa con Arduino
Conceptos Básicos de Programación. Put a pin into input mode Loop Check if the pin is 0 or 5 volts If the pin has 5 volts Do something End if End Loop.
FUNCIÓN OR Una O otra, para que funcione. Función suma OR abS Es aquella función que es cierta (1), si una o las dos entradas son ciertas.
FUNCIÓN AND Para hacer que funcione, debo accionar un pulsador Y el otro.
VAMOS ACONTOLAR EL TRÁFICO CON ARDUINO
FUNCIÓN NOR Una Opuesto a una OR. Función suma NOR abS Equivale a la asociación de la función OR, con la función NOT. Por tanto estamos.
Estructuras selectivas
PROYECTO FINAL Aplicaciones con microprocesadores y Microcontroladores UACMBRIJE JOSE ALFREDO MARTINEZ PEREZ HECTOR ALONSO JIMENEZ.
Introducción al lenguaje PROCESSING para ARDUINO
Javier Mauricio Galvis Moreno
Por ejemplo: void funcion1(int a, int b=0, int c= 1); void funcion2(int a=1, int b, int c); int funcion1(int a, int b=0, int c=1);... funcion1(12, 10);
TIPOS DE DATOS Estructuras de control y repetición PARCIAL III.
ESPECIFICACIONES DE OPERACIÓN DEL MICROCONTROLADOR
El Hardware El Software La Comunidad  Software Libre  Hardware Libre  Puerto USB  Fácil de usar  Precio reducido  Completamente independiente 
Practica 1 Componentes del Robot. Sensor Ultrasónico El Sensor Ultrasónico de Distancia PING (o "PING)))" como lo denomina el fabricante) tiene una interfaz.
Encoders Opticos Armando Mtz. Reyes ITNL.
2015-BM5A. ¿Qué estructuras de Programación conocemos? Condicional: If … { } … Else …{ } Condicional por Casos: Switch (opcion) { } Repetitiva exacta:
LENGUAJE DE PROGRAMACIÓN DE ARDUINO. LENGUAJE DE LENGUAJE DE PROGRAMACIÓN.
Sensores Ultrasonido. Son importantes en robótica, se usan para calcular distancias.
ARDUINO INTRODUCCIÓN Y PROGRAMACIÓN. Podemos tener Señales analógicas y digitales. INTRODUCCIÓN.
ARDUINO El proyecto Arduino: Recordando… - Pines de entrada
INTRODUCCIÓN A ARDUINO
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Brazo robot arduino      I.E.S. MELÉNDEZ VALDÉS VILLAFRANCA DE LOS BARROS.
TALLER DE ARDUINO.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
LENGUAJE DE PROGRAMACIÓN DE ARDUINO
Trabajo Final de Software en Ingeniería
Estructuras de Control en Visual Basic.net
CLASE X.
SISTEMAS OPERATIVOS Sección Crítica.
3.0 TALLER DE ARDUINO PRESENTACIÓN PARA ALUMNOS DE CUARTO CURSO DE EDUCACIÓN SECUNDARIA OBLIGATORIA.
Estructuras de Control en Visual Basic.net
PROGRAMACIÓN DE SERVOS CON ARDUINO
Cómo interactuar con arduino usando Python y Firmata
ESTRUCTURAS DE CONTROL EN VISUAL BASIC.NET Prof.: Rafael Mourglia.
Clase 4 8:00 AM Repaso La Programación ¿Qué es Arduino? Tipos de Arduinos 10:00 AM Aprendiendo a programar en Arduino Ejemplos Semillero Robótica I.
SISTEMAS OPERATIVOS. El sistema operativo es un conjunto de programas que: ■Inicializa el hardware del ordenador. ■Suministra rutinas básicas para controlar.
SISTEMAS OPERATIVOS.
Introducción práctica la uso de la tarjeta Arduino.
Primeros pasos con Arduino
Un simulador​ con prototipo
Protocolos de comunicación
SENTENCIAS CONTROL DE FLUJO EN C I.E. Mario Jiménez.
CONTROL Y ROBÓTICA TECNOLOGÍA 4ºESO. Iniciación a LA ROBÓTICA con La µControladora.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
ARDUINO ARDUINO El proyecto Arduino: Recordando… - Pines de entrada - Pines de salida - Microcontrolador - Conexión USB - IDE de arduino.
Mg. Jorge Vladimir Pachas Huaytán C.I.P CLAD MODELAMIENTO DE PROCESOS.
¿Qué es Arduino?  Plataforma de electrónica abierta.
Transcripción de la presentación:

Multitareas en Arduino

Un procesador Simple No tiene Sistema Operativo Sólo ejecuta un programa a la vez.

¿Cómo implementar multitareas? Dado que no existe Sistema Operativo, es necesario implementar todo el código que se requiere para la ejecución concurrente de tareas.

Sicronización de tiempo Evitar el uso de rutinas como delay(), las cuales bloquean el uso del procesador. Implementar el código necesario para sincronizar la ejecución de múltiples tareas en el tiempo.

Midiendo el tiempo Calendarizar las tareas Medir el tiempo contínuamente; Sincronizar las tareas conforme a la calendarización y el tiempo medido.

Ejemplo

Ejecución concurrente de dos tareas Incorporar un segundo led (ver siguiente lámina) Incorporar una segunda tarea lo cual implica: Agregar variables de estado para segunda tarea (Pin, Estado, tiempo, intervalo) Agregar el código necesario para que se ejecute segunda tarea (modificar función loop).

Prototipo para ejecución concurrente de dos tareas

Código Pin1=12; Estado1 = LOW; unsigned long tiempoAnterior1 = 0; long TiempoEncendido1 = 250; long TiempoApagado1 = 750; int Pin2 = 13; int Estado2 = LOW; unsigned long tiempoAnterior2 = 0; long TiempoEncendido2 = 330; long TiempoApagado2 = 400; Variables de estado para Tarea 1 Variables de estado para Tarea 2

Código Continuación void setup() { pinMode(ledPin1, OUTPUT); }

Código Continuación void loop() { unsigned long TiempoActual = millis(); if((Estado1 == HIGH) && (TiempoActual - tiempoAnterior1 >= TiempoEncendido1)) Estado1 = LOW; tiempoAnterior1 = TiempoActual; digitalWrite(Pin1, Estado1); } else if ((Estado1 == LOW) && (TiempoActual - tiempoAnterior1 >= TiempoApagado1)) Estado1 = HIGH;

Código Continuación if((Estado2 == HIGH) && (TiempoActual - tiempoAnterior2 >= TiempoEncendido2)) { Estado2 = LOW; tiempoAnterior2 = TiempoActual; digitalWrite(Pin2, Estado2); } else if ((Estado2 == LOW) && (TiempoActual - tiempoAnterior2 >= TiempoApagado2)) Estado2 = HIGH;