jueves, 31 de octubre de 2019

L10-Programación con Display de 7 segmentos

LABORATORIO 10


Programación con Display de 7 segmentos


1. OBJETIVOS
  • Conocer el Display de 7 segmentos y su funcionamiento
  • Conocer las técnicas de multiplexación
  • Programar HMI para juego de encestar.

2. MARCO TEÓRICO

Descripción de los tipodvariables en el CCS COMPILER:

En cuanto a los tipos de variables, los más habituales en C los expondremos a continuación:


Descripción:

Char :  Guarda caracteres del codigo ASCII.

Int : Guarda numeros enteros.

Float: Guarda numeros decimales con precisión de 6 digitos decimales.

Short: Guarda numeros enteros con menor capacidad de almacenamiento(y rango) que int..

Double: Igual que Float pero con mayor precisión (hasta 15 digitos decimales) y mayor rango.

Long: Guarda números enteros con mayor capacidad de almacenamiento que int.

Long double: Mucho mayor precisión en calculo decimal, incluso mayor que double (hasta 19 digitos decimales).

3. TAREAS REALIZADAS

a) Problema planteado:


Se tiene un sistema con 2 pulsadores (D0, D1) de entrada y 3 displays de salida, además de un zumbador en el pin E1.
Programe según lo siguiente:
a.  Al empezar el programa, se debe mostrar el número 500.
b.  Al presionar D0, el número mostrado se debe incrementar en 5 unidades, además debe zonar un pitido.
c.   Al presionar D1, el número mostrado debe disminuir 5 unidades pero de  1 en 1 cada segundo.
d.  Si el número llega a ser mayor a 600, debe sonar 3 pitidos.

4.VIDEO





5. OBSERVACIONES
  • El entrenador brindado en el laboratorio inicialmente no funcionaba, por lo que se tuvo que volver a colocar los jumpers adecuadamente tomando como guía otro entrenador en óptimas condiciones.
  • Al momento de compilar el código de programa en el CCS C compiler nos daba un error, para lo cual se optó  por copiar el archivo 16F877A ubicado dentro de la ruta del programa instalado hacia la carpeta en donde se estaba trabajando el proyecto.
  • Durante el laboratorio para poder encender el speaker o bocina, fue necesario utilizar un bucle for, esto con la finalidad de generar un pulso cuadrado, ya que dicho dispositivo sólo funciona con corriente alterna y no con continua. posteriormente en la simulación con Isis Proteus
  • Al momento de simular el código de programación en el Proteus, se debe seleccionar el archivo “.cof”, ya que de lo contrario la simulación no sería la correcta debido a la presencia de fallas y errores.
  • Es muy importante que después de cada instrucción en el CCS COMPILER se coloque el punto y coma, para de esa manera evitar errores en el momento de la compilación.
  • Para el funcionamiento de los displays se utilizó compuertas NOT; pero lo real es utilizar transistores NPN en conjunto con resistencias para la conexión.
  • Se debe tener bastante cuidado el declarar variables en la programación, ya que estas siempre deben estar indicadas como que tipo de dato van a trabajar, ya sea entera, flotante, etc.
6. CONCLUSIONES
  • En conclusión, se aprendió la forma correcta de poder conectar y programar un display de 7 segementos cátodo común con el PIC 16F877A, esto  partir de la técnica de multiplexado.
  • Se concluye que en el código de programación se aplicó un algoritmo de división y resta , para de esa manera poder determinar el valor de las centenas, decenas y unidades, las cuales posteriormente en conjunto con el vector “tabBCD”, poder obtener un número binario y poderlo visualizar.
  • Se logró realizar la simulación del funcionamiento del PIC 16F877A y la correcta verificación del código mediante el Isis Proteus.
  • También se concluyó que para poder grabar nuestra programación hecha en el PIC físico, se debe usar el programa PICKIT 2 e importar el archivo “.hex” generado por el CCS compiler.
  • se concluye que conoció los bucles más comunes en la programación en C, los cuales son "For", "While","If-else"; reconociendo la sintaxis de cada de una de ellas.

sábado, 26 de octubre de 2019

L09-Programación básica con bucles de control

LABORATORIO 09


Programación básica con bucles de control


1. OBJETIVOS
  • Manejo de puertos de forma grupal e independiente para manejo de luces
  • Programación de sonidos mediante subrutinas
  • Creación de Subrutinas mediante funciones.
  • Declaración de variables enteras.

2. MARCO TEÓRICO

El Microcontrolador es un circuito integrado que es el componente principal de una aplicación embebida. Es como una pequeña computadora que incluye sistemas para controlar elementos de entrada/salida. También incluye a un procesador y por supuesto memoria que puede guardar el programa y sus variables (flash y RAM).  Funciona como una mini PC. Su función es la de automatizar procesos y procesar información.



       Un microcontrolador al menos tendrá:
                    -  Microprocesador.
                    -  Periféricos (unidades de entrada/salida).
                    - Memoria.
Ciclo while:
 La sintáxis del ciclo while es como sigue:

while(condition) {
//loop body
statements;
 } 
  
  •      Como puede ver la condición es evaluada al principio, antes de ejecutar el cuerpo del ciclo.
  •      Al evaluar la condición, si ésta es cierta, se ejecuta el cuerpo del ciclo y si es falsa, se procede a la siguiente instrucción después de todo
  •     Decimos que un while se ejecuta de 0 a n veces ya que cabe la posibilidad que la primera vez la condición sea falsa y el ciclo no se ejecute ni siquiera una vez.


Sentencia if - else:
La estructura condicional   “ if – else “ es la que nos permite tomar decisiones que pueden depender de los datos que introduzca el usuario, de si se ha producido algún error o de cualquier otra cosa. Traducida literalmente del inglés, se la podría llamar la estructura "si...si no", es decir, "si se cumple la condición, haz esto, y si no, haz esto otro"

Como se ve en el ejemplo, la estructura de un condicional es bastante simple:

            if (condición) {
                        sentencias_si_verdadero;
            } else {
                        sentencias_si_falso;
            }.

Sentencia If 
Es igual al funcionamiento de la sentencia “if –  else”, con la diferencia de que este último no se utiliza. La sintaxis es la siguiente:

          if (condición)
       {
       ejecuta esto sólo si la condición es verdadera
       };

La condición siempre debe devolver un valor de verdad o falsedad, y sólo en el caso de que fuera verdad se ejecutará las sentencias.

Ciclo For
El bucle for es un bucle muy flexible  y su forma de implementarlo tradicionalmente es la siguiente:

        for (/* inicialización */; /* condición */; /* incremento */) {
            /* código a ejecutar */
        }

  • Inicialización: en esta parte se inicia la variable que controla el bucle y es la primera sentencia que ejecuta el bucle. Sólo se ejecuta una vez ya que solo se necesita al principio del bucle.
  • Expresión condicional: al igual que en el bucle while, esta expresión determina si el bucle continuará ejecutándose o no.
  • Incremento: es una sentencia que ejecuta al final de cada iteración del bucle. Por lo general, se utiliza para incrementar la variable con que se inició el ciclo. Luego de ejecutar el incremento, el bucle revisa nuevamente la condición, si es verdadera tiene lugar una ejecución más del cuerpo del ciclo, si es falsa se termina el ciclo y así.
3. TAREAS REALIZADAS

a) Problema planteado:
Se tiene un sistema con 3 pulsadores (A5, D0, D1) de entrada y 8 leds de salida (Puerto C): Programar para que se comporte de la siguiente manera:
a. Al iniciar el programa todos los leds deben permanecer apagados.
b. Al presionar A5, debe encender C0, al volver a presionar, debe encender C1 y así sucesivamente.
c. Al presionar D0, los deben encender sucesivamente pero en sentido inverso.

d. 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.

4.VIDEO





4. OBSERVACIONES
  • El entrenador brindado en el laboratorio inicialmente no funcionaba, por lo que se tuvo que volver a colocar los jumpers adecuadamente tomando como guía otro entrenador en óptimas condiciones.
  • Al momento de compilar el código de programa en el CCS C compiler nos daba un error, para lo cual se optó  por copiar el archivo 16F877A ubicado dentro de la ruta del programa instalado hacia la carpeta en donde se estaba trabajando el proyecto.
  • Durante el laboratorio se logró el funcionamiento del problema planteado, con la deficiencia de que sólo al inicio, el salto de uno lógico se daba hasta el puerto C1, corregidiendose posteriormente en la simulación con Isis Proteus
  • Al momento de simular el código de programación en el Proteus, se debe seleccionar el archivo “.cof”, ya que de lo contrario la simulación no sería la correcta debido a la presencia de fallas y errores.
  • Es muy importante que después de cada instrucción en el CCS COMPILER se coloque el punto y coma, para de esa manera evitar errores en el momento de la compilación.
5. CONCLUSIONES
  • En conclusión, se aprendió el correcto manejo de la sentencia IF en la programa CCS COMPILER, la cual nos permite cumplir ciertas sentencias siempre en cuando se cumpla la condición a ser evaluada.
  • Se concluye se logró las condición usadas dentro de la sentencia If, no necesariamente tiene que ser sólo una; sino que se puede concatenar mas de 2 condiciones, en este caso se hizo de la función lógica  "&&", la cual indica que ambas condiciones deben cumplirse en la sentencia If.
  • Se logró realizar la simulación del funcionamiento del PIC 16F877A y la correcta verificación del código mediante el Isis Proteus.
  • También se concluyó que para poder grabar nuestra programación hecha en el PIC físico, se debe usar el programa PICKIT 2 e importar el archivo “.hex” generado por el CCS compiler.
  • se concluye que conoció los bucles más comunes en la programación en C, los cuales son "For", "While","If-else"; reconociendo la sintaxis de cada de una de ellas.

sábado, 19 de octubre de 2019

L08-Herramientas de Programación Hardware y Software

LABORATORIO 08


Herramientas de Programación Hardware y Software


1. OBJETIVOS
  • Listar las partes internas generales de un microcontrolador.
  • Identificar las funciones generales de un microcontrolador
  • Introducción a la programación en PIC C Compiler
  • Cómo utilizar el Entrenador

2. MARCO TEÓRICO

El Microcontrolador es un circuito integrado que es el componente principal de una aplicación embebida. Es como una pequeña computadora que incluye sistemas para controlar elementos de entrada/salida. También incluye a un procesador y por supuesto memoria que puede guardar el programa y sus variables (flash y RAM).  Funciona como una mini PC. Su función es la de automatizar procesos y procesar información.



       Un microcontrolador al menos tendrá:
                    -  Microprocesador.
                    -  Periféricos (unidades de entrada/salida).
                    - Memoria.
Diferencia entre un microprocesador frente a microcontrolador
La diferencia clave entre ambos términos es la presencia de periféricos. A diferencia de los microcontroladores, los microprocesadores no tienen memoria incorporada, ROM, puertos serie, temporizadores y otros periféricos que constituyen un sistema. Se requiere un bus externo para interactuar con los periféricos. Un microcontrolador, por otro lado, tiene todos los periféricos, como procesador, RAM, ROM e IO, todos integrados en un solo chip. Tiene un bus de control interno que no está disponible para el diseñador. Como todos los componentes están empacados en un solo chip, es compacto lo que lo hace ideal para aplicaciones industriales a gran escala. El microprocesador es el corazón del sistema informático y el microcontrolador es el cerebro.

Descripción del PIC 16F877A:
Es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, su consumo de potencia es muy bajo y además es completamente estatico capaz de realizar diferentes actividades que requieran del procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos.

Ø  Memoria ROM: 8Kb
Ø  Memoria RAM: 368 x 8 bytes
Ø  Pines I/O: 33
Ø  Frecuencia: 20 Mhz con cristal externo
Ø  Permite programación ICSP



3. VIDEO




4. OBSERVACIONES
  • Al momento de conectar nuestro módulo de entrenamiento a la Pc,  ya que se trabaja con máquina virtual, es muy importante que éste sea reconocido por dicha máquina, ya que de lo contrario nunca sería reconocido por el grabador PICKIT 2, para eso se tiene que ir a la opción dispositivos del VM-Ware y habilitar dicho componente.
  • Al momento de compilar el código de programa en el CCS C compiler nos daba un error, para lo cual se optó  por copiar el archivo 16F877A ubicado dentro de la ruta del programa instalado hacia la carpeta en donde se estaba trabajando el proyecto.
  • Una vez ya grabada la programación en el PIC, se tuvo el inconveniente de que el led no prendía, esto debido a que faltaba prender el pequeño interruptor que habilitaba la columna N°3 de la matriz de los leds en el módulo.
  • Al momento de simular el código de programación en el Proteus, se debe seleccionar el archivo “.cof”, ya que de lo contrario la simulación no sería la correcta debido a la presencia de fallas y errores.
5. CONCLUSIONES
  • En conclusión, se aprendió la correcta diferencia entre un microprocesador y un microcontrolador, siendo la segunda un dispositivo que ya tiene dentro de sí un microprocesador y periféricos internos a comparación de la primera, cuyos periféricos son externos.
  • Se concluye se logró aprender que la arquitectura de los microprocesadores es VON NEUMANN y la arquitectura de los microcontroladores es la de  HARVARD, teniendo ventajas y desventajas cada una de ellas.
  • Se logró realizar la simulación del funcionamiento del PIC 16F877A y la correcta verificación del código mediante el Isis Proteus.
  • También se concluyó que para poder grabar nuestra programación hecha en el PIC físico, se debe usar el programa PICKIT 2 e importar el archivo “.hex” generado por el CCS compiler.

viernes, 4 de octubre de 2019

L07-Coursera - Retos para el Pastillero en Arduino

LABORATORIO 07


Coursera -  Retos para el Pastillero en Arduino


1. OBJETIVOS
  • Implementar la simulación de circuitos con Arduino
  • Realizar programas con el IDE de Arduino.
  • Comprender el funcionamiento como hacer los retos presentados por el docente.

2. MARCO TEÓRICO
Arduino

Resultado de imagen para arduino
Arduino es una compañía de desarrollo de software y hardware de fuente abierta, así como una comunidad internacional que diseña y manufactura placas de desarrollo de hardware para construir dispositivos digitales y dispositivos interactivos que puedan detectar y controlar objetos del mundo real.

Resultado de imagen para arduino

El entorno de desarrollo integrado (IDE) de Arduino es una aplicación multiplataforma (para Windows, macOS, Linux ) que está escrita en el lenguaje de programación Java. Se utiliza para escribir y cargar programas en placas compatibles con Arduino, pero también, con la ayuda de núcleos de terceros, se puede usar con placas de desarrollo de otros proveedores.

Tinkercad

Resultado de imagen para tinkercad

Tinkercad es un software gratuito online creado por la empresa Autodesk, una de las empresas punteras en el software de diseño 3D de la mano de su programa estrella para tal fin, Inventor.


Pantalla LCD
Resultado de imagen para pantalla lcd 16x2 gif animado
Una pantalla de cristal líquido o LCD (sigla del inglés Liquid Crystal Display) es una pantalla delgada y plana formada por un número de píxeles en color o monocromos colocados delante de una fuente de luz o reflectora. A menudo se utiliza en dispositivos electrónicos de pilas, ya que utiliza cantidades muy pequeñas de energía eléctrica.
Cada píxel de un LCD típicamente consiste en una capa de moléculas alineadas entre dos electrodos transparentes, y dos filtros de polarización, los ejes de transmisión de cada uno que están (en la mayoría de los casos) perpendiculares entre sí. Sin cristal líquido entre el filtro polarizante, la luz que pasa por el primer filtro sería bloqueada por el segundo (cruzando) polarizador.

Motor DC.


El motor de corriente continua, denominado también motor de corriente directa, motor CC o motor DC (por las iniciales en inglés direct current), es una máquina que convierte energía eléctrica en mecánica, provocando un movimiento rotatorio, gracias a la acción de un campo magnético.


3. VIDEO



4. OBSERVACIONES
  • Se observo que en clase de laboratorio se quiso implementar la parte de semana del curso de Coursera, logrando la realización de los códigos establecidos.
  • Se aprecio que en Tinkercad debíamos establecer bien nuestra programación se aprecia que el tiempo no es el mismo que se tiene con un reloj sino que el tiempo en el tinkercad es mas lento.
  • Para poder establecer hacer que el tiempo pueda acelarar mas rápido se multiplica el tiempo para poder lograr ello y poder visualizar de mejor manera lo tiempo que se tenían en nuestra programación.
5. CONCLUSIONES
  • En conclusión, el importante comprender la estructura del lenguaje de programación en C, empleando el software Arduino IDE para poder hacer la respectiva programación.
  • Se concluye que sobre los vídeos del curso Coursera que se llevo a cabo en el laboratorio nos ayuda a poder poner en practica nuestra habilidad de conocimiento y capacidad para resolver retener información que se vio, así como también nuestra manera de trabajar en el hecho de analizar las sugerencias que dieron.
  • Se lograron emplear los conocimientos sobre programación de Arduino adquiridos hasta el momento, para así crear un programa que permitiese realizar las acciones descritas por el docente.
  • También se concluyó que Arduino presenta las suficientes prestaciones con su software IDE para poder resolver cualquier tipo de problema relacionado con la automatización de manera simple