Solo detecta rgb

Dependencies:   mbed

Committer:
Mateom0104
Date:
Fri Nov 23 01:34:48 2018 +0000
Revision:
0:1c90c49f6cca
Sensor color

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mateom0104 0:1c90c49f6cca 1 #include "mbed.h"
Mateom0104 0:1c90c49f6cca 2
Mateom0104 0:1c90c49f6cca 3
Mateom0104 0:1c90c49f6cca 4 Serial pc(SERIAL_TX, SERIAL_RX);
Mateom0104 0:1c90c49f6cca 5
Mateom0104 0:1c90c49f6cca 6 DigitalOut s0(D3);
Mateom0104 0:1c90c49f6cca 7 DigitalOut s1(D4);
Mateom0104 0:1c90c49f6cca 8 DigitalOut s2(D5);
Mateom0104 0:1c90c49f6cca 9 DigitalOut s3(D6);
Mateom0104 0:1c90c49f6cca 10
Mateom0104 0:1c90c49f6cca 11 DigitalOut led_col(D7);
Mateom0104 0:1c90c49f6cca 12 DigitalOut led1(LED1);
Mateom0104 0:1c90c49f6cca 13 DigitalIn out(D2);
Mateom0104 0:1c90c49f6cca 14
Mateom0104 0:1c90c49f6cca 15 Timer tiempo;
Mateom0104 0:1c90c49f6cca 16
Mateom0104 0:1c90c49f6cca 17 int valor,verificaion_color ;
Mateom0104 0:1c90c49f6cca 18 int val_color;
Mateom0104 0:1c90c49f6cca 19 int r,g,b;
Mateom0104 0:1c90c49f6cca 20
Mateom0104 0:1c90c49f6cca 21
Mateom0104 0:1c90c49f6cca 22 void analisis (void);
Mateom0104 0:1c90c49f6cca 23
Mateom0104 0:1c90c49f6cca 24
Mateom0104 0:1c90c49f6cca 25 void analisis(void)
Mateom0104 0:1c90c49f6cca 26 {
Mateom0104 0:1c90c49f6cca 27 while(verificaion_color==0)
Mateom0104 0:1c90c49f6cca 28 {
Mateom0104 0:1c90c49f6cca 29 valor=out.read();
Mateom0104 0:1c90c49f6cca 30 // pc.printf("valor 1= %d \n",valor);
Mateom0104 0:1c90c49f6cca 31 if (valor==1)
Mateom0104 0:1c90c49f6cca 32 {
Mateom0104 0:1c90c49f6cca 33 while(verificaion_color==0)
Mateom0104 0:1c90c49f6cca 34 {
Mateom0104 0:1c90c49f6cca 35 valor=out.read();
Mateom0104 0:1c90c49f6cca 36 // pc.printf("valor 2= %d \n",valor);
Mateom0104 0:1c90c49f6cca 37
Mateom0104 0:1c90c49f6cca 38 if(valor==0)
Mateom0104 0:1c90c49f6cca 39 {
Mateom0104 0:1c90c49f6cca 40 tiempo.start();
Mateom0104 0:1c90c49f6cca 41 }
Mateom0104 0:1c90c49f6cca 42 while(valor==0)
Mateom0104 0:1c90c49f6cca 43 {
Mateom0104 0:1c90c49f6cca 44 valor=out.read();
Mateom0104 0:1c90c49f6cca 45 // pc.printf("valor 3= %d \n",valor);
Mateom0104 0:1c90c49f6cca 46 verificaion_color=1;
Mateom0104 0:1c90c49f6cca 47 }
Mateom0104 0:1c90c49f6cca 48 }
Mateom0104 0:1c90c49f6cca 49 }
Mateom0104 0:1c90c49f6cca 50 }
Mateom0104 0:1c90c49f6cca 51 val_color=tiempo.read_us();
Mateom0104 0:1c90c49f6cca 52 tiempo.reset();
Mateom0104 0:1c90c49f6cca 53 verificaion_color=0;
Mateom0104 0:1c90c49f6cca 54 }
Mateom0104 0:1c90c49f6cca 55 int main() {
Mateom0104 0:1c90c49f6cca 56 pc.baud(9600);
Mateom0104 0:1c90c49f6cca 57 led_col=1;
Mateom0104 0:1c90c49f6cca 58 //escala de frecuencia a 20%
Mateom0104 0:1c90c49f6cca 59 s0=1;
Mateom0104 0:1c90c49f6cca 60 s1=0;
Mateom0104 0:1c90c49f6cca 61
Mateom0104 0:1c90c49f6cca 62 while(1)
Mateom0104 0:1c90c49f6cca 63 {
Mateom0104 0:1c90c49f6cca 64 s2=0;
Mateom0104 0:1c90c49f6cca 65 s3=0;
Mateom0104 0:1c90c49f6cca 66 analisis();
Mateom0104 0:1c90c49f6cca 67 //pc.printf("Rojox= %d \n",val_color);
Mateom0104 0:1c90c49f6cca 68 r=val_color;
Mateom0104 0:1c90c49f6cca 69 wait_ms(100);
Mateom0104 0:1c90c49f6cca 70
Mateom0104 0:1c90c49f6cca 71
Mateom0104 0:1c90c49f6cca 72 s2=0;
Mateom0104 0:1c90c49f6cca 73 s3=1;
Mateom0104 0:1c90c49f6cca 74 analisis();
Mateom0104 0:1c90c49f6cca 75 //pc.printf(" Azul= %d \n ",val_color);
Mateom0104 0:1c90c49f6cca 76 b=val_color;
Mateom0104 0:1c90c49f6cca 77 wait_ms(100);
Mateom0104 0:1c90c49f6cca 78
Mateom0104 0:1c90c49f6cca 79
Mateom0104 0:1c90c49f6cca 80 s2=1;
Mateom0104 0:1c90c49f6cca 81 s3=1;
Mateom0104 0:1c90c49f6cca 82 analisis();
Mateom0104 0:1c90c49f6cca 83 //pc.printf(" Verde= %d \n",val_color);
Mateom0104 0:1c90c49f6cca 84 g=val_color;
Mateom0104 0:1c90c49f6cca 85 wait_ms(100);
Mateom0104 0:1c90c49f6cca 86
Mateom0104 0:1c90c49f6cca 87
Mateom0104 0:1c90c49f6cca 88 //Blanco
Mateom0104 0:1c90c49f6cca 89 if((r>=600047 && r<=600115) &&(g>=100051 && g<=100108) && (b>=100044 && b<=100086))
Mateom0104 0:1c90c49f6cca 90 {
Mateom0104 0:1c90c49f6cca 91 pc.printf(" Blanco \n");
Mateom0104 0:1c90c49f6cca 92 }
Mateom0104 0:1c90c49f6cca 93 //rojo
Mateom0104 0:1c90c49f6cca 94 else if((r>=600116 && r<=600282) &&(g>=100305 && g<=100853) && (b>=100191 && b<=100550))
Mateom0104 0:1c90c49f6cca 95 {
Mateom0104 0:1c90c49f6cca 96 pc.printf(" Rojo \n");
Mateom0104 0:1c90c49f6cca 97 }
Mateom0104 0:1c90c49f6cca 98 //verde
Mateom0104 0:1c90c49f6cca 99
Mateom0104 0:1c90c49f6cca 100 else if ((r>=600283 && r<=600669) &&(g>=100143 && g<=100395) && (b>=100147 && b<=100409))
Mateom0104 0:1c90c49f6cca 101 {
Mateom0104 0:1c90c49f6cca 102 pc.printf(" Verde \n");
Mateom0104 0:1c90c49f6cca 103 }
Mateom0104 0:1c90c49f6cca 104
Mateom0104 0:1c90c49f6cca 105 //Azul
Mateom0104 0:1c90c49f6cca 106
Mateom0104 0:1c90c49f6cca 107 else if((r>=600570 && r<=601153) &&(g>=100199 && g<=100553) && (b>=100103 && b<=100122))
Mateom0104 0:1c90c49f6cca 108 {
Mateom0104 0:1c90c49f6cca 109 pc.printf(" Azul \n");
Mateom0104 0:1c90c49f6cca 110 }
Mateom0104 0:1c90c49f6cca 111
Mateom0104 0:1c90c49f6cca 112
Mateom0104 0:1c90c49f6cca 113
Mateom0104 0:1c90c49f6cca 114 /*
Mateom0104 0:1c90c49f6cca 115
Mateom0104 0:1c90c49f6cca 116 //Blanco
Mateom0104 0:1c90c49f6cca 117 if((r>=600047 && r<=600115) &&(g>=100051 && g<=100108) && (b>=100044 && b<=100086))
Mateom0104 0:1c90c49f6cca 118 {
Mateom0104 0:1c90c49f6cca 119 pc.printf(" Blanco \n");
Mateom0104 0:1c90c49f6cca 120 }
Mateom0104 0:1c90c49f6cca 121 //rojo
Mateom0104 0:1c90c49f6cca 122 if((r>=600116 && r<=600282) &&(g>=100305 && g<=100853) && (b>=100191 && b<=100550))
Mateom0104 0:1c90c49f6cca 123 {
Mateom0104 0:1c90c49f6cca 124 pc.printf(" Rojo \n");
Mateom0104 0:1c90c49f6cca 125 }
Mateom0104 0:1c90c49f6cca 126 //verde
Mateom0104 0:1c90c49f6cca 127
Mateom0104 0:1c90c49f6cca 128 if((r>=600310 && r<=600801) &&(g>=100133 && g<=100367) && (b>=100233 && b<=100331))
Mateom0104 0:1c90c49f6cca 129 {
Mateom0104 0:1c90c49f6cca 130 pc.printf(" Verde \n");
Mateom0104 0:1c90c49f6cca 131 }
Mateom0104 0:1c90c49f6cca 132
Mateom0104 0:1c90c49f6cca 133 //Azul
Mateom0104 0:1c90c49f6cca 134
Mateom0104 0:1c90c49f6cca 135 if((r>=600424 && r<=601153) &&(g>=100199 && g<=100496) && (b>=100183 && b<=100201))
Mateom0104 0:1c90c49f6cca 136 {
Mateom0104 0:1c90c49f6cca 137 pc.printf(" Azul \n");
Mateom0104 0:1c90c49f6cca 138 }
Mateom0104 0:1c90c49f6cca 139
Mateom0104 0:1c90c49f6cca 140
Mateom0104 0:1c90c49f6cca 141 */
Mateom0104 0:1c90c49f6cca 142
Mateom0104 0:1c90c49f6cca 143 wait(0.5);
Mateom0104 0:1c90c49f6cca 144
Mateom0104 0:1c90c49f6cca 145 }
Mateom0104 0:1c90c49f6cca 146 }