domingo, 26 de mayo de 2019

Laboratorio N° 11

MICROCONTROLADORES

Laboratorio N° 11

PROGRAMACION DE ARDUINO CON MBLOCK

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

2. COMPETENCIA ESPECÍFICA DE LA SESIÓN 
* Programar la tarjeta ARDUINO UNO utilizando un lenguaje gráfico y comparar con lenguaje
de texto.
* Conocer el entorno de mBlock y todas sus posibilidades.
* Realizar programación básica utilizando software mencionado.

3. EVIDENCIAS


4. OBSERVACIONES 
- Cuando se quiso entablar la conexión del ARDUINO con la CPU en el laboratorio, se tuvo dificultades, ya que necesitaba la actualización de un software.
- Al momento de usar el monitor serial se tuvo que tener en cuenta si el el mensaje era en la misma linea o en una nueva linea.
- Para realizar la simulación se uso el software TINKERCAT ya que en el modulo había complicaciones.

5. CONCLUSIONES 
- Se logró enviar un mensaje en el monitor serial para que realice una acción el arduino.
- Se logró programar la tarea dejada en laboratorio.


6. INTEGRANTES 


Aldude Aldudi, Rosmel

Laboratorio N° 10

MICROCONTROLADORES

Laboratorio N° 10

PROGRAMACION DE ARDUINO CON MBLOCK

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

2. COMPETENCIA ESPECÍFICA DE LA SESIÓN 
* Programar la tarjeta ARDUINO UNO utilizando un lenguaje gráfico y comparar con lenguaje
de texto.
* Realizar programación básica utilizando software mencionado.

3. EVIDENCIAS




4. OBSERVACIONES 
- Cuando se quiso entablar la conexión del ARDUINO con la CPU en el laboratorio, se tuvo dificultades, ya que necesitaba la actualización de un software.
- Al momento de usar el monitor serial se tuvo que tener en cuenta si el el mensaje era en la misma linea o en una nueva linea.
- Para realizar la simulación se uso el software TINKERCAT ya que en el modulo había complicaciones.

5. CONCLUSIONES 
- Se logró realizar la programacion con una entrada analogica.
- Se logró mandar mensajes en el monitor serial como se esperaba, en nueva linea y especificando el dato.


6. INTEGRANTES 

Aldude Aldudi, Rosmel

domingo, 5 de mayo de 2019

Laboratorio N° 09

MICROCONTROLADORES

Laboratorio N° 09

PROGRAMACION DE ARDUINO CON MBLOCK

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

2. COMPETENCIA ESPECÍFICA DE LA SESIÓN 
* Programar la tarjeta ARDUINO UNO utilizando un lenguaje gráfico y comparar con lenguaje
de texto.
* Conocer el entorno de mBlock y todas sus posibilidades.
* Realizar programación básica utilizando software mencionado.

3. MARCO TEÓRICO
a) Arduino:
Arduino es una plataforma de desarrollo basada en una placa electrónica de hardware libre que incorpora un microcontrolador re-programable y una serie de pines hembra, los que permiten establecer conexiones entre el microcontrolador y los diferentes sensores y actuadores de una manera muy sencilla (principalmente con cables dupont).
Una placa electrónica es una PCB (“Printed Circuit Board”, “Placa de Circuito Impreso” en español). Las PCBs superficies planas fabricadas en un material no conductor, la cual costa de distintas capas de material conductor. Una PCB es la forma más compacta y estable de construir un circuito electrónico. Así que la placa Arduino no es más que una PCB que implementa un determinado diseño de circuitería interna, de esta forma el usuario final no se debe preocupar por las conexiones eléctricas que necesita el microcontrolador para funcionar, y puede empezar directamente a desarrollar las diferentes aplicaciones electrónicas que necesite.

PCB de un Arduino UNO
Cuando hablamos de “Arduino” deberíamos especificar el modelo concreto, ya que se han fabricado diferentes modelos de placas Arduino oficiales, cada una pensada con un propósito diferente y características variadas (como el tamaño físico, número de pines E/S, modelo del microcontrolador, etc). A pesar de las varias placas que existen todas pertenecen a la misma familia (microcontroladores AVR marca Atmel), esto significa que comparten la mayoría de sus características de software, como arquitectura, librerías y documentación.

¿Cómo se originó el Arduino?
Arduino Nació en el año 2005 el Instituto de Diseño Interativo de Ivrea (Italia). Arduino apareció por la necesidad de contar con un dispositivo para utilizar en aulas que fuera de bajo coste. La idea original fue, fabricar una placa para uso interno de la escuela.
Sin embargo, el instituto se vio obligado a cerrar sus puertas precisamente en 2005. Ante la perspectiva de perder todo el proyecto Arduino en el proceso, se decidió liberarlo y abrirlo al publico para que todo el mundo pudiese participar en la evolución del proyecto, proponer mejoras y sugerencias.
Los principales responsables de la idea y diseño de Arduino fueron Massimo Banzi, David Cuartielles, David Mellis, Tom Igoe y Gianluca Martino.

¿Por qué usar Arduino?
Arduino es libre y extensible: esto quiere decir que cualquiera que desee ampliar y mejorar el diseño hardware de las placas como el entorno de desarrollo, puede hacerlo sin problemas. Esto permite que exista un rico ecosistema de placas electrónicas no oficiales para distintos propósitos y de librerías de software de tercero, que pueden adaptarse mejor a nuestras necesidades.

Arduino tiene una gran comunidad: Gracias a su gran alcance hay un gran comunidad trabajando con esta plataforma, lo cual genera una cantidad de documentación bastante extensa, la cual abarca casi cualquier necesidad.
Su entorno de programación es multiplataforma: Se puede instalar y ejecutar en sistemas operativos Windows, Mac OS y Linux.
Lenguaje de programación de fácil compresión: Su lenguaje de programación basado en C++ es de fácil compresión que permite una entrada sencilla a los nuevos programadores y a la vez con una capacidad tan grande, que los programadores más avanzados pueden exprimir todo el potencial de su lenguaje y adaptarlo a cualquier situación.
Bajo costo: La placa Arduino estándar (Arduino UNO) tiene un valor aproximado de $17.000(pesos chilenos), incluso uno mismo la podría construir (una gran ventaja del hardware libre), con lo que el precio de la placa seria incluso menor.
Re-usabilidad y versatilidad: Es re-utilizable porque una vez terminado el proyecto es muy fácil poder desmontar los componentes externos a la placa y empezar con un nuevo proyecto, de igual manera todos los pines del microcontrolador están accesibles a través de conectores hembra, lo cual permite sacar partido de todas las bondades del microcontrolador con un riesgo muy bajo de hacer una conexión errónea. 

4. EVIDENCIAS






5. OBSERVACIONES 
- Cuando se quiso entablar la conexión del arduino con la CPU en el laboratorio, se tuvo dificultades, ya que necesitaba la actualización de un software.
- El software MBlock tenia algunas fallas en el laboratorio, no se podia jalar los recuadros de la imagen dificultando el avance del laboratorio.
- Para usar el software MBlock es necesario realizar algunas configuraciopnes para poder entablar comunicacion con el ARDUINO UNO.

6. CONCLUSIONES 
- Se logró programar la tarjeta ARDUINO UNO utilizando lenguaje gráfico (mblock) como también comparar con su lenguaje.
- Se conoció el entorno MBlock y la mayoría de sus características.
- Se logro realizar la programación básica utilizando el MBlock.

7. INTEGRANTES 
Aldude Aldudi, Rosmel

Laboratorio N° 08

MICROCONTROLADORES

Laboratorio N° 08

TERMOSTATO DIGITAL CON PANTALLA LCD

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

2. COMPETENCIA ESPECÍFICA DE LA SESIÓN 
Conocer el proceso de desarrollo de un proyecto con PIC.
* Aplicar todas las técnicas de programación conocidas hasta este momento.
* Aplicar estos conocimientos en la realización de un proyecto.

3. MARCO TEÓRICO 
TERMOSTATO DIGITAL CON CONTROL ON-OFF:
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:

4. EVIDENCIAS

5. OBSERVACIONES 


6. CONCLUSIONES 

7. INTEGRANTES 
Aldude Aldudi, Rosmel

Laboratorio N° 07

MICROCONTROLADORES

Laboratorio N° 07

MANEJO DEL TIMER Y LAS INTERRUPCIONES 

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

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

3. MARCO TEÓRICO


a) Temporizador en un PIC
     Un temporizador contador PIC es un registro que aumenta su valor en una unidad con cada 4 ciclos de reloj al cual se encuentre funcionando el microcontrolador PIC, si por ejemplo la frecuencia del oscilador es de 4MHz, entonces  el ciclo de trabajo del microcontrolador PIC será de 1us, por lo que el temporizador contador PIC aumentará  su  valor de uno en uno en cada microsegundo; por ejemplo cuando el temporizador aumenta su valor en 10 unidades habrán transcurrido 10us.

     El temporizador contador PIC es utilizado para obtener medidas de tiempos muy precisas, de ahí que se le da el nombre de temporizador, en este caso el temporizador contador PIC funciona con el reloj del sistema; pero también puede ser utilizado para realizar conteos, por lo que también se le llama contador, en este caso el temporizador contador PIC ya no aumenta su valor de uno en uno en cada ciclo de trabajo, sino que lo hará mediante el flanco de subida o el flanco de bajada de alguna señal que llegue a un pin del PIC, estos pines son identificados como TxCKI donde x es el número temporizador contador PIC que será usado como contador.
     El temporizador contador PIC puede producir interrupciones.
     Los microcontroladores PIC suelen tener varios temporizadores, como ejemplo se utilizará el PIC16F877A, el cual tiene 3 temporizadores que son llamados timer0, timer1 y timer2, el tiempo que tarda el temporizador contador PIC en aumentar su valor de unidad en unidad, se puede modificar por programa mediante el uso de prescalers, siendo de esta manera mucho mas provechosos; dependiendo del modelo de microcontrolador PIC utilizado, no todos los temporizadores pueden ser utilizados como temporizador y también como contador.
     El registro en los microcontroladores PIC donde se guardan y realizan los aumentos de uno en uno del temporizador PIC, es llamado registro temporizador contador y es representado por TMRx, donde x es el número de temporizador contador PIC que puede ser 0, 1, 2, dependiendo del número de temporizadores con que cuente el microcontrolador PIC; el temporizador contador PIC puede ser de 8 bits o de 16 bits.
     El temporizador contador PIC puede aumentar sus valores de 0 a 255 si es de 8 bits como el timer0, o de 0 a 65535 si es de 16 bits como el timer1, cada vez que estos registros alcanzan su máximo valor se reinician, volviendo a contar desde su valor mínimo hasta su máximo, ademas pueden ser programados para provocar interrupciones.
      Para el uso del temporizador contador PIC se cuenta además con un grupo de registros mediante los cuales se puede lo puede configurar de acuerdo a las necesidades que se tengan.
     El registro temporizador contador PIC TMR1 puede ser utilizado para tareas de comparación, captura y el registro TMR2 es utilizado para la obtención de señales  de modulación de ancho de pulso o PWM, siendo para ello necesario el uso de otros registros.

4. EVIDENCIAS

5. OBSERVACIONES 
- Al momento de programar se tuvo dificultades ya que se requería muchas condiciones para su funcionamiento adecuado.
- Al momento de realizar la compilación y grabado del programa en el pic del entrenador, se tuvo dificultades ya que la maquina virtual no reconocía la entrada de la interface del entrenador.
- Cuando se quiso realizar las simulaciones en el software PROTEUS, se tuvo que subir el archivo .cof para poder simularlo sin problemas.

6. CONCLUSIONES 
Se logro conocer el funcionamiento y la configuración de las interrupciones.
- Se conoció el funcionamiento adecuado como también la configuración adecuada para el problema desarrollado sobre el Timer0.
- Se logró aplicar conocimientos sobre la realización de un cronometro.

7. INTEGRANTES 
Aldude Aldudi, Rosmel

miércoles, 1 de mayo de 2019

Laboratorio N° 06

MICROCONTROLADORES

Laboratorio N° 06

LECTURA DE ENTRADAS ANALÓGICAS Y SENSOR DE TEMPERATURA 

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

2. COMPETENCIA ESPECÍFICA DE LA SESIÓN 
Lecturas analógicas de un canal del PIC.
* Configuración de un Sensor de Temperatura.
* Lectura analógica en una pantalla LCD.

3. MARCO TEÓRICO 

Entradas analógicas
     Son entradas que pueden tener 256 posibles valores. En realidad se trata de entradas digitales, pero en robótica se llama entradas digitales a las que sólo pueden tener dos valores (sería más exacto llamarlas entradas lógicas) y entradas analógica a las que pueden tener muchos valores.
En la placa de alta potencia, las entradas 0, 1 y 2 pueden actuar como entradas analógicas o digitales.
En las entradas analógicas se puede meter una tensión que esté entre la tensión del polo negativo (cero voltios)  y la del positivo ( 4,5 voltios, si has alimentado la placa con una pila de petaca)). Si conectara la entrada analógica a 0V, entonces tomaría el valor más pequeño, 0. Si se conectara le entrada a 4,5 voltios, tomaría el máximo valor 255. Entre medias el valor será proporcional a la tensión de entrada.
Para usar el valor de una entrada analógica en un programa hay que leerla e introducir su valor en una variable.
     Los módulos de entrada analógicas permiten que los autómatas programables trabajen con accionadores de mando analógico y lean señales de tipo analógico como pueden ser la temperatura, la presión o el caudal.
     Los módulos de entradas analógicas convierten una magnitud analógica en un numero que se deposita  en una variable interna del autómata. Lo que realiza es una conversión A/D, puesto que el autómata solo trabajar con señales digitales. Esta conversión se realiza con una precisión o resolución determinada (numero de bits) y cada cierto intervalo de tiempo (periodo muestreo).
     Los módulos de entrada analógica pueden leer tensión o intensidad.
     El proceso de adquisición de la señal analógica consta de varias etapas:
  • Filtrado
  • Conversión A/D
  • Memoria interna

El CAD conversor analógico digital PIC (no todos los PIC lo tienen, para los ejemplos se utilizará el PIC16F877A), permite medir señales analógicas en forma digital, para ello el PIC cuenta con pines por donde le llegará la señal analógica, estos pines deben configurarse como entradas analógicas, el conversor analógico digital PIC cuenta con un circuito que carga un condensador interno al PIC con la tensión analógica que le está llegando a la entrada analógica, luego la tensión almacenada en el condensador lo convierte en un número binario de 10 bits que representará la tensión almacenada en el condensador, este número binario se guarda en sus registros ADRESH y ADRESL de 8 bits cada uno pero estos actúan como un solo registro de 16 bits, en el registro ADRESH se guardan los bits mas significativos y en el registro ADRESL se guardan los bits menos significativos, el número que representa la tensión almacenada en el condensador y guardado en forma binaria dentro de estos registros será de 10 bits para el PIC16F877A, la cantidad de bits de este número depende del conversor analógico digital PIC del microcontrolador PIC utilizado.

4. EVIDENCIAS



5. OBSERVACIONES 

- Al realizar esta programación se tuvo que cambiar el tipo de variable, ya que aparte de variable entera, se iba a usar variable con decimales.
- Al configurar el sensor se tuvo que realizar algunas divisiones estándares para que nos de valores deseados.
- La programación para una entrada analógica es totalmente distinto a una entrada digital, se usa otro comando.

6. CONCLUSIONES 

- Se logró realizar lecturas analógicas con un canal del  PIC16f877a.
- Adecuando la programación realizada en el PicC Compiler se logro configurar el sensor de temperatura del entrenador usado en laboratorio.
- Ademas de de configurar el sensor de temperatura, se logró mostrar estos datos en el LCD del entrenador.

7. INTEGRANTES 

* Aldude Aldudi, Rosmel

jueves, 4 de abril de 2019

Laboratorio N° 05

MICROCONTROLADORES

Laboratorio N° 05

PROGRAMACION DE UNA PANTALLA LCD

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

2. COMPETENCIA ESPECIFICA DE LA SESIÓN
Conocer el Display LCD y su funcionamiento.
* Programar eficientemente el LCD.
* Programar HMI para proyecto actual.

3. MARCO TEORICO
     LCD ( pantalla de cristal líquido)

LCD 16X2 con Arduino - Caracteres personalizados
Una pantalla de cristal líquido o LCD(acrónimo 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.




  1. Filtro vertical película a polarizar la luz que entra.
  2. Sustrato de vidrio con electrodos de ITO. Las formas de estos electrodos determinará la oscuridad formas que aparecen cuando la pantalla está encendida.
  3. Crestas verticales son grabadas en la superficie de modo que el cristal líquido están en línea con la luz polarizada.
  4. Twisted nematicos de cristales líquidos.
  5. Sustrato común de vidrio con electrodos de película (OIC), con crestas horizontales a la línea horizontal con el filtro.
  6. Filtro horizontal para bloquear película / permitir a través de la luz. Superficie reflectante para enviar de nuevo a la luz espectador. 


4. EVIDENCIAS


5. OBSERVACIONES
* Al momento de realizar la programación del LCD se tuvo que agregar un archivo donde co tenía su li reria para que el programa pueda funcionar correctamente.
* El LCD que se usó era uno de 16x2.
* Cuando se quiso realizar ma simulación en el entrenador, se tuvo dificultades ya que la máquina virtual no reconocía la entrada del entrenador, así que se tuvo que usar el software "PROTEUS".

6. CONCLUCIONES 
* Se logró programar correctamente el LCD.
* Se investigó el funcionamiento de una pantalla de  cristal líquido.
* Se logró realizar el laboratorio con éxito.

7. INTEGRANTES 
* Aldude Aldudi, Rosmel 

jueves, 28 de marzo de 2019

Laboratorio N° 04


MICROCONTROLADORES

Laboratorio N° 04

JUEGO DE TIRO A CANASTA CON
 INDICAR DE PUNTOS

1. CAPACIDAD TERMINA
* 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.

2. COMPETENCIA ESPECIFICA DE LA SESIÓN
* Conocer el uso de las subrutinas.
* Conocer las técnicas de elaboración de programas a través de algoritmos.
* Programación de un proyecto real.

2. MARCO TEORICO
     Pseudocódigo
El pseudocódigo (o falso lenguaje) es comúnmente utilizado por los programadores para omitir secciones de código o para dar una explicación del paradigma que tomó el mismo programador para hacer sus códigos, esto quiere decir que el pseudocódigo no es programable sino facilita la programación.
El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma más detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizará para la codificación del mismo.
El pseudocódigo utiliza para representar las acciones sucesivas palabras reservadas en inglés (similares a sus homónimos en los lenguajes de programación), tales como star,begin, end, stop, if-then-else, while, repeat-until….etc

Es un lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el paso de codificación final (esto es, la traducción a un lenguaje de programación) relativamente fácil.
El pseudocódigo nació como un lenguaje similar al inglés y era un medio representar básicamente las estructuras de control de programación estructurada. Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de programación. Cabe señalar que el pseudocódigo no puede ser ejecutado por una computadora.

3. EVIDENCIAS
a) Programación
#include <16f877a.h> // Incluimos archivo con PIC a utilizar
#use delay (clock=20M) // Indicamos que trabajaremos a 20Mhz
#fuses HS, NOPROTECT, NOWDT // Configuración básica de los fusibles
int variable = 0;
int tabBCD[10]={0b00111111,0b00000110,0b01011011,0b01001111,0b01100110,
 0b01101101,0b01111101,0b00000111,0b01111111,0b01101111};
int delay=5; // Completar con valor de retardo adecuado en ms
int16 dato=0; // Declaramos una variable ENTERA de 16 bits
int16 unidades=0, decenas=0, centenas=0;
/******************************************************/
// Funcion que descompone un número Entero de 4 cifras
/******************************************************/
void descomp_entero(int16 valor)
{
 centenas = (int16) valor / 100; // 1er Dígito o Centenas
 valor -= centenas * 100; // y se lo resto al valor
 decenas = (int16) valor / 10; // 2do Dígito o Decenas
 valor -= decenas * 10; // y también se lo resto
 unidades = (int16) valor; // y por último solo me quedan las unidades
}
/*************************************************/
// Funcion para displayar en forma multiplexada
/************************************************/
void visualizar(void)
{
output_b(tabBCD[centenas]);
 output_a(0b00001000);
 delay_ms(delay);

 output_b(tabBCD[decenas]);
 output_a(0b00000100);
 delay_ms(delay);

 output_b(tabBCD[unidades]);
 output_a(0b00000010);
 delay_ms(delay);
}
/*************************************************/
// Funcion para emitir un pitido
/************************************************/
void BIP()
{
 FOR (int i= 0;i<=100;++i)
 {
 output_high(PIN_E1); // Pone a "1" el pin E1 (envía 5 voltios)
 delay_ms(1); // "Congela el tiempo" durante 1ms
 output_low(PIN_E1); // Pone a "0" el pin E1
 delay_ms(01); // "Congela el tiempo" durante 1ms
 }
}

void SUM()
{
 FOR (int a= 0;a<=100;++a)
 {
 output_high(PIN_A1); // Pone a "1" el pin E1 (envía 5 voltios)
 delay_ms(1); // "Congela el tiempo" durante 1ms
 output_low(PIN_A1); // Pone a "0" el pin E1
 delay_ms(01); // "Congela el tiempo" durante 1ms
 }
 FOR (int s= 0;s<=100;++s)
 {
 output_high(PIN_A2); // Pone a "1" el pin E1 (envía 5 voltios)
 delay_ms(1); // "Congela el tiempo" durante 1ms
 output_low(PIN_A2); // Pone a "0" el pin E1
 delay_ms(01); // "Congela el tiempo" durante 1ms
 }
 FOR (int d= 0;d<=100;++d)
 {
 output_high(PIN_A3); // Pone a "1" el pin E1 (envía 5 voltios)
 delay_ms(1); // "Congela el tiempo" durante 1ms
 output_low(PIN_A3); // Pone a "0" el pin E1
 delay_ms(01); // "Congela el tiempo" durante 1ms
 }
}

/*************************************************/
// FUNCION PRINCIPAL VOID (MAIN)
/************************************************/
void main ()
{
 dato = 000; // ingrese numero inicial a visualizar
 descomp_entero(dato);
 visualizar(); // mostramos el valor de "dato" en displays
 while(1)
 {
 IF (!input(PIN_D0)) // SI INGRESA MONEDA
 {
 BIP();
 delay_ms(500);
 BIP();
 delay_ms(500);
 }
 visualizar(); // mostramos el valor de "dato" en displays

 IF (!input(PIN_D1) && (variable == 0)) // si ENCESTA CANASTA
 {
  dato = dato + 7; 
  descomp_entero(dato); 
  BIP();
  delay_ms(500);
  output_high(PIN_C0);
  variable = 1;
 }
  visualizar(); 
 IF (!input(PIN_D1) && (variable == 1)) // si ENCESTA CANASTA
 {
 dato = dato + 7; 
 descomp_entero(dato); 
 BIP();
 delay_ms(500);
 output_high(PIN_C1);
 variable = 2;
 }
 visualizar(); 

 IF (!input(PIN_D1) && (variable == 2)) // si ENCESTA CANASTA
 {
 dato = dato + 7; 
 descomp_entero(dato); 
 BIP();
 delay_ms(500);
 output_high(PIN_C2);
 variable = 3;
 }
 visualizar(); 

 IF (!input(PIN_D1) && (variable == 3)) // si ENCESTA CANASTA
 {
 dato = dato + 7; 
 descomp_entero(dato); 
 BIP();
 delay_ms(500);
 output_high(PIN_C3);
 variable = 4;
 }
 visualizar(); 

 IF (!input(PIN_D1) && (variable == 4)) // si ENCESTA CANASTA
 {
 dato = dato + 7; 
 descomp_entero(dato); 
 BIP();
 delay_ms(500);
 output_high(PIN_C4);
 variable = 0;
 visualizar(); 

 IF (!input(PIN_D1) && dato == 35)
 { 
 BIP();
 delay_ms(100);
 SUM();
 delay_ms(100);
 BIP();
 delay_ms(100);
 SUM();
 delay_ms(100);
 BIP();
 delay_ms(100);
 SUM();
 delay_ms(100);
 dato = 000;
 visualizar(); 
 }
 }
 visualizar();  
 } 
}
  

4. OBSERVACIONES
* Al momento de realizar la programación, se tuvo que recurrir a teoría de clases anteriores para poder lograr la tarea dejada en laboratorio.
* Cuando se quiso realizar las pruebas correspondientes, la computadora no reconocia el entrenador, el cual retraso las pruebas.
* Al ver que no se podia trabajar con el entrenador se opto por usa el software de simuilacion "PROTEUS".

5. CONCLUCIONES
* Se logro realizar la programación con métodos  usados en clases anteriores.
* concluyo de que el uso del entrenador no están indispensable, pero si facilita mejor su simulación y su trabajo.

6. INTEGRANTES
* Aldude Aldudi, Rosmel