Sensor de Color

Dependencies:   mbed

Committer:
franni
Date:
Wed Oct 11 19:13:02 2017 +0000
Revision:
0:2f09ff2ad62c
Sensor de Color TCS230

Who changed what in which revision?

UserRevisionLine numberNew 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