Mateo Morales
/
Sensor_color_serial
Solo detecta rgb
main.cpp@0:1c90c49f6cca, 2018-11-23 (annotated)
- Committer:
- Mateom0104
- Date:
- Fri Nov 23 01:34:48 2018 +0000
- Revision:
- 0:1c90c49f6cca
Sensor color
Who changed what in which revision?
User | Revision | Line number | New 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 | } |