Conteo en una banda transportadora

Dependencies:   mbed TCS3200 Pulse SeeedShieldBot BluetoothSerial

Committer:
diego_27
Date:
Thu Nov 11 10:01:21 2021 +0000
Revision:
0:af774eabe2b7
Proyecto Banda Transportadora

Who changed what in which revision?

UserRevisionLine numberNew contents of line
diego_27 0:af774eabe2b7 1 #include "mbed.h"
diego_27 0:af774eabe2b7 2 #include "Pulse.h" //Libreria PulseIn
diego_27 0:af774eabe2b7 3 Serial bt(PA_9,PA_10); //Comunicacion con el modulo HC-06
diego_27 0:af774eabe2b7 4 DigitalIn signal(PC_7); //Señal del sensor de obstaculo
diego_27 0:af774eabe2b7 5 DigitalOut lamp(PB_3); //Lampara
diego_27 0:af774eabe2b7 6 DigitalOut s0(PB_6);
diego_27 0:af774eabe2b7 7 DigitalOut s1(PA_7); //Pines para el Sensor de color TCS230
diego_27 0:af774eabe2b7 8 DigitalOut s2(PA_6);
diego_27 0:af774eabe2b7 9 DigitalOut s3(PA_5);
diego_27 0:af774eabe2b7 10 DigitalOut pinMotorA(PC_10); //Declaracion de pins del motor reductor
diego_27 0:af774eabe2b7 11 DigitalOut pinMotorB(PC_12);
diego_27 0:af774eabe2b7 12 PulseInOut sensorSalida(PB_9); //Salida del Sensor de color
diego_27 0:af774eabe2b7 13
diego_27 0:af774eabe2b7 14 int main(){
diego_27 0:af774eabe2b7 15 bt.baud(9600);
diego_27 0:af774eabe2b7 16 int conteo=0;
diego_27 0:af774eabe2b7 17 int Rojo = 0;
diego_27 0:af774eabe2b7 18 int Verde = 0;
diego_27 0:af774eabe2b7 19 int Azul = 0;
diego_27 0:af774eabe2b7 20 pinMotorA=0; //motor prendido al inicio
diego_27 0:af774eabe2b7 21 pinMotorB=1;
diego_27 0:af774eabe2b7 22 lamp=0;
diego_27 0:af774eabe2b7 23 s0=1; //20% Freq del sensor
diego_27 0:af774eabe2b7 24 s1=0;
diego_27 0:af774eabe2b7 25
diego_27 0:af774eabe2b7 26 for(;;){
diego_27 0:af774eabe2b7 27 //Sensor de Color
diego_27 0:af774eabe2b7 28 s2=0; //ROJO
diego_27 0:af774eabe2b7 29 s3=0;
diego_27 0:af774eabe2b7 30 wait(.1);
diego_27 0:af774eabe2b7 31 Rojo = sensorSalida.read_low_us();
diego_27 0:af774eabe2b7 32 wait(.1);
diego_27 0:af774eabe2b7 33
diego_27 0:af774eabe2b7 34 s2=1; //Verde
diego_27 0:af774eabe2b7 35 s3=1;
diego_27 0:af774eabe2b7 36 wait(.1);
diego_27 0:af774eabe2b7 37 Verde = sensorSalida.read_low_us();
diego_27 0:af774eabe2b7 38 wait(.1);
diego_27 0:af774eabe2b7 39
diego_27 0:af774eabe2b7 40 s2=0; //Azul
diego_27 0:af774eabe2b7 41 s3=1;
diego_27 0:af774eabe2b7 42 wait(.1);
diego_27 0:af774eabe2b7 43 Azul = sensorSalida.read_low_us();
diego_27 0:af774eabe2b7 44 wait(.1);
diego_27 0:af774eabe2b7 45
diego_27 0:af774eabe2b7 46 if (Rojo < 35 && Verde > 100 && Azul < 82) bt.printf(" . *** ROJO ***");
diego_27 0:af774eabe2b7 47 if (Rojo > 105 && Verde > 110 && Azul >83 ) bt.printf(" . *** NEGRO ***");
diego_27 0:af774eabe2b7 48 if (Rojo > 20 && Verde < 28 && Azul < 27) bt.printf(" . *** VERDE ***");
diego_27 0:af774eabe2b7 49 //Sensor de Objetos
diego_27 0:af774eabe2b7 50 float valor = signal.read();
diego_27 0:af774eabe2b7 51 valor = signal.read();
diego_27 0:af774eabe2b7 52 if(valor==0){
diego_27 0:af774eabe2b7 53 conteo++;
diego_27 0:af774eabe2b7 54 while(signal.read()==0){ // while Para evitar que siga tomando valores (antirebote de señal)
diego_27 0:af774eabe2b7 55 wait(.1);
diego_27 0:af774eabe2b7 56
diego_27 0:af774eabe2b7 57 }
diego_27 0:af774eabe2b7 58 bt.printf("%d",conteo);
diego_27 0:af774eabe2b7 59 }
diego_27 0:af774eabe2b7 60
diego_27 0:af774eabe2b7 61
diego_27 0:af774eabe2b7 62 if(conteo>=10){
diego_27 0:af774eabe2b7 63 bt.printf("*El proceso de conteo ha terminado*");
diego_27 0:af774eabe2b7 64 lamp=1;
diego_27 0:af774eabe2b7 65 wait(4.5);
diego_27 0:af774eabe2b7 66 pinMotorA=0; //motor apagado y el rele se activa la lampara prendida al terminar el proceso
diego_27 0:af774eabe2b7 67 pinMotorB=0;
diego_27 0:af774eabe2b7 68 conteo=0;
diego_27 0:af774eabe2b7 69 }else if(conteo==0){
diego_27 0:af774eabe2b7 70 lamp=0;
diego_27 0:af774eabe2b7 71 pinMotorA=0; //motor prendido
diego_27 0:af774eabe2b7 72 pinMotorB=1;
diego_27 0:af774eabe2b7 73 }
diego_27 0:af774eabe2b7 74
diego_27 0:af774eabe2b7 75 }
diego_27 0:af774eabe2b7 76
diego_27 0:af774eabe2b7 77 }