Lab. 02

LABORATORIO 02

Electrónica y Automatización Industrial 4C5B
Integrantes:
-Yerdrick Jhosep Tunco Cuenta
-José Valdivia



PROGRAMACIÓN BÁSICA CON BUCLES DE CONTROL 

I. OBJETIVOS:

·         Utilizar al microcontrolador en aplicaciones de control electrónico.
·         Desarrollar y ejecutar programas en un microcontrolador PIC.
·         Programar y configurar interfaces básicas del microcontrolador.

II. MARCO TEÓRICO:

- BUCLES DE CONTROL: 
A menudo es necesario repetir una cierta operación un par de veces en el programa. Un conjunto de comandos que se repiten es denominado un bucle de programa. Cuántas veces se ejecutará, es decir cuánto tiempo el programa se quedará en el bucle, depende de las condiciones de salir del bucle.

       *   Bucle While: 


El bucle while se parece a lo siguiente:



while(expresión){
comandos
...
}

Los comandos se ejecutan repetidamente (el programa se queda en el bucle) hasta que la expresión llegue a ser falsa. Si la expresión es falsa en la entrada del bucle, entonces el bucle no se ejecutará y el programa continuará desde el fin del bucle while. Un tipo especial del bucle de programa es un bucle infinito. Se forma si la condición sigue sin cambios dentro del bucle. La ejecución es simple en este caso ya que el resultado entre llaves es siempre verdadero (1=verdadero), lo que significa que el programa se queda en el mismo bucle:

while(1){ // En vez de "while(1)", se puede escribir "while(true)"
...       // Expresiones encerradas entre llaves se ejecutarán
...       // repetidamente (bucle infinito) } 
          *  Bucle For
El bucle for se parece a lo siguiente:

for(expresión_inicial; expresión_de_condición; cambiar_expresión) {
    operaciones
    ...
}

La ejecución de esta secuencia de programa es similar al bucle while, salvo que en este caso el proceso de especificar el valor inicial (inicialización) se realice en la declaración. La expresión_ inicial especifica la variable inicial del bucle, que más tarde se compara con la expresión_ de_condición antes de entrar al bucle. Las operaciones dentro del bucle se ejecutan repetidamente y después de cada iteración el valor de la expresión_inicial se incrementa de acuerdo con la regla cambiar_expresión. La iteración continúa hasta que la expresión_de_condición llegue a ser falsa.
for(k=0; k<5; k++) // La variable k se incrementa 5 veces (de 1 a 4) y
operación          // cada vez se repite la expresión operación
...



La operación se ejecutará cinco veces. Luego, al comprobar se valida que la expresión k<5 sea falsa (después de 5 iteraciones k=5) y el programa saldrá del bucle for.

-  ESTRUCTURAS CONDICIONALES
Las condiciones son ingredientes comunes de un programa. Las condiciones permiten ejecutar una o varias sentencias dependiendo de validez de una expresión. Los operandos  condicionales if-else y switch se utilizan en las operaciones condicionales. Una sentencia condicional puede ser seguida por una sola sentencia o por un bloque de sentencias a ser ejecutadas.

            *  OPERADOR CONDICIONAL if-else:

El operador if se puede utilizar solo o asociado al operador else (if-else). Ejemplo del operador if:

if(expresión) operación;

Si el resultado de la expresión encerrada entre paréntesis es verdadero (distinto de 0) la operación se realiza y el programa continúa con la ejecución. Si el resultado de la expresión es falso (0), la operación no se realiza y el programa continúa inmediatamente con la ejecución. Como hemos mencionado, la otra forma combina tanto el operador if como el else:

if(expresión) operación1 else operación2;

Si el resultado de la expresión es verdadero (distinto de 0), se realiza operación1, de lo contrario se realiza la operación2. Después de realizar una de las operaciones, el programa continúa con la ejecución. La sentencia if-else se parece a lo siguiente:

if(expresión)
operación1
else
operación2

Si operación1 u operación2 está compuesta, escriba una lista de sentencias encerradas entre llaves. Por ejemplo:

if(expresión) {
... //
... // operación1
...} //
else
operación2

El operador if-else se puede sustituir por el operador condicional '?:':

(expresión1)? expresión2 : expresión3

Si el valor de la expresión1 es distinto de 0 (verdadero), el resultado de la expresión entera será equivalente al resultado obtenido de laexpresión2. De lo contrario, si la expresión1 es 0 (falso), el resultado de la expresión entera será equivalente al resultado obtenido de laexpresión3. Por ejemplo:


maximum = (a>b)? a : b // A la variable maximum se le asigna el
                       // valor de la variable mayor(a o b)

             * Operador Switch

A diferencia de la sentencia if-else que selecciona entre dos opciones en el programa, el operador switch permite elegir entre varias opciones. La sintaxis de la sentencia switch es:

switch (selector) // Selector es de tipo char o int
{
 case constante1:
    operación1 // El grupo de operadores que se ejecutan si
   ...        // el selector y la constante1 son equivalentes
   
    break;
   
    case constante2:

    operación2 // El grupo de operadores se ejecuta si
    ...        // el selector y la constante2 son equivalentes

    break;
    ...
   default:
   
    operación_esperada // El grupo de operadores que se ejecuta si
    ...                // ninguna constante equivale al selector
    break;
}

III. DESARROLLO: 

Programas a utilizar: ISIS PROTEUS, PIC C COMPILER y PICKT2.


-Se muestra la programación de aprendizaje que otorgo el PROFESOR,  "Funciona correctamente y fue de gran ayuda para resolver la Tarea evaluada ". 




a)  PRIMERA TAREA: Se realiza la programación de  la tarea a ser evaluada, con las siguientes condiciones:

Se tiene un sistema con 3 pulsadores (A5, D0, D1) de entrada y 8 leds de salida (Puerto C):
  -Al iniciar el programa todos los leds deben permanecer apagados.
  -Al presionar A5, debe encenderse C0, al volver a presionar, debe encenderse C1 y así                 sucesivamente. 
  -Al presionar D0, los deben encender sucesivamente pero en sentido inverso.
-La entrada D1 debe funcionar como un habilitador, es decir, por defecto el sistema está habilitado y
funcionará como lo antes mencionado. Si presiono D1, el sistema quedará “congelado” y nada funcionará Si vuelvo a presionar D1, el sistema nuevamente queda habilitado.


- Se muestra la programación para la solución de las condiciones dadas.

-En la primera condición, nos dice que si nuestra entrada "A5" detecta un pulso y la salida = 0, entonces convierte nuestra variable salida a "1" y lo visualiza por el puerto C con un recorrido de la salida una posición a la izquierda
-En la segunda condición, nos dice que si nuestra entrada D0 detecta 0 voltios y si nuestro habilitador es = 1 entonces dará un barrido de leds de derecha a izquierda , por el puerto "c" tomara valores de "10000000" - "01000000" y así sucesivamente , todos con un tiempo de 500 mS.
- Se creo una nueva variable que se le denomino "habilitador =1 " y se le añade a cada condición para que cuando nuestro habilitador tome el valor de 1 entonces nuestras condiciones funcionaran, pero cuando nuestro habilitador sea = "0" entonces no funcionara las condiciones dadas. Esta acción lo realiza el PIN D1. (invierte el valor del habilitador).


SE ADJUNTA EL LINK DE LA PROGRAMACIÓN: 




- Se muestra el resultado  del PIN(A5), lo cual se trata  de un recorrido del led, pero con cada pulso que se le otorga a este.



- Se muestra el resultado del PIN(D1), que desabilita/congela  todo las condiciones y ninguna funciona. 




VI. OBSERVACIONES:

-La condición IF, sirve para realizar una acción , "si se cumple ........ entonces funcionara dependiendo a la programación que se le otorgo". 
-La condición For, sirve para repetir un grupo de sentencias un numero determinado de veces. "implementa a mi bucle". 
- Se observó de que un valor(1/0)  , puede ser reemplazado por una variable y así poder trabajar en el sistema de control.
- Se observó de que se puede visualizar todos los leds del Puerto (C) y sacarlo con el valor de salida (00000000), para que funcione en nuestro sistema de control.

V. CONCLUSIONES:

-Se concluye de que un bucle de control , es una secuencia que se controla mediante programación.
-Programamos y configuramos la tarjeta entrenadora para realizar la emulación del programa que compilamos en el pickit.
-Se concluye que una secuencia es la estructura de control que tiene que seguir la programación aplicada , hace referencia al orden de ejecución de instrucciones, es decir , una tras otra. 
-Se concluye conocer el funcionamiento de un bucle de control , que es de seguir una secuencia de programación hasta que este se cumpla. 

VI. VÍDEOS DEMOSTRATIVOS:

-Se adjunta el link del video.
https://www.youtube.com/watch?v=24aPFXV0lm0&feature=youtu.be






VII. FOTO DE LOS INTEGRANTES que estuvieron en el laboratorio 02. 



Fin...... 

Comentarios

Publicar un comentario

Entradas populares de este blog

LAB. 01

Lab 03