Practica 9 Calsificador-Contador de monedas


Introducción


En esta página se muestra como fabricar un clasificador y contador de monedas, donde se hará uso del PSoC para mostrar en una pantalla LCD el conteo de las monedas clasificadas.

Materiales

  • Cartón.
  • Madera.
  • Silicona.
  • 5 sensores CNY70.
  • Motor eléctrico.
  • Cargador de celular.
  • Tuerca de pequeño tamaño.
  • Switch.
  • Monedas de diferentes denominaciones.
  • Tempera.
  • Protoboard.
  • Cable UTP.
  • Psoc 5LP
  • 5 transistores 2N2222.
  • Resistencias.

Desarrollo

El proyecto se desarrollo en dos fases:
  • Construcción de la máquina.
  • Implementación de los sistemas necesarios para el conteo de las monedas.
Para la construcción de la máquina:

Se debe medir el diámetro de las monedas a clasificar, en este caso se usó un calibrador con las monedas de la nueva familia de pesos Colombianos, $50, $100, $200, $500 y $1000; una vez obtenidos los diámetros, se diseñó una rampa con varios orificios rectangulares de tal forma que por cada orificio desde el borde de aproximadamente 3mm pase la moneda del diámetro correspondiente, para esto, se hizo el diseño en AutoCAD y se cortó en la madera con ayuda de una cortadora láser.

Rampa con orificios para cada moneda (imagen de referencia, no son las dimensiones reales)
Las monedas deben deslizarse de derecha a izquierda, así, en el primer orificio caerá la de menor tamaño, en este caso es la de $50, y las demás seguirán hasta caer en su orificio correspondiente; pero hay 4 orificios para 5 monedas, esto es para que la moneda de mayor tamaño, en este caso la de $1000, siga de largo y caiga en un espacio diferente.

Para la construcción de la bandeja donde se ubican las monedas mezcladas, se usó cartón debido a la facilidad que se tiene para manejarlo y justo debajo de dicha bandeja se puso el motor eléctrico; el cual tiene pegado en su eje la tuerca de pequeño tamaño, y para que funcione, fue conectado al cargador de celular de 5V con un switch para prender el motor cuando sea necesario.
El funcionamiento es muy simple, se ponen las monedas sobre la bandeja (que debe estar ligeramente inclinada con la salida en la parte mas baja de la inclinación), con el cargador conectado se presiona el switch para que el motor empiece a girar, como el motor tiene pegada la tuerca a un lado del eje en forma de peso, el movimiento circular del eje hace que se produzcan vibraciones lo suficientemente fuertes como para que las monedas se deslicen por la salida de la bandeja hacia la rampa.

Bandeja para ubicar las monedas.


Debajo de cada orificio de la rampa, se tiene un depósito para que caigan las monedas ya clasificadas; como es importante que cada moneda pase de forma individual por el sensor correspondiente, cada depósito cuenta con otra rampa y un camino para este fin.




Para la implementación de los sistemas necesarios para el conteo de las monedas.



El sensor usado es el CNY70, muy popular en los robots seguidores de línea, este sensor tiene un diodo emisor de luz ultravioleta (no perceptible por el ojo humano) que funciona como emisor, y un fotodiodo que funciona como receptor.

Su funcionamiento es muy sencillo, el diodo emite una luz, dicha luz es reflejada en una superficie (normalmente la superficie es negra, por eso los robots seguidores siguen una línea negra), el receptor recibe dicho reflejo y emite una señal eléctrica; cuando la superficie cambia de color o no hay superficie, el receptor varía la señal que entrega.
Para este caso, la moneda va a pasar entre el sensor y la superficie negra interrumpiendo así el reflejo de la luz y entregando un 0 lógico al psoc.
Pero, cuando no se está interrumpiendo el reflejo, la señal de salida del receptor es muy pequeña para que el Psoc lo interprete como un 1 lógico, para esto es necesario usar un transistor capaz de amplificar la señal del receptor.



El circuito usado para la implementación es el siguiente:




Para implementar los sensores, es necesario conectar cable UTP a cada terminal del sensor lo suficientemente largo como para alcanzar a conectar a la protoboard, y en la protoboard implementar los otros elementos del circuito junto con las conexiones al Psoc.


Maqueta con los sensores y la superficie negra en su lugar.


En la imagen anterior, se ve que cada sensor se encuentra en su sitio con su respectiva superficie negra para generar un 1 lógico en el PsoC, y los cables necesarios para conectar los sensores a la protoboard.





Para el conteo de las monedas se desarrollo un programa en PSoC Creator donde únicamente se coloco un componente de LCD el cual debe ser programado en C y 5 pines de entrada los cuales se negaron y enviaron a unos pines de salida.





El programa en C se desarrollo importando las librerías necesarias para su funcionamiento las cuales fueron:

#include <project.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>



Se declararon las variables necesarias, en nuestro caso convertimos los valores enteros a string para imprimirlos en la pantalla, para lo cual fue necesario crear unas variables adicionales y unos arreglos por cada valor.


int valor50=0,valor100=0,valor200=0,valor500=0,valor1000=0;
int cont50=0,cont100=0, cont200=0, cont500=0, cont1000=0;
char cuenta50[2];
char cuenta100[2];
char cuenta200[2];
char cuenta500[2];
char cuenta1000[2];

Se inicia el main con la inicialización de la LCD usando los comandos siguientes;

int main()
{
    LCD_Init();
    LCD_Start();

ahora se comienza a mostrar en la pantalla los títulos de cada moneda, esto se hace de la siguiente manera:


for(;;)

    {
        
       while(cont50<99 && cont100<99){
        LCD_Position(0,1);
        LCD_PrintString("50");
        LCD_Position(0,3);
        LCD_PrintString("100");
        LCD_Position(0,6);
        LCD_PrintString("200");
        LCD_Position(0,9);
        LCD_PrintString("500");
        LCD_Position(0,12);
        LCD_PrintString("1000"); 

Cada sensor envía un "0" lógico que es negado y se convierte en un "1" lógico el cual entra en una condicional, como podemos recibir varias monedas al mismo tiempo se generan con 5 monedas 32 posibles combinaciones, cada una de las cuales asigna a una variable "option" un numero, con esta variable option manejamos un Switch con 32 cases dentro de los cuales se realiza el conteo de las monedas. Si el sensor envía la señal una variable cont_ se incrementa en 1, la variable se convierte a string a través de la función "itoa" la cual recibe el valor entero, el arreglo donde se guardara el dato y el numero de la base en la cual esta el entero, se imprime cada valor nuevo en una posición.


int option=0;

if (Salida50_Read()==0 && Salida100_Read()==0 && Salida200_Read()==0 && Salida500_Read()==0 && Salida1000_Read()==1){ option=1;}
if (Salida50_Read()==0 && Salida100_Read()==0 && Salida200_Read()==0 && Salida500_Read()==1 && Salida1000_Read()==0){ option=2;}
if (Salida50_Read()==0 && Salida100_Read()==0 && Salida200_Read()==0 && Salida500_Read()==1 && Salida1000_Read()==1){ option=3;}
if (Salida50_Read()==0 && Salida100_Read()==0 && Salida200_Read()==1 && Salida500_Read()==0 && Salida1000_Read()==0){ option=4;}
if (Salida50_Read()==0 && Salida100_Read()==0 && Salida200_Read()==1 && Salida500_Read()==0 && Salida1000_Read()==1){ option=5;}
if (Salida50_Read()==0 && Salida100_Read()==0 && Salida200_Read()==1 && Salida500_Read()==1 && Salida1000_Read()==0){ option=6;}
if (Salida50_Read()==0 && Salida100_Read()==0 && Salida200_Read()==1 && Salida500_Read()==1 && Salida1000_Read()==1){ option=7;}
if (Salida50_Read()==0 && Salida100_Read()==1 && Salida200_Read()==0 && Salida500_Read()==0 && Salida1000_Read()==0){ option=8;}
if (Salida50_Read()==0 && Salida100_Read()==1 && Salida200_Read()==0 && Salida500_Read()==0 && Salida1000_Read()==1){ option=9;}
if (Salida50_Read()==0 && Salida100_Read()==1 && Salida200_Read()==0 && Salida500_Read()==1 && Salida1000_Read()==0){ option=10;}
if (Salida50_Read()==0 && Salida100_Read()==1 && Salida200_Read()==0 && Salida500_Read()==1 && Salida1000_Read()==1){ option=11;}
if (Salida50_Read()==0 && Salida100_Read()==1 && Salida200_Read()==1 && Salida500_Read()==0 && Salida1000_Read()==0){ option=12;}
if (Salida50_Read()==0 && Salida100_Read()==1 && Salida200_Read()==1 && Salida500_Read()==0 && Salida1000_Read()==1){ option=13;}
if (Salida50_Read()==0 && Salida100_Read()==1 && Salida200_Read()==1 && Salida500_Read()==1 && Salida1000_Read()==0){ option=14;}
if (Salida50_Read()==0 && Salida100_Read()==1 && Salida200_Read()==1 && Salida500_Read()==1 && Salida1000_Read()==1){ option=15;}
if (Salida50_Read()==1 && Salida100_Read()==0 && Salida200_Read()==0 && Salida500_Read()==0 && Salida1000_Read()==0){ option=16;}
if (Salida50_Read()==1 && Salida100_Read()==0 && Salida200_Read()==0 && Salida500_Read()==0 && Salida1000_Read()==1){ option=17;}
if (Salida50_Read()==1 && Salida100_Read()==0 && Salida200_Read()==0 && Salida500_Read()==1 && Salida1000_Read()==0){ option=18;}
if (Salida50_Read()==1 && Salida100_Read()==0 && Salida200_Read()==0 && Salida500_Read()==1 && Salida1000_Read()==1){ option=19;}
if (Salida50_Read()==1 && Salida100_Read()==0 && Salida200_Read()==1 && Salida500_Read()==0 && Salida1000_Read()==0){ option=20;}
if (Salida50_Read()==1 && Salida100_Read()==0 && Salida200_Read()==1 && Salida500_Read()==0 && Salida1000_Read()==1){ option=21;}
if (Salida50_Read()==1 && Salida100_Read()==0 && Salida200_Read()==1 && Salida500_Read()==1 && Salida1000_Read()==0){ option=22;}
if (Salida50_Read()==1 && Salida100_Read()==0 && Salida200_Read()==1 && Salida500_Read()==1 && Salida1000_Read()==1){ option=23;}
if (Salida50_Read()==1 && Salida100_Read()==1 && Salida200_Read()==0 && Salida500_Read()==0 && Salida1000_Read()==0){ option=24;}
if (Salida50_Read()==1 && Salida100_Read()==1 && Salida200_Read()==0 && Salida500_Read()==0 && Salida1000_Read()==1){ option=25;}
if (Salida50_Read()==1 && Salida100_Read()==1 && Salida200_Read()==0 && Salida500_Read()==1 && Salida1000_Read()==0){ option=26;}
if (Salida50_Read()==1 && Salida100_Read()==1 && Salida200_Read()==0 && Salida500_Read()==1 && Salida1000_Read()==1){ option=27;}
if (Salida50_Read()==1 && Salida100_Read()==1 && Salida200_Read()==1 && Salida500_Read()==0 && Salida1000_Read()==0){ option=28;}
if (Salida50_Read()==1 && Salida100_Read()==1 && Salida200_Read()==1 && Salida500_Read()==0 && Salida1000_Read()==1){ option=29;}
if (Salida50_Read()==1 && Salida100_Read()==1 && Salida200_Read()==1 && Salida500_Read()==1 && Salida1000_Read()==0){ option=30;}
if (Salida50_Read()==1 && Salida100_Read()==1 && Salida200_Read()==1 && Salida500_Read()==1 && Salida1000_Read()==1){ option=31;}

            switch(option){
            case 1: 
            cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200); 
            break;
            case 2: 
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                CyDelay(200);
                break;
            case 3: 
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200); 
                break;
            case 4: 
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                CyDelay(200); 
                break;
            case 5:
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200);
                break;
            case 6: 
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                CyDelay(200);
                break;
            case 7: 
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200);
                break;
            case 8:  
                cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                CyDelay(200); 
                break;
            case 9: 
                 cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200); 
                break;
            case 10: 
                cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                CyDelay(200); 
                break;
            case 11:  
                cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200);
                break;
            case 12: 
                 cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                CyDelay(200); 
                break;
            case 13: 
                 cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200); 
                break;
            case 14:
                 cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                CyDelay(200);
                break;
            case 15:
                 cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200); 
                break;
            case 16: 
                cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                CyDelay(200); 
                break;
            case 17:
                cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200); 
            break;
            case 18:
                cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                CyDelay(200); 
            break;
            case 19: 
                cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200);
            break;
            case 20:
                cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                CyDelay(200); 
            break;
            case 21:
                cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200);
            break;
            case 22: 
                cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                CyDelay(200);
            break;
            case 23:
                cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200); 
            break;
            case 24: 
            cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                CyDelay(200); 
            break;
            case 25: 
            cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200); 
            break;
            case 26:
            cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                CyDelay(200); 
            break;
            case 27: 
            cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200);
            break;
            case 28: 
            cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                CyDelay(200);
            break;
            case 29: 
            cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200); 
            break;
            case 30: 
            cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50);
                cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                CyDelay(200); 
            break;
            case 31:
                cont50=1+ cont50;
                itoa(cont50,cuenta50,10);
                LCD_Position(1,0);
                LCD_PrintString(cuenta50); 
                cont100=1+ cont100;
                itoa(cont100,cuenta100,10);
                LCD_Position(1,3);
                LCD_PrintString(cuenta100);
                cont200=1+ cont200;
                itoa(cont200,cuenta200,10);
                LCD_Position(1,6);
                LCD_PrintString(cuenta200);
                cont500= 1+cont500;
                itoa(cont500,cuenta500,10);
                LCD_Position(1,9);
                LCD_PrintString(cuenta500);
                cont1000= 1 + cont1000;
                itoa(cont1000,cuenta1000,10);
                LCD_Position(1,12);
                LCD_PrintString(cuenta1000);
                CyDelay(200); 
            break;
               
            default:
            break;
            }
        }
   }
}

Video



Proyecto para descarga

Comments

Popular Posts