EJERCICIO 1: Manejo de Interrupciones
CONCURRENCIA:
Se refiere a la habilidad de distintas partes de un programa, algoritmo, o problema de ser ejecutado en desorden o en orden parcial, sin afectar el resultado final. En Arduino Concurrencia será referido a tener varios procesos ejecutándose a la vez.
Las interrupciones nos permiten realizar procesos concurrentes.
Utilizaremos el pulsador para lograr entradas de interrupción para el Arduino:
Arme el siguiente circuito en Proteus para programar como usar las Interrupciones Externas:
//PROGRAMA DE ARDUINO
void setup() {
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(2), Funcion_IntPin2, RISING);
attachInterrupt(digitalPinToInterrupt(3), Funcion_IntPin3, RISING);
}
void loop() {
}
void Funcion_IntPin2(){
Serial.println("Presionaste Pin 2");
}
void Funcion_IntPin3(){
Serial.println("Presionaste Pin 3");
}
Codigo en Arduino:
Responda:
Explique el funcionamiento del circuito armado y el programa:
El circuito cuenta con dos pulsadores con sus respectivas resistencias 330, El cual en la pantalla serial nos mostrará gracias a serial.println el texto presionaste pin 2 , igualmente para el pin 3
attachaInterrup nos ayuda a ahorrar líneas de código , ya que lo hace mas sencillo
Explique ¿Qué acción está realizando la instrucción attachInterrupt(digitalPinToInterrupt(2), Funcion_IntPin2, RISING);?
RISING para disparar cuando el pin va de bajo a alto
attachInterrupt(digitalPinToInterrupt(2)
Activa la función específica que será ejecutada como interrupción, cada que el TIMER se dispare
Activa la interrupción y la asocia a “parpadeo”
EJERCICIO 2: Concurrencia usando Maquinas de Estados
La máquina de estados es una herramienta muy útil para los procesos concurrentes, nos permite trabajar con varios procesos a la vez, tener en cuenta que es una estrategia de programación y no una librería o un lenguaje de programación, tiene una similitud a los Autómatas, Maquinas de Turing, e incluso a la lógica de Grafcet.
Arme el circuito de un semáforo de 1 vía y diseñe una máquina de estados para su control:
Tiempo luz verde de 10 segundos
Tiempo luz ámbar de 2 segundos
Tiempo luz roja de 8 segundos
Coloque la imagen del CIRCUITO ELECTRONICO utilizado en la actividad:
Coloque el PROGRAMA EN ARDUINO utilizado en la actividad:
Arme el circuito de un semáforo de 2 vía y diseñe una máquina de estados para su control:
Tiempo luz verde semáforo 1 de 10 segundos
Tiempo luz ámbar semáforo 1 de 2 segundos
Tiempo luz verde semáforo 2 de 15 segundos
Tiempo luz ámbar semáforo 2 de 2 segundos
Coloque la imagen del CIRCUITO ELECTRONICO utilizado en la actividad:
Coloque el PROGRAMA EN ARDUINO utilizado en la actividad:
TAREA 1: Simule en Arduino
Diseñe una máquina de estados de un semáforo de 3 vías:
Para el funcionamiento de un semáforo de 3 vías, utilice los siguientes tiempos:
Tiempo luz verde semáforo 1 de 8 segundos
Tiempo luz ámbar semáforo 1 de 2 segundos
Tiempo luz verde semáforo 2 de 10 segundos
Tiempo luz ámbar semáforo 2 de 2 segundos
Tiempo luz verde semáforo 3 de 15 segundos
Tiempo luz ámbar semáforo 3 de 2 segundos
Coloque la imagen del CIRCUITO ELECTRONICO utilizado en la actividad:
Coloque el PROGRAMA EN ARDUINO utilizado en la actividad:
Averigüe sobre ¿Qué es un puente H para control de Motores de Corriente Continua?
El puente H es un circuito electrónico que permite a un motor eléctrico DC girar en ambos sentidos, avanzar y retrocerder.
Los puentes H ya vienen hechos en algunos circuitos integrados, pero también se pueden construir a partir de componentes eléctricos y/o electronicos.
Un puente H se construye con 4 interruptores (mécanicos o mediante transistores). Cuandos los interruptores S1 y S4 están cerrados ( S2 y S3 abiertos ) se aplica una tensión haciendo girar el motor en un sentido. Abriendo los interruptores S1 y S4 ( cerrando S2 y S3 ), el voltaje se invierte, permitiendo el giro en sentido inverso del motor.
Un puente H no solo se usa para invertir el giro de un motor, también se puede usar para frenarlo de manera brusca, al hacer un corto entre los bornes del motor, o incluso puede usarse para permitir que el motor frene bajo su propia inercia, cuando desconectamos el motor de la fuente que lo alimenta.
Reforzamos el aprendizaje sobre los LEDs tienen una patilla más larga que otra, esa patilla se conoce como ánodo (el polo positivo). Es por donde tiene que entrar la corriente. La patilla más pequeña se conoce como cátodo (polo negativo) y es por donde saldrá la corriente de electrones.
En este circuito del semáforo , al utilizar tantos componentes tenemos que llevar mucho cuidado con los cortocircuitos. Esto haría que el sistema no se comporte como esperamos. Ves conectando poco a poco y una vez conectado, prueba cada componente para asegurarte de que todo funciona correctamente.
Concluimos diciendo que las interrupciones tienen efectos en la medición del tiempo de Arduino, tanto fuera como dentro de la ISR, porque Arduino emplea interrupciones de tipo Timer para actualizar la medición del tiempo.
Estas interrupciones hardware, se diseñaron por la necesidad de reaccionar a suficiente velocidad en tiempos inimaginablemente cortos a los que la electrónica trabaja habitualmente y a los que ni siquiera el software era capaz de reaccionar.
Las interrupciones nos ayudan en caso si quisiera asegurarse de que un programa siempre captara los pulsos de un codificador rotatorio, para que nunca pierda un pulso, sería muy complicado escribir un programa para hacer cualquier otra cosa, porque el programa necesitaría sondear constantemente el sensor. líneas para el codificador, con el fin de capturar pulsos cuando se produjeron.
Vimos gracias el ejercicio de semaforo , como podemos armar tres simulaciones semáforos juntos , esto nos ayuda al aprendizaje de tiempos de una manera simple ya que al moemnto de la programacion indicamos los focos con LOW Y HIGH