Frank Girald
/
tcs230v2
Sensor de Color
main.cpp@0:2f09ff2ad62c, 2017-10-11 (annotated)
- Committer:
- franni
- Date:
- Wed Oct 11 19:13:02 2017 +0000
- Revision:
- 0:2f09ff2ad62c
Sensor de Color TCS230
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
franni | 0:2f09ff2ad62c | 1 | #include "mbed.h" |
franni | 0:2f09ff2ad62c | 2 | |
franni | 0:2f09ff2ad62c | 3 | Serial rs232(USBTX,USBRX); |
franni | 0:2f09ff2ad62c | 4 | Timer Timer1; |
franni | 0:2f09ff2ad62c | 5 | DigitalOut led1(LED1); |
franni | 0:2f09ff2ad62c | 6 | InterruptIn int1(PTD0); |
franni | 0:2f09ff2ad62c | 7 | |
franni | 0:2f09ff2ad62c | 8 | unsigned int contador = 0, frec = 0, cont_color1, cont_color2, cont_color3; |
franni | 0:2f09ff2ad62c | 9 | bool flag_color1, flag_color2, flag_color3; |
franni | 0:2f09ff2ad62c | 10 | |
franni | 0:2f09ff2ad62c | 11 | void ISR_PTD0() |
franni | 0:2f09ff2ad62c | 12 | { |
franni | 0:2f09ff2ad62c | 13 | ++contador; |
franni | 0:2f09ff2ad62c | 14 | } |
franni | 0:2f09ff2ad62c | 15 | |
franni | 0:2f09ff2ad62c | 16 | void frecuencia() |
franni | 0:2f09ff2ad62c | 17 | { |
franni | 0:2f09ff2ad62c | 18 | contador=0; |
franni | 0:2f09ff2ad62c | 19 | Timer1.start(); |
franni | 0:2f09ff2ad62c | 20 | while(Timer1.read_ms()<=10); |
franni | 0:2f09ff2ad62c | 21 | Timer1.stop(); |
franni | 0:2f09ff2ad62c | 22 | frec=100*(contador); |
franni | 0:2f09ff2ad62c | 23 | Timer1.reset(); |
franni | 0:2f09ff2ad62c | 24 | } |
franni | 0:2f09ff2ad62c | 25 | |
franni | 0:2f09ff2ad62c | 26 | int main() |
franni | 0:2f09ff2ad62c | 27 | { |
franni | 0:2f09ff2ad62c | 28 | int1.mode(PullUp); |
franni | 0:2f09ff2ad62c | 29 | int1.rise(&ISR_PTD0); |
franni | 0:2f09ff2ad62c | 30 | while(true) { |
franni | 0:2f09ff2ad62c | 31 | frecuencia(); |
franni | 0:2f09ff2ad62c | 32 | rs232.printf("f=%d Hz\r\n",frec); |
franni | 0:2f09ff2ad62c | 33 | if(frec>=10000 && frec<=15000) { |
franni | 0:2f09ff2ad62c | 34 | rs232.printf("f=%d Hz\r\n",frec); |
franni | 0:2f09ff2ad62c | 35 | if(flag_color1==0) { |
franni | 0:2f09ff2ad62c | 36 | ++cont_color1; |
franni | 0:2f09ff2ad62c | 37 | rs232.printf("Dorado"); |
franni | 0:2f09ff2ad62c | 38 | } |
franni | 0:2f09ff2ad62c | 39 | flag_color1=1; |
franni | 0:2f09ff2ad62c | 40 | } else { |
franni | 0:2f09ff2ad62c | 41 | flag_color1=0; |
franni | 0:2f09ff2ad62c | 42 | } |
franni | 0:2f09ff2ad62c | 43 | if(frec>=20000 && frec<=25000) { |
franni | 0:2f09ff2ad62c | 44 | rs232.printf("f=%d Hz\r\n",frec); |
franni | 0:2f09ff2ad62c | 45 | if(flag_color1==0) { |
franni | 0:2f09ff2ad62c | 46 | ++cont_color2; |
franni | 0:2f09ff2ad62c | 47 | rs232.printf("Magenta"); |
franni | 0:2f09ff2ad62c | 48 | } |
franni | 0:2f09ff2ad62c | 49 | flag_color2=1; |
franni | 0:2f09ff2ad62c | 50 | } else { |
franni | 0:2f09ff2ad62c | 51 | flag_color2=0; |
franni | 0:2f09ff2ad62c | 52 | } |
franni | 0:2f09ff2ad62c | 53 | if(frec>=30000 && frec<=35000) { |
franni | 0:2f09ff2ad62c | 54 | rs232.printf("f=%d Hz\r\n",frec); |
franni | 0:2f09ff2ad62c | 55 | if(flag_color1==0) { |
franni | 0:2f09ff2ad62c | 56 | ++cont_color3; |
franni | 0:2f09ff2ad62c | 57 | rs232.printf("Rosa"); |
franni | 0:2f09ff2ad62c | 58 | } |
franni | 0:2f09ff2ad62c | 59 | flag_color3=1; |
franni | 0:2f09ff2ad62c | 60 | } else { |
franni | 0:2f09ff2ad62c | 61 | flag_color3=0; |
franni | 0:2f09ff2ad62c | 62 | } |
franni | 0:2f09ff2ad62c | 63 | wait(0.5); |
franni | 0:2f09ff2ad62c | 64 | } |
franni | 0:2f09ff2ad62c | 65 | } |
franni | 0:2f09ff2ad62c | 66 | |
franni | 0:2f09ff2ad62c | 67 | |
franni | 0:2f09ff2ad62c | 68 | |
franni | 0:2f09ff2ad62c | 69 |