jueves, 17 de octubre de 2019

LABORATORIO N°9


MICROCONTROLADORES


Laboratorio N°9:

PROGRAMACIÓN BÁSICA CON BUCLES DE CONTROL.

I. CAPACIDAD TERMINAL
  • 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. COMPETENCIA ESPECÍFICA DE LA SESIÓN
  • 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.
III. FUNDAMENTO TEÓRICO

BUCLES DE CONTROL: while, if, if-else, for.

a. While
El ciclo while nos permite realizar múltiples iteraciones basándonos en el resultado de una expresión lógica que puede tener como resultado un valor True o False

1. Tipos de Bucle ‘while’


A continuación, se presentan algunos ejemplos del uso del bucle while:
     1.1 Bucle ‘while’ controlado por Conteo
A continuación, se presenta un ejemplo del uso del bucle while controlado por conteo:
suma, numero = 0, 1
while numero <= 10:
suma = numero + suma
numero = numero + 1
print "La suma es " + str(suma)
En este ejemplo tiene un contador con un valor inicial de cero, cada iteración del while manipula esta variable de manera que incremente su valor en 1, por lo que después de su primera iteración el contador tendrá un valor de 1, luego 2, y así sucesivamente.

Eventualmente cuando el contador llegue a tener un valor de 10, la condición del ciclo numero <=10 sera False, por lo que el ciclo terminará arrojando el siguiente resultado.

1.2 Bucle ‘while’ controlado por Evento

A continuación, se presenta un ejemplo del uso del bucle while controlado por Evento:
promedio, total, contar = 0.0, 0, 0 
print "Introduzca la nota de un estudiante (-1 para salir): "
grado = int(raw_input()) 
while grado != -1:
total = total + grado
contar = contar + 1
print "Introduzca la nota de un estudiante (-1 para salir): "
grado = int(raw_input())
promedio = total / contar
print "Promedio de notas del grado escolar es: " + str(promedio)
En este casi el evento que se dispara cuando el usuario ingresa el valor -1, causando que el bucle while se interrumpo o no se inicie.

1.3 Bucle ‘while’ con ‘else’

Al igual que la sentencia if, la estructura while también puede combinarse con una sentencia else).
El nombre de la sentencia else es equivocada, ya que el bloque else se ejecutará en todos los casos, es decir, cuando la expresión condicional del while sea False, (a comparación de la sentencia if).
promedio, total, contar = 0.0, 0, 0
mensaje = "Introduzca la nota de un estudiante (-1 para salir): "
grado = int(raw_input(mensaje))
while grado != -1:
total = total + grado
contar += 1
grado = int(raw_input(mensaje))
else:
promedio = total / contar
print "Promedio de notas del grado escolar: " + str(promedio)
La sentencia else tiene la ventaja de mantener el mismo nombre y la misma sintaxis que en las demás estructuras de control.

2. Sentencias utilitarias


A continuación, se presentan algunos ejemplos del uso de sentencias utilitarias usadas en el bucle while:
2.1Sentencia break
A continuación, se presenta un ejemplo del uso del bucle while controlado la sentencia break:
variable = 10
while variable > 0:
print 'Actual valor de variable:', variable
variable = variable -1
if variable == 5:
break
Adicionalmente existe una forma alternativa de interrumpir o cortar los ciclos utilizando la palabra reservada break.
Esta nos permite salir del ciclo incluso si la expresión evaluada en while (o en otro ciclo como for) permanece siendo True. Para comprender mejor use el mismo ejemplo anterior pero se interrumpe el ciclo usando la sentencia break.

2.2 Sentencia continue

A continuación, se presenta un ejemplo del uso del bucle while controlado la sentencia continue:
variable = 10
while variable > 0: 
variable = variable -1
if variable == 5:
continue
print 'Actual valor de variable:', variable
La sentencia continue hace que pase de nuevo al principio del bucle aunque no se haya terminado de ejecutar el ciclo anterior.

b. If


La sentencia condicional if se usa para tomar decisiones, este evaluá básicamente una operación lógica, es decir una expresión que dé como resultado True o False, y ejecuta la pieza de código siguiente siempre y cuando el resultado sea verdadero.

1.1 Sentencia if
La sentencia if EXPRESION, significa, Si se cumple la expresión condicional se ejecuta el bloque de sentencias seguidas.
1.2. Sentencia elif
La sentencia elif EXPRESION, significa, De lo contrario Si se cumple la expresión condicional se ejecuta el bloque de sentencias seguidas
1.3. Sentencia else
La sentencia else, significa, De lo contrario se cumple sin evaluar ninguna expresión condicional y ejecuta el bloque de sentencias seguidas.
1.4. Operador is
El operador is, significa, que prueba identidad: ambos lados de la expresión condicional debe ser el mismo objeto:
1.5. Operador in
El operador in, significa, para cualquier colección del valor del lado izquierdo contenga el valor del lado derecho:
1.6. Operador not in
El operador not in, el contrario de operador in, devuelve True cuando un elemento no está en una secuencia.

c. If- else

Ejecuta una sentencia si una condición especificada es evaluada como verdadera. Si la condición es evaluada como falsa, otra sentencia puede ser ejecutada. Quiza la estructura if-else es la estructura de control mas basica y la mas utilizada. La forma mas sencilla seria algo así
Si (tal cosa es cierta) {
// Haz esto
}En caso contrario {
// Haz esto otro
}

d. For
Los bucles for funcionan exactamente igual que en C. Con una sola instrucción controlamos el bucle.
for(valor inicial; condicion; ejecutar en cada bucle) {
// instrucciones a ejecutar mientras la condición sea cierta
}
Ejemplo
for ($cantidad = 1; $cantidad< 10; $i++){
echo("$cantidad");
}
Traducido es igual a : Cantidad es igual a 1, mientras cantidad sea menor que 10 escribe cantidad en pantalla y despues sumale 1 al valor de la cantidad. Es decir, es exactamente el mismo ejemplo que vimos en el bucle while pero de otra manera.

IV. DESARROLLO DE TAREAS
1. TAREAS GUIADAS EN EL LABORATORIO


En esta primera etapa se realizo la programación guiada por el docente el cual fue de la siguiente manera:

Seguidamente se compilo lo cual genero un archivo en formato .hex, este archivo nos permite poder simularlo en PROTEUS, acción que realizamos para poder verificar que nuestras programación cumpla con las configuraciones que se ha establecido.


Para la aplicación de esta programación se verifico todos los condiciones:
a) Con el PIN_D0




b) Con el ¨PIN_A5 , el cual permitia desplazar un led como se ve a continuación




2. TARREAS A SER EVALUADAS
Las condiciones con respecto al laboratorio a realizar son las siguientes:
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 asi suceivamente.
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 esta habilitado y funcionara como lo antes mencionado. Si presiono D1, el sistema quedara "congelado" y nada funcionara. Si vuelvo a presionar D1, el sistema nuevamente queda habilitado.
a) Programación que cumples las condiciones
La programación que logro satisfacer las condiciones propuestas en la tarea a ser evaluada es la siguiente:

b) Simulación en PROTEUS
Para verificar que nuestra programación cumpla las especificaciones que se le ha programado se debe primero simular de la siguiente manera:


1.- Con respecto al PIN_A5
La condición es que debe encender C0, al volver a presionar, debe encender C1 y asi suceivamente.

2.- Con respecto al PIN_D0
La condición debe ser que los led´s deben encender sucesivamente pero en sentido inverso.



3.- Con respecto al PIN_D1
La condición es que debe funcionar como un habilitador, es decir, por defecto el sistema esta habilitado y funcionara como lo antes mencionado. Si presiono D1, el sistema quedara "congelado" y nada funcionara. Si vuelvo a presionar D1, el sistema nuevamente queda habilitado



VÍDEO:


link del video del laboratorio https://youtu.be/k5b_ecsG11s

Observaciones: 
  • Al inicio se presento un pequeño error, dado que el software PIC C COMPILER no creaba las demás carpetas que permitían simular como el archivo .hex, y para resolverlo se tuvo que recordar la anterior sesión la que se debía extraer en la base de datos del programa la información del pic 167F88A, y se copio a la carpeta donde se guardo una vez copiado se genero los archivos para poder simularlo en PROTEUS.
  • En el desarrollo del laboratorio se observo que la programación realizada al principio no lograba ejecutar las acciones que se programaron, lo cual perjudico el desarrollo del mismo por lo que se recurrió a revisar la programación notando que en una parte de la programación no se negaba lo que contradecía las configuraciones que se dispuso, lo cual era el problema por el cual el entrenador no cumplía las configuraciones que se programaron..
  • Se observo que todo lo aprendido en anteriores semestres, nos ayudo a lograr realizar con mayor eficiencia en este laboratorio en diversas plataformas de programación como lo es Arduino la que nos familiarizo con algunos comandos de bucles de control.+
  • Cuando el puerto C se desciende hasta el ultimo puerto, este ya no regresa por mas que presionemos D0, por lo tanto, se deduce que esto sucede porque el PIC no presenta un proceso de bucle interno.
  • En la investigación con respecto a los bucles de control se observo que existen ciertos comandos que se utilizan a ciertas configuraciones especificas lo que nos demuestra que las soluciones a un problema con respecto a la programación pueden ser infinitas, con respecto a los muchos ejemplos que se puede encontrar en la web.
Conclusiones
  • Se logró realizar las actividades propuestas por el docente, realizando una correcta programación que permitió simular en el software PROTEUS a través del uso de los bucles de control como los es while, if-else, for, if.
  • Se concluye que el PIC 16F877a no presenta una función de bucles internos, dado que se demostro que al llegar al ultimo pin del puerto C este no puede regresar incluso si presionamos D0.
  • Se logró utilizar todo el puerto_C gracias a la configuración "output_c(0b00000000);" que permitió realizar las actividades propuestas por el docente.
  • Se concluye que es necesario establecer una buena programación de acuerdo a los parametros que se soliciten, demostrando que hasta un ";" puede ser crucial para que la programación no compile, e incluso un "!" para que no funcione como se programe, por lo tanto se debe ser exhaustivo en esta parte, para evitar futuros errores.

sábado, 12 de octubre de 2019

LABORATORIO N°8


MICROCONTROLADORES


Laboratorio N°8:

HERRAMIENTAS DE PROGRAMACIÓN HARDWARE Y SAFTWARE.



I. CAPACIDAD TERMINAL

● 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. COMPETENCIA ESPECÍFICA DE LA SESIÓN

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

III. CONTENIDOS A TRATAR

● Datasheet para el microcontrolador de gama media de Microchip. Estructura interna, memorias, CPU, ALU, W.

IV. RESULTADOS

● Diseñan y optimizan sistemas y procesos para cumplir con las condiciones establecidas y gestionando adecuadamente los recursos materiales y humanos.

V. MATERIALES Y EQUIPO

● CCS Compiler instalado.

PIC C Compiler es un inteligente y muy optimizado compilador C que contienen operadores estándar del lenguaje C y funciones incorporados en bibliotecas que son específicas a los registros de PIC, proporcionando a los desarrolladores una herramienta poderosa para el acceso al hardware las funciones del dispositivo desde el nivel de lenguaje C.



● Entrenador de PICS

Cuando trabajamos con microcontroladores,  se suele utilizar una y otra vez los mismos circuitos o componentes electrónicos:  display LCD, display de leds, relés , etc.
Si utilizamos un protoboard seguramente tendremos que desarmar nuestro circuito con microcontrolador, para darle paso a un nuevo proyecto.
Esto implica una pérdida de tiempo y esfuerzo, que podemos utilizar en otras actividades. Para resolver este problema, lo mejor será adquirir o fabricar una placa de desarrollo o entrenamiento, para utilizar uno o toda una gama de microcontroladores.

● Pantalla LCD

Las pantallas LCD tienen una serie de pines, las cuales tienen unos nombres especiales que por supuesto tienen un orden de conexión, son 14 pines ordenados del 1 al 14, esto siempre viene indicado en la placa de las pantallas lcd, estos pines son para  la alimentación, el control y la comunicación, el envió y recibo de datos, tienen además 2 pines para el uso de un led interno que algunas pantallas lcd lo tienen y otras no, normalmente serán como se ve en la  siguiente imagen.




● PIC16F877A:

Es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, su consumo de potencia es muy bajo y además es completamente estático (esto quiere decir que el reloj puede detenerse y los datos de memoria no se pierden) capaz de realizar diferentes actividades que requieran del procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos.



VI. TAREA GUIADA DENTRO DEL LABORATORIO:

1. Asegúrese de tener instalado en su computadora los siguientes programas: ISIS PROTEUS, PIC C COMPILER y PICKIT2.

2. Abra el compilador CCS Compiler y transcriba el código mostrado en el link. Luego descargue dicho programa hacia el PIC utilizando PICKIT2.





 CÓDIGO A TRANSCRIBIR:
3. Compile el programa y utilice los archivos generados hex y cof para realizar la simulación del proyecto anterior.


4. Transfiera el archivo generado HEX al entrenador utilizando el programa PICKIT2 y verifique el correcto funcionamiento del mismo.

EVIDENCIA DE TRABAJO LABORATORIO

TAREA A SER EVALUADA: 
  • Simule el programa en ISIS PROTEUS utilizando el archivo COF y depure el mismo paso a paso. 2. 





  • Modifique el programa para diseñar un “semáforo” con 3 salidas (leds) de tal manera que el led ROJO encienda durante 10 segundos, luego encienda el led AMBAR durante 3 segundos y finalmente encienda el led VERDE durante 8 segundos.
CURSO DE MIKRO INGENIERIA
Se reviso el material sugerido por el docente en el cual tenia una evaluación obteniendo la siguiente nota:

VÍDEO:

link del video del laboratorio https://www.youtube.com/watch?v=T__4G83nLwo&t=180s

Observaciones: 
  • Se observó que el entrenador de PICS cuenta con varios componentes muy diversos los cuales cumplen las funciones requeridas de acuerdo al tipo de conexión a realizar.
  • Se vio que el PIC 16F877a es un micro controlador mejorado además de poseer un almacenamiento bastante grande y un uso sencillo en aplicación.
  • Se observó que para poder determinar la funcionalidad de cada equipo electrónico a analizar debemos considerar todas las especificaciones y parámetros del mismo.

Conclusiones
  • Se comprobó que  en el entrenador de PICS  nos permite  desarrollar de diferentes maneras  conexiones con un lenguaje de Pickit 2 el cual nos ayuda a  diseñar un programa   de manera esquemática para  generar un tipo de  circuito  que cumpla con la funcionalidad que  deseamos obtener.
  • Se demostró  que en el micro controlador PIC 16F877a   se puede trabajar en diferentes entradas ya que cuenta con  diversas entradas y salidas en las cuales se pueden configurar   diferentes funciones a realizar con  el software correspondiente.
  • Se comprobó que en los componentes eléctricos analizados se puede  realizar diversas funciones  en cuanto  a configuración y obtención de datos de tipo digital y analógico.
  • Se utilizó el comando while para ejecutar la instrucción sucesivamente solo si  se sigue cumpliendo la condición.   
REFERENCIAS BIBLIOGRÁFICAS

Fernando E. Valdes Perez y Ramon Pallas Areny (2007), MICROCONTROLADORES: FUNDAMENTOS Y APLICACIONES CON PIC,ed. I, Barcelona, Alfaomega Grupo Editor.
Harprit Singh Sandhu(2009), MAKING PIC MICROCONTROLLER INSTRUMENTS & CONTROLLERS, ed. III, Estados Unidos, The McGraw-Hill Companies.

sábado, 5 de octubre de 2019

LABORATORIO N°7


MICROCONTROLADORES


Laboratorio N°7:
PROGRAMACIÓN CON ARDUINO PARTE 6 
y
PASTILLERO.


1. COMPETENCIA ESPECIFICA DE LA SESION:

  1. Identificar la estructura de programación del pastillero.
  2. Implementación del pastillero en Tinkercat y en Físico.
  3. Implementar el programa en Tinkercat y en Físico.
  4.       Realizar programas con en IDE del Arduino
  5.      Implementacion del reto al pastillero.
2. Marco teórico:

2.1 Arduino:

Arduino es una plataforma de hardware de código abierto, basado en una placa de circuito impreso que contiene un microcontrolador de marca ATMEL que cuenta con entradas y salidas,analógicas y digitales, en un entorno de desarrollo que esta basado en el lenguaje de programación procesing. 



Hay muchas otros microcontroladores  y plataformas disponibles para la computación física donde las funcionalidades y herramientas son muy complicadas de programar, Arduino simplifica el proceso de trabajar con microcontroladores, ofrece algunas ventajas y características respecto a otros sistemas.



2.2 Interrupciones al Arduino:

Las interrupciones con Arduino nos permitirán reaccionar a eventos externos a la placa de una forma rápida. Cuando se detecta una señal, una interrupción, interrumpe el proceso que se está ejecutando. Esto nos va a permitir dos cosas. Por un lado, ejecutar rápidamente un trozo de código, y por otro lado parar la ejecución del código que se estaba ejecutando.




Si attachInterrupt() nos permite configurar un pin como interrupción, el método detachInterrupt() anula esa configuración. Como parámetro le pasamos el pin y lo podemos hacer con la función digitalPinToInterrupt(número de pin) que nos devolverá el ordinal del pin del que queremos anular la configuración.



2.2 Pantalla LCD (16*2):


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.

2.3 Motor DC:
Un motor de corriente continua se compone principalmente de dos partes. El estátor da soporte mecánico al aparato y contiene los polos de la máquina antes que de Pueda , que pueden ser o bien devanados de hilo de cobre sobre un núcleo de hierro, o imanes permanentes. El rotor es generalmente de forma cilíndrica, también devanado y con núcleo, alimentado con corriente directa a través de delgas, que están en contacto alternante con escobillas fijas.

El principal inconveniente de estas máquinas es el mantenimiento, muy costoso y laborioso, debido principalmente al desgaste que sufren las escobillas al entrar en contacto con las delgas.
Algunas aplicaciones especiales de estos motores son los motores lineales, cuando ejercen tracción sobre un riel, servomotores y motores paso a paso. Además existen motores de CC sin escobillas (brushless en inglés) utilizados en el aeromodelismo por su bajo par motor y su gran velocidad.

Es posible controlar la velocidad y el par de estos motores utilizando técnicas de control de motores de corriente continua.

2.4 Funcionamiento de reto:

Primero al conectar el arduino este tiene que estar en el axis(0.0), y decir "Soy: Geanmarco!", y abajo "Presiona SW".


Luego cuando se pulse el pulsador una vez, este va a parecer en la parte de arriba igual, pero en la parte de abajo "Contador :", y aparecerá el numero de pulsos con enclavamiento, este hace mover la rueda cuantas veces este el numero.


 Y por ultimo debe aparecer hasta el conteo numero 8, y de hay ya no aumentara, y regresara otra vez al pulso después de 7 segundos.



4. VIDEO DE EVIDENCIA.





link del video del laboratorio : https://youtu.be/qMxHkuf7QWg

5. OBSERVACIONES:
  • Se vio que la conexiones del sensor de final de carrera es la misma que un pulsador re-alimentada por su señal.
  • Se tomo en consideraciones el proyecto del pastillero, para poder realizar el reto de el laboratorio.
  • Se observo que la simulación en Tinkercat es la mismo que pasaría en lo físico, y así probar en el simulador los cambios para los retos sin evitar malograr los componentes.
  • Las conexiones de la pantalla LCD van a ser las mismas de los puertos digitales y su alimentación ya están designados y también están las conexiones de el motor.
6. CONCLUSIONES
  • Se logró implementar el programa para poder mover la rueda con el numero de veces que se pulso el pulsador.
  • Se uso los comandos del pastillero como respaldo para poder realizar el reto, y se logró realizar la modificación pedida del programa, empleando todas las competencias adquiridas hasta el momento como lo son: bucles, condicionantes, funciones, instrucciones de retardo, etc.
  • Se vio la importancia de las interrupciones en un proceso de control de ciclo cerrado, es necesario esta acción para evitar problemas exteriores y económicos, y lo importante que fue para la realización del proyecto.
  • Se concluyó que el arranque del motor provoca que el LCD parpadee, y como solución que se propuso en el laboratorio, fue alimentar con otra alimentación el motor y así evitar esa interferencia.

jueves, 3 de octubre de 2019

LABORATORIO N°6


MICROCONTROLADORES


Laboratorio N°6:
PROGRAMACIÓN CON ARDUINO PARTE 5 
y
PASTILLERO.


1. COMPETENCIA ESPECIFICA DE LA SESION:

  1. Identificar la estructura de programación del pastillero.
  2. Implementación del pastillero en Tinkercat y en Físico.
  3. Implementar el programa en Tinkercat y en Físico.
  4.       Realizar programas con en IDE del Arduino
2. Marco teórico:

2.1 Arduino:

Arduino es una plataforma de hardware de código abierto, basado en una placa de circuito impreso que contiene un microcontrolador de marca ATMEL que cuenta con entradas y salidas,analógicas y digitales, en un entorno de desarrollo que esta basado en el lenguaje de programación procesing. 




    Hay muchas otros microcontroladores  y plataformas disponibles para la computación física donde las funcionalidades y herramientas son muy complicadas de programar, Arduino simplifica el proceso de trabajar con microcontroladores, ofrece algunas ventajas y características respecto a otros sistemas.



    2.2 Interrupciones al Arduino:

    Las interrupciones con Arduino nos permitirán reaccionar a eventos externos a la placa de una forma rápida. Cuando se detecta una señal, una interrupción, interrumpe el proceso que se está ejecutando. Esto nos va a permitir dos cosas. Por un lado, ejecutar rápidamente un trozo de código, y por otro lado parar la ejecución del código que se estaba ejecutando.

    Si attachInterrupt() nos permite configurar un pin como interrupción, el método detachInterrupt() anula esa configuración. Como parámetro le pasamos el pin y lo podemos hacer con la función digitalPinToInterrupt(número de pin) que nos devolverá el ordinal del pin del que queremos anular la configuración.



    2.2 Pantalla LCD (16*2):


    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.

    2.3 Motor DC:
    Un motor de corriente continua se compone principalmente de dos partes. El estátor da soporte mecánico al aparato y contiene los polos de la máquina antes que de Pueda , que pueden ser o bien devanados de hilo de cobre sobre un núcleo de hierro, o imanes permanentes. El rotor es generalmente de forma cilíndrica, también devanado y con núcleo, alimentado con corriente directa a través de delgas, que están en contacto alternante con escobillas fijas.

    El principal inconveniente de estas máquinas es el mantenimiento, muy costoso y laborioso, debido principalmente al desgaste que sufren las escobillas al entrar en contacto con las delgas.
    Algunas aplicaciones especiales de estos motores son los motores lineales, cuando ejercen tracción sobre un riel, servomotores y motores paso a paso. Además existen motores de CC sin escobillas (brushless en inglés) utilizados en el aeromodelismo por su bajo par motor y su gran velocidad.

    Es posible controlar la velocidad y el par de estos motores utilizando técnicas de control de motores de corriente continua.

    2.4 Integrado L293D "Puente H":


    El integrado L293D incluye cuatro circuitos para manejar cargas de potencia media, en especial pequeños motores y cargas inductivas, con la capacidad de controlar corriente hasta 600 mA en cada circuito y una tensión entre 4,5 V a 36 V.
    Los circuitos individuales se pueden usar de manera independiente para controlar cargas de todo tipo y, en el caso de ser motores, manejar un único sentido de giro. Pero además, cualquiera de estos cuatro circuitos sirve para configurar la mitad de un puente H.



    El integrado permite formar, entonces, dos puentes H completos, con los que se puede realizar el manejo de dos motores. En este caso el manejo será bidireccional, con frenado rápido y con posibilidad de implementar fácilmente el control de velocidad.

    Las conexiones de Puente H:


    2.5 Implementación del pastillero:

    La función del pastillero consiste en permitirte tomar las pastillas que te recetaban los doctores, y tomártelos a la hora que se indico, es por eso que el pastillero es un proyecto muy importante que se puede tener en las casas, y no olvidar a que hora tenia que tomar, ya que tomar una pastilla que no sea en su hora puede traer consecuencias a nuestro cuerpo, y es algo que no respetamos mucho.
     Se implemento el proyecto del pastillero para poder realizar también el reto que se había propuesto por el profesor en el laboratorio.



    4. VIDEO DE EVIDENCIA.



    link del video del laboratorio : https://youtu.be/EO0rB7Wyz2c
    5. OBSERVACIONES:
    • Las conexiones de la pantalla LCD van a ser las mismas de los puertos digitales y su alimentación ya están designados, para cualquier función que se le quiera dar a este con el arduino.
    • Se utilizó el software Tinkercad para la simulación del pastillero, y entender el funcionamiento del programa, para poder realizar los cambios y hacer el reto que se dejo en laboratorio. 
    • Se vio que la conexiones del sensor de final de carrera es la misma que un pulsador re-alimentada por su señal.
    • Se tomo en consideraciones las dimensiones del MDF, ya que si este era 5 mm mas o menos de lo ideal, este traería consecuencias en la hora de juntar todas las piezas.
    • Se observo que la simulación en Tinkercat es la mismo que pasaría en lo físico, y así probar en el simulador los cambios para los retos sin evitar malograr los componentes.
    6. CONCLUSIONES
    • Se concluyó que el arranque del motor provoca que el LCD parpadee, y como solución que se propuso en el laboratorio, fue alimentar con otra alimentación el motor y así evitar esa interferencia.
    • Se logró comprender el funcionamiento del programa del pastillero, y la implementacion de los cambios, que son la integración de los segundos, y  que en la fila 2 aparezca la hora que va a tomar.
    • Se logró utilizar y entender los comandos de (millis, do while, y las funciones de interrupciones).
    • Se vio la importancia de las interrupciones en un proceso de control de ciclo cerrado, es necesario esta acción para evitar problemas exteriores y económicos, y lo importante que fue para la realización del proyecto.