Conteo en una banda transportadora

Dependencies:   mbed TCS3200 Pulse SeeedShieldBot BluetoothSerial

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PROYECTO.cpp Source File

PROYECTO.cpp

00001 #include "mbed.h"
00002 #include "Pulse.h"              //Libreria PulseIn                        
00003 Serial bt(PA_9,PA_10);         //Comunicacion con el modulo HC-06                 
00004 DigitalIn signal(PC_7);        //Señal del sensor de obstaculo         
00005 DigitalOut lamp(PB_3);        //Lampara
00006 DigitalOut s0(PB_6);                
00007 DigitalOut s1(PA_7);                    //Pines para el Sensor de color TCS230
00008 DigitalOut s2(PA_6);
00009 DigitalOut s3(PA_5); 
00010 DigitalOut pinMotorA(PC_10);                 //Declaracion de pins del motor reductor
00011 DigitalOut pinMotorB(PC_12);                   
00012 PulseInOut sensorSalida(PB_9);          //Salida del Sensor de color
00013 
00014 int main(){
00015     bt.baud(9600);
00016     int conteo=0;
00017     int Rojo = 0;
00018     int Verde = 0;                    
00019     int Azul = 0;
00020     pinMotorA=0;                    //motor prendido al inicio
00021     pinMotorB=1;
00022     lamp=0;
00023     s0=1;                          //20% Freq del sensor
00024     s1=0;
00025     
00026     for(;;){
00027     //Sensor de Color
00028     s2=0;                                   //ROJO
00029     s3=0;
00030     wait(.1);
00031     Rojo = sensorSalida.read_low_us();
00032     wait(.1);
00033     
00034     s2=1;                                   //Verde
00035     s3=1;
00036     wait(.1);
00037     Verde = sensorSalida.read_low_us();
00038     wait(.1);
00039     
00040     s2=0;                                   //Azul
00041     s3=1;
00042     wait(.1);
00043     Azul = sensorSalida.read_low_us();
00044     wait(.1);
00045     
00046     if (Rojo < 35 && Verde > 100 && Azul < 82)  bt.printf(" . *** ROJO ***");
00047     if (Rojo > 105 && Verde > 110 && Azul >83 ) bt.printf(" . *** NEGRO ***");
00048     if (Rojo > 20 && Verde < 28 && Azul < 27)   bt.printf(" . *** VERDE ***");
00049     //Sensor de Objetos 
00050     float valor = signal.read();  
00051      valor = signal.read();
00052     if(valor==0){
00053         conteo++; 
00054         while(signal.read()==0){                           //  while Para evitar que siga tomando valores (antirebote de señal)
00055             wait(.1); 
00056             
00057             }  
00058             bt.printf("%d",conteo);
00059              }
00060         
00061     
00062     if(conteo>=10){
00063         bt.printf("*El proceso de conteo ha terminado*");
00064         lamp=1;
00065         wait(4.5);
00066         pinMotorA=0;                    //motor apagado y el rele se activa la lampara prendida al terminar el proceso
00067         pinMotorB=0;
00068         conteo=0;
00069         }else if(conteo==0){
00070             lamp=0;
00071             pinMotorA=0;                    //motor prendido 
00072             pinMotorB=1;
00073             }
00074     
00075     }
00076     
00077     }