viernes, 13 de diciembre de 2019

Laboratorio N° 14-15-16


PROYECTO FINAL CON uC


DOBLECES PARA UN PROCESO DE ORTODONCIA

“DUPO”


1. DESCRIPCIÓN DEL PROYECTO:

En esta oportunidad se mostrará cómo construir una máquina dobladora de alambre 3D basada en Arduino. Este es en realidad un sistema mecatrónico típico porque involucra ingeniería mecánica, eléctrica e informática. Por lo tanto, creo que muchos estudiantes de ingeniería o cualquiera que sea nuevo en mecatrónica encontró este proyecto interesante.

Describimos el principio de funcionamiento de esta máquina dobladora de alambre 3D. Entonces, primero, el cable pasa a través de una serie de rodillos o alisadores. Usando un motor paso a paso, el alambre se alimenta con precisión al mecanismo de doblado de alambre que también usa un motor paso a paso, así como un pequeño servo para el proceso de doblado.

También hay otro motor paso a paso, llamado eje Z, que realmente permite a la máquina crear formas tridimensionales. Por supuesto, el cerebro de la máquina es una placa Arduino que, junto con los otros componentes electrónicos, está conectada a una PCB diseñada a medida.



2. JUSTIFICACIÓN:

¿En qué manera influye el uso de herramientas manuales como alicates, alambres para realizar separadores, braquets y férulas, el tiempo que se necesita para diseñar estas herramientas Y el daño que sufren en las manos como futuros cirujanos los alumnos de la especialidad de odontología de la institución UANCV Arequipa?

Se realizó el análisis de los campos en donde se podría aplicar el presente proyecto, siendo de mucha ayuda a sus usuarios que se verán beneficiados con el trabajo optimo que realiza el presente proyecto.

        2.1 Objetivo General:

Elaborar un prototipo para que realice de manera automática los dobleces para los tratamientos en ortodoncia.

        2.2 Objetivos Especificos:

Eliminar el daño a las manos estableciendo criterios de seguridad y confiabilidad para un cirujano.

Reducir el tiempo en el diseño es estas herramientas para tratamientos odontológicos.

3. MATERIALES:

- Motores paso a paso - NEMA 17 - 12V - 1.7A
- Controlador paso a paso DRV8825
- Interruptor de límite micro
- Adaptador 12V 3ª
- Conector de alimentación
- Arduino Mega
- Impresora 3D
- shield arduino DRV8825
- Servo Motor

4. MARCO TEÓRICO:

REFUERZO PARA EL ARMADO DE VIGAS EN UNA CONSTRUCCION CIVIL

DOBLADO DE ACERO-GANCHOS Y DOBLECES

Las barras de acero se deben doblar por diferentes motivos, por ejemplo, para formar los estribos. Estos dobleces deben tener un diámetro adecuado para no dañar el acero (Ver figura 32). Por esta razón, el Reglamento de Construcción especifica diámetros de doblez (D) mínimos que varían según se formen dobleces a 90º, 135º O 180º.


CASO A : DIÁMETRO DE DOBLADO EN REFUERZO LONGITUDINAL


Los diámetros de doblado se muestran a continuación, en la tercera columna de la Tabla Nº. 01.

Tabla Nº.01: Diámetros de doblado en barras longitudinales


Por otro lado, para reproducir estos diámetros de doblez cuando se está trabajando el fierro, es necesario simplemente separar el tubo de doblado de la trampa una cierta medida que está indicada en la cuarta y quinta columna de la Tabla Nº. 01 (Ver figura 34). Una vez que se ha dado la separación correspondiente, se procede a doblar la barra (Ver figura 35).


CASO B: DIÁMETRO DE DOBLADO EN ESTRIBOS

Cuando se doblan estribos (ver figura 36) tenemos dos casos : El doblez a 90º y el doblez a 135º. En la Tabla Nº. 02 se indican los diámetros mínimos de doblado y las distancias entre tubo y trampa (L) para cada ángulo. Para doblar estribos,el diámetro mínimo de doblado es 4 veces el diámetro de la barra (db).

Tabla Nº 02: Diámetros de doblado en estribos



TECNICAS PARA REALISAR DOBLECES EN ARCOS NiTi


el plan de tratamiento ha evolucionado con el uso de la fuerza bajo alambres de níquel titanio doblados manualmente. Debido a su alta recuperación elástica, baja rigidez, son los arcos iniciales en la nivelación y alineación.


APLICACIONES CLINICAS DE ¨LOOPS¨ EN ORTODONCIA

Aprender a hacer loops en la especialidad odontológica es una prueba que todos los alumnos de ortodoncia deben de pasar, todos pasamos por ahí, algunos pasamos sin pena ni gloria otros con todos nuestros dedos ensangrentados, en fin, es parte del “camino del ortodoncista “.


5. VIDEO EVIDENCIAS:

5.1 Explicación de la Programación:


5.2 Calibración de los Drivers:


5.3 Funcionamiento


5.4 Simulación






6. OBSERVACIONES:


  • La adquisición de los motores NEMA17 resultará complicada, ya que estos son motores de precisión ya que se centran mas que todo en el torque, el cual es necesario para doblar la especie de fierros o alambres ya que se necesita fuerza para ello.
  • Los drivers se utilizan como un puente "h" para una mejor comunicación y control con estos equipos, y ademas poder controlar de mejor manera su torque.
  • El código de arduino puede ser mejorado, ya que solo está en una etapa básica para el funcionamiento del proyecto.
  • El fierro de construcción no debe enderezarse después de haberse doblado, si existe algún tipo de error se debe rectificar la parte doblada.
  • El tubo y la trampa deben tener el tamaño correcto para que no ajuste el fierro y asi permitimos que este realice movimientos libres al realizar los dobleces.

7. CONCLUSIONES:

  • Llegamos a la conclusión que este prototipo puede ser aplicado en diversos ámbitos como medicina y en construcción civil para reducir tiempo y optimizar el trabajo realizado de manera manual, aplicando diferentes métodos que pueden resultar tediosos y hasta peligrosos.
  • En conclusión, este prototipo está en su primera fase y se considera la aplicación de dos softwares para dar solución de manera didáctica y así poder conseguir un resultado favorable para poder analizar el funcionamiento.
  • Se utilizó material necesario para ensamblar el prototipo y realizar su funcionamiento de manera automática mediante software "Arduino", con lo cual reemplazamos el uso de las herramientas manuales que resulta en la perdida de mas tiempo, el prototipo mejorara y optimizara el tiempo de trabajo, evitando de esta manera lesiones lumbares y tiempos muertos.
  • Este prototipo puede ser aplicado en diversos ámbitos como medicina y en construcción civil para reducir tiempo y optimizar el trabajo
  • En conclusión, este prototipo está en su primera fase y se considera la aplicación de dos softwares para dar solución de manera didáctica

8. INTEGRANTES:

  • Quispe Cutipa Nelson Guidmar 
  • Sejje Yucra Alex Eulogio 
  • Ticona Mamani Ilder Juan
  • Zaraza Calabe Carlos Simón 











Laboratorio N° 13

PROGRAMACIÓN DE MICRO-CONTROLADORES PIC

LECTURA DE ENTRADAS  ANALÓGICAS 

TERMOSTATO DIGITAL CON PANTALLA LDC


1. Objetivos:

  • Lecturas analógicas de una canal del PIC.
  • Configuración de un sensor de temperatura.
  • Lectura analógica en una pantalla LCD.

2. Materiales:
  • CCS Compiler instalado.
  • Entrenador de PICS
  • Pantalla LCD
  • PIC16F877A
  • Guía de Laboratorio. El trabajo se desarrolla de manera GRUPAL.
  • PC con Software de simulación



3. MARCO TEÓRICO:


3.1 TERMOSTATO DIGITAL

Mientras que los termómetros solo nos dicen cuál es la temperatura del ambiente, los termostatos también son capaces de regularla, aumentando el calor si el ambiente está muy frío y bajando las temperaturas si hace mucho calor. Para ello, el termostato controla los sistemas de calefacción y refrigeración, que son los dos sistemas que más energía consumen en el hogar y que más influyen en tu comodidad. Aunque no parezca muy simple, su funcionamiento no implica muchas dificultades y saber cómo funciona un termostato puede resultarte muy útil.

3.2 APLICACIÓN DEL LABORATORIO

Se trata de un circuito que deberá controlar el encendido y apagado de un relé (el cual se supone que conecta/desconecta un elemento calefactor) dependiendo de la temperatura leída en el sensor y de la temperatura seteada por los pulsadores respectivos. La pantalla LCD y los leds muestran el estado del termostato.
Este proyecto deberá contar con las siguientes partes:



Textos a mostrar en la pantalla LCD:



3.2 PIC Y ENTRADAS ANÁLOGAS

El PIC 16F877A, entre sus varios periféricos, posee un conversor análogo a digital con una resolución de 10 bits que puede leer los voltajes presentes en los pines marcados como AN0 hasta AN7.



La lectura de estos se hace de forma multiplexada, una a la vez. Como buen sistema digital, las lecturas son tratadas como muestras tomadas a intervalos regulares de tiempo, las que son retenidas por un capacitor interno. La cantidad de muestras por segundo o velocidad de lectura son un submultiplo de la velocidad de oscilación del PIC por lo cual se debe cuidar que esta no resulte ser mayor que el tiempo que el capacitor interno demora en cargarse.

Una mala elección de velocidad de lectura, puede resultar en mediciones erróneas, por debajo de las magnitudes que se pretenden medir. Según Microchip, el tiempo de adquisición de los datos debe ser mayor a 19.72us.

Registros Involucrados en la conversión A/D

La conversión analogo-digital, se configura y controla con los registros ADCON0 y ADCON1, donde es posible configurar aspectos como el canal (pin del PIC) en que se hará la lectura, velocidad de muestreo, estado de la conversión, pines análogos o digitales, entre otros. Por otro lado la conversión resultante se alberga en los registros ADRESH y ADRESL La gráfica lo explica de mejor manera.


4. VÍDEO EVIDENCIA:
  • Explicación del programa: 




  • Implementación en el entrenador: 



5. OBSERVACIONES:
  • Debido a que la variable "set" es un entero de 8 bits cuenta con 255 posibles valores, para que no existan inconvenientes al aumentar y este valor exceda los 100 propuestos en el proyecto, es necesario poner condiciones para mantener 100 como valor máximo; del mismo modo con el valor mínimo de 0.
  • Fue necesario limpiar la pantalla del display LCD constantemente utilizando el comando "\f", para evitar caracteres superpuestos al alternar entre textos de diferentes funciones.
  • Al iniciar la implementación se debe activar el switch que corresponde a la columna C, para energizar los LEDs y estos funcionen.
  • Se tomaron en cuenta los conocimientos previos analizados en la investigación del tema, ya que para poder controlar el proceso de manera eficiente es necesario realizar simulaciones por ejemplo: el potencio-metro que funcionaba como calefactor.
6. CONCLUSIONES:
  • Se llegó a la conclusión de que el control ON/OFF está basado en encender o apagar un actuador para que este manipule la variable de proceso (PV) y alcance un valor predefinido Set point (SP).
  • Se logró implementar el Termostato digital empleando el PIC16F877A y usando su característica de lectura analógica de 0 a 5V, siendo este circuito capaz de realizar un control ON-OFF con histéresis de 0.5 °C con lamparas que indican si el valor de temperatura es muy elevado, reducido o se encuentra en un rango aceptable; aparte de lo previo mencionado el LCD indicaba cuando la temperatura era mayor a 90 °C, arrojando una señal de alerta al usuario.
  • Al finalizar el laboratorio se logró implementar el funcionamiento de las entradas analógicas empleando el PIC16F877A tato para una lectura de 8 bits como para lecturas de 10 bits, siendo esta última el máximo valor de resolución que se puede lograr con este micro-controlador.
  • Se logró implementar el control de temperatura mediante el uso de las condiciones de "IF", en los cuales el principal parámetro es la comparación de la variable de temperatura con el valor de Set Point.
  • Se simulo el funcionamiento de un relé al utilizar un diodo LED, este se activa cuando PV < SP, y se desactiva cuando PV >= SP.
  • El diodo LED que representa al actuador solamente funciona luego de recibir la señal del pulsador E0 que confirma el valor de set point configurado.







Laboratorio N° 12

PROGRAMACIÓN DE MICRO-CONTROLADORES PIC

MANEJO DE TIMER Y LAS INTERRUPCIONES

1. Objetivos:

  • Conocer el funcionamiento y la configuración de las Interrupciones
  • Conocer el funcionamiento y la configuración del Timer cero
  • Aplicar estos conocimientos en la realización de un cronómetro.


2. Materiales:
  • CCS Compiler instalado.
  • Entrenador de PICS
  • Pantalla LCD
  • PIC16F877A
  • Guía de Laboratorio. El trabajo se desarrolla de manera GRUPAL.
  • PC con Software de simulación



3. MARCO TEÓRICO:


3.1 Temporizadores

El timer0 PIC es un temporizador contador de 8 bits, el registro TMR0 es el temporizador contador timer0 en si, es donde se guardan los valores del timer0 PIC, cuando es utilizado como temporizador sus valores aumentaran de uno en uno entre 0 y 255 con cada 4 ciclos de reloj, no olvidar que cada ciclo de instrucción del microcontrolador PIC es realizado en 4 ciclos de reloj, por ejemplo si el oscilador con el que está funcionando el microcontrolador PIC es de 4MHz, entonces el registro TMR0 aumentará una unidad en cada 1us, si el registro TMR0 se incrementa en 100 unidades habrán transcurrido 100us; cuando el timer0 PIC es utilizado como contador el registro TMR0 ya no aumenta su valor de uno en uno en cada 4 ciclos de reloj, sino que lo hará mediante el flanco de subida o el flanco de bajada de alguna señal que llegue a un pin especial del PIC conectado al timer0 PIC, este pin es identificado como T0CKI que en el PIC16F877A es el pin6 o RA4, esto puede variar de acuerdo al microcontrolador PIC utilizado, pero siempre se llamará T0CKI.

El registro TMR0 del timer0 PIC puede ser leído y escrito, puede ser prescalado para que el tiempo en su incremento de valor en una unidad sea mayor, el timer0 PIC cuando alcanza su valor máximo de 255 se reinicia, volviendo a incrementar sus valores de 0 a 255, además cuando llega a su valor máximo y se reinicia puede producir una interrupción, lo que se decide por programa.

Se verá en este caso el uso del timer0 PIC como temporizador, normalmente el registro TMR0 del timer0 PIC irá aumentando sus valores con cada ciclo de instrucción del microcontrolador PIC, y para estos microcontroladores a cada ciclo de instrucción le toma 4 ciclos del oscilador que se esté utilizando, si se usa por ejemplo un cristal de Fosc=4Mhz entonces cada ciclo del oscilador será de 0,25us, luego cada ciclo de instrucción tardará 4 veces este valor, es decir 4*(0,25us) lo que viene a ser 1us, a esto se se conoce como ciclo máquina TCM=4/Fosc, entonces el registro TMR0 aumentará en una unidad cada microsegundo cuando el oscilador es de 4Mhz.

Como el registro TMR0 es de 8 bits este aumentará desde 0 o desde algún valor que se le ponga como valor inicial hasta un máximo de 255, por ejemplo si va desde 0 hasta 255 habrán transcurrido 255us luego volverá a 0 pero en esa vuelta a 0 transcurre 1us mas, por lo que en ir de 0 a 255 y volver a 0 transcurren 256us; no siempre se utiliza una FOSC de 4Mhz esto puede variar, por lo que como consecuencia variará el tiempo que trascurre para que el registro TMR0 aumente su valor en una unidad.

El temporizador contador pic TMR0 cuenta con lo que se conoce como prescaler esto hace que la frecuencia de trabajo FOSC se divida por este prescaler, con lo que se logra que el temporizador contador pic tarde un poco mas en aumentar su valor en una unidad; el prescaler del time0 PIC para el PIC16F877A puede tomar el valor de 1, 2, 4, 8, 16, 32, 64, 128 o 256; estos valores se eligen mediante las combinaciones de los bits 0, 1 y 2 del registro OPTION_REG.
En la siguiente tabla se ve los valores que hay que dar a estos bits para obtener los diferentes valores de los prescaler para el timer0 PIC.

3.2 Interrupciones

La interrupción, como su nombre lo indica, es la forma que tienen los periféricos de llamar la atención del micro para realizar una tarea urgente o prioritaria. 



De esta manera es más práctico trabajar con interrupciones que sólo llaman cuando un evento ocurre, en vez de polling, en donde tenemos que verificar si el evento ocurrió, esto gasta tiempo y recursos de la máquina. La familia PIC16F87XA PIC16F87XA PIC16F87XA PIC16F87XA tiene 15 fuentes de interrupción. Hay un habilitador global GPIE habilitador global GPIE habilitador global GPIE habilitador global GPIE y un habilitador de habilitador de habilitador de habilitador de periféricos PEIE periféricos PEIE periféricos PEIE periféricos PEIE, cada módulo periférico tiene 2 bits asociados, el de habilitación y el de bandera (por ejemplo, módulo TMR0): 



  • TMR0IF TTMMRR00IIFF TMR0IF TMR0 Interrupt Flag (bandera de interrupción). Se genera (1) cuando ocurre un evento.

  • TMR0IE TTMMRR00IIEE TMR0IE TMR0 Interrupt Enable. Habilita la interrupción, se habilita con (1) y, si no está habilitada (0), no genera interrupción aunque haya bandera de interrupción.






4. VÍDEO EVIDENCIA:
  • Explicación del programa: 



  • Implementación en el entrenador: 



5. OBSERVACIONES:
  • Algunos módulos de entrenamiento al finalizar la cuenta, automáticamente iniciaban una cuenta regresiva desde el valor 258:00. Asi que se optó por subir el programa a un módulo sin este inconveniente.
  • Se empleó el Timer0 para crear una base de tiempo de fracción de segundo que gradualmente iba incrementando una variable equivalente a la centena de un segundo, para así terminar formando un temporizador que trabaja con una precisión muy cercana al segundo real.
  • Debido a la declaración "%02u" separamos los espacios necesarios para escribir los datos de minutos y segundos en valores enteros ya que trabajamos con tiempos.
6. CONCLUSIONES:
  • Se concluye que los micro-controladores pueden también emplear interrupciones de diversas prioridades, siendo que las de más alta prioridad pueden interrumpir a las menores, pero, las menores no pueden terminar la ejecución de una mayor puesto a que la bandera que permite la ejecución de estas es puesta a "0" lógico después de la ejecución de una interrupción de mayor prioridad.
  • Se empleó el TIMER0 tanto como temporizador y como contador, debido a que realiza un conteo el cual es un registro de 8 bits y trabaja directamente con el clock del PIC, aveces siendo necesario solamente ciertas configuraciones para obtener valores muy cercanos al tiempo real.
  • Concluimos que las interrupciones sirven para llamar la desviar la atención del micro-controlador PIC mientras este se encuentra realizando un proceso o una serie de sentencias, y estas son necesarias para realizar una tarea que es de mayor prioridad que el resto en ese momento.
  • Para obtener un valor de centésima, se empleo la cuenta desde el valor 61 hasta el 255 del registro propio del TIMER0.
  • Se concluye que la diferencia en el código entre un cronómetro ascendente y uno descendente se basa en que al llegar las centésimas a 100 los segundos deben aumentar en 1 para ascendente mientras que este debe reducirse en 1 para el descendente. Para el valor de minutos, si los segundos llegan a 59 este aumenta en ascendente, y si llegan a 00 este disminuye para cronómetro descendente.








jueves, 12 de diciembre de 2019

Laboratorio N° 11

PROGRAMACIÓN DE MICRO-CONTROLADORES PIC

PROGRAMACIÓN DE UNA PANTALLA LCD

1. Objetivos:

  • Conocer el Display LCD y su funcionamiento
  • Programar eficientemente el LCD 
  • Programar HMI para proyecto actual.

2. Materiales:
MATERIALES Y EQUIPO

  • CCS Compiler instalado.
  • Entrenador de PICS
  • Pantalla LCD
  • PIC16F877A
  • Guía de Laboratorio. El trabajo se desarrolla de manera GRUPAL.
  • PC con Software de simulación



3. Marco teórico:

3.1 PANTALLA LCD (Liquid Crystal Display)

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


La superficie de los electrodos que están en contacto con los materiales de cristal líquido es tratada a fin de ajustar las moléculas de cristal líquido en una dirección en particular. Este tratamiento suele ser normalmente aplicable consiste en una fina capa de polímero que es unidireccionalmente frotada utilizando, por ejemplo, un paño. La dirección de la alineación de cristal líquido se define por la dirección de frotación.


Antes de la aplicación de un campo eléctrico, la orientación de las moléculas de cristal líquido está determinada por la adaptación a las superficies. En un dispositivo twisted nematic, TN (uno de los dispositivos más comunes entre los de cristal líquido), las direcciones de alineación de la superficie de los dos electrodos son perpendiculares entre sí, y así se organizan las moléculas en una estructura helicoidal, o retorcida. Debido a que el material es de cristal líquido birefringent, la luz que pasa a través de un filtro polarizante se gira por la hélice de cristal líquido que pasa a través de la capa de cristal líquido, lo que le permite pasar por el segundo filtro polarizado. La mitad de la luz incidente es absorbida por el primer filtro polarizante, pero por lo demás todo el montaje es transparente.



Cuando un dispositivo requiere un gran número de píxeles, no es viable conducir cada dispositivo directamente, así cada píxel requiere un número de electrodos independiente. En cambio, la pantalla es multiplexada. En una pantalla multiplexada, los electrodos de la parte lateral de la pantalla se agrupan junto con los cables (normalmente en columnas), y cada grupo tiene su propia fuente de voltaje. Por otro lado, los electrodos también se agrupan (normalmente en filas), en donde cada grupo obtiene una tensión de sumidero. Los grupos se han diseñado de manera que cada píxel tiene una combinación única y dedicada de fuentes y sumideros. Los circuitos electrónicos o el software que los controla, activa los sumideros en secuencia y controla las fuentes de los píxeles de cada sumidero.


3.2 Manejo del LCD usando PICC compiler

Para el manejo del lcd con un microcontrolador PIC y el software de programación PICC compiler, lo primero que se debe realizar es el direccionamiento de los pines del microcontrolador a los pines del LCD, para ello se emplea la siguiente estructura en el software.
Se puede ver también como es que se declara la librería después de la declaración de los pines.
Al iniciar el programa es necesario darle una configuración de arranque al LCD, para ello se emplea la función "lcd_init();" la configuración por defecto es: Comunicación por 4 bits, activación de las 2 filas, desplazamiento derecha y cursor normalmente "escondido".

4. VÍDEO EVIDENCIA:
  • Explicación del programa: 


  • Implementación en el entrenador: 



5. OBSERVACIONES:
  • Una de las formas de habilitar los números negativos en la programación fue realizando la declaración "%4ld" que habilita 4 espacios para los datos y ld para leer datos negativos.
  • Fue necesario agregar un "delay" dentro de las estructuras "while" de los pulsadores para crear funciones antirrebote y evitar pulsos en falso.
  • Se deben utilizar dos variables distintas para los bucles "for" debido a que se necesita una para la función BIP del parlante y para que este suene tres veces al llegar al valor máximo se debe emplear una distinta. Si se emplea la misma variable para dos o más bucles "for" se presentaran problemas ya que la variable funcionará como si estuviera en el primer bucle del programa
6. CONCLUSIONES:
  • Se utilizaron tres pulsadores para variar los valores mostrados en el LCD y uno de ellos para habilitar y des-habilitar los otros dos botones,  siendo "D0" el incremento en 50, "D1" la disminución en 15 y el "E0" el habilitador/des-habilitador de los dos primeros pulsadores.
  • Se concluye que el LCD 16 x 2 es el display adecuado para esta aplicación debido a que solo son necesarias dos filas para mostrar la información del programa, la primera para el texto de "CONTADOR", "FULL", "VALOR MÍNIMO" y "DESHABILITADO", y la segunda para mostrar los valores. Su consumo de corriente es muy bajo comparado con otros displays.
  • Se concluye que para que el parlante solo suene tres veces al llegar al valor máximo es necesario utilizar una estructura "for" donde la variable debe ser menor a 3 o repetir el bloque 3 veces.
  • Se concluye que al habilitar y des-habilitar los pulsadores de incremente y disminución con un mismo pulsador "E0" se debe asignar a la variable "hab" esta misma pero negada, es decir, "hab=!hab" para que se realice un toggle cada vez que se presiona este pulsador.
  • Se logró identificar la codificación de una variable dentro de la cadena de caracteres generada por la instrucción "printf".
  • Se logró identificar la declaración de variables necesarias para el correcto funcionamiento en nuestro programa, por ejemplo: emplear signed int16 en lugar de solo int16 para la habitación con números negativos.








Laboratorio N° 10

PROGRAMACIÓN DE MICRO-CONTROLADORES PIC

MANEJO DE 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. Materiales:

MATERIALES Y EQUIPO

  • CCS Compiler instalado.
  • Entrenador de PICS
  • PIC16F877A
  • Guía de Laboratorio. El trabajo se desarrolla de manera GRUPAL.
  • PC con Software de simulación



3. Marco teórico:

3.1 TIPOS

Los tipos de datos que admite el software PIC C Compiler son:


También podemos escribir constantes o valores de variables de forma decimal, octal, hexadecimal o decimal de la siguiente manera.






También se pueden manipular individualmente los pines que componen el puerto, para el caso anterior debían ser valores de por lo menos un byte, pero para este caso se emplean las valores binarios.










3.2 Manejo del Display de 7 segmentos.



Resultado de imagen para display 7 segmentos que esEl display 7 Segmentos es un dispositivo opto-electrónico que permite visualizar números del 0 al 9. Existen dos tipos de display, de cátodo común y de ánodo común. Este tipo de elemento de salida digital o display, se utilizabá en los primeros dispositivos electrónicos de la década de los 70’s y 80’s. Hoy en día es muy utilizadon en proyectos educativos o en sistemas vintage. También debido a su facilidad de uso, mantenimiento y costo, son utilizados en relojes gigantes o incluso como marcadores en algunos tipos de canchas deportivas.




Para la manipulación de un Display de 7 segmentos mediante un micro controlador es necesario reconocer los pines de los segmentos de este elemento y posteriormente direccionarlos directamente a los pines de un puerto del micro controlador.

Para este caso podemos empezar desde el pin "a" del Display y direccionarlo con el pin "B0" del puerto "B".

Resultado de imagen para display 7 segmentos gif
Direccionamiento de segmentos a prender para cada número:
En las siguientes imágenes podemos apreciar que se encuentran de color rojo los segmentos a habilitar para poder escribir un numero, y debajo el direccionamiento que  se haría en lenguaje C.




















4. VÍDEO EVIDENCIA:
  • Explicación del programa: 


  • Implementación en el entrenador: 



5. OBSERVACIONES:
  • Para poder observar el primer dígito en la simulación de Proteus, es necesario aumentar el valor del potenciómetro al 100%.
  • El código implementando en físico funciona de manera correcta, mientras que el realizado en simulación presenta diversos errores al mostrar los valores correctos, obviandose ciertos segmentos.
  • Una vez presionado el botón de incremento en el programa, solo quedaba encendido el último "display", esto debido a que el programa no realizaba la secuencia de "visualizar" cuando este se encontraba dentro de un retardo, tratando de llegar a una solución, se le aumentaron dos visualizar para aplicar el retardo en ambos tiempos. 
6. CONCLUSIONES:


  • Se logró realizar las modificaciones necesarias al programa inicial para realizar las acciones descritas en el laboratorio, además de encontrar un método para lograr visualizar constantemente el valor completo en el arreglo de "displays" sin que se vea obstruido por un retardo de programa.
  • Se concluye que el PIC 16F877A permite realizar el control de distintos tipos de displays, dentro de los cuales está el de 4 dígitos 7 segmentos, para lo cual se realiza la conexión de este a los pines 33 al 40 del PIC y los pines 2 al 5 para la activación respectiva de cada uno de los dígitos. 
  • Se enviaron los valores a mostrar en el display, un dígito a la vez, empezando por el primero de los dígitos y seguidamente desplazándose a la derecha para visualizar el valor correspondiente a esa posición realizando esta transición en el orden de los ms, que es imperceptible para la visión del ojo humano dando apariencia de mostrar todos los valores al mismo tiempo.
  • Cualquier tipo de línea de código que corresponde a "delay_ms" luego de una función en la que este involucrado el display generará parpadeo del dato mostrado, este tiempo corresponderá al valor de "delay".
  • Para la utilización del display de 4 dígitos 7 segmentos es necesario descomponer el dato a mostrar en millares, centenas, decenas y unidades; mediante una serie de divisiones aritméticas sucesivas se obtiene el valor del dato a mostrar respectivamente en cada una de las posiciones del display.
  • Se logró entender el funcionamiento del programa inicial, y partiendo de el llegar a completar la evaluación pertinente, ademas de llegar a analizar de manera minuciosa el funcionamiento de los displays.