Conteo en una banda transportadora
Dependencies: mbed TCS3200 Pulse SeeedShieldBot BluetoothSerial
PROYECTO.cpp@0:af774eabe2b7, 2021-11-11 (annotated)
- Committer:
- diego_27
- Date:
- Thu Nov 11 10:01:21 2021 +0000
- Revision:
- 0:af774eabe2b7
Proyecto Banda Transportadora
Who changed what in which revision?
User | Revision | Line number | New 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 | } |