Einer Fabian Aponte Cubides / Mbed 2 deprecated Primeraentrega

Dependencies:   mbed

Committer:
Darstack
Date:
Fri Mar 08 05:49:38 2019 +0000
Revision:
2:d168f964c331
Parent:
1:334b40b47233
Child:
3:3454cb7584e1
Lectura colores ; -rojo; -verde; -azul; -amarillo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fabeltranm 0:fa6bdbdd4239 1 #include "mbed.h"
fabeltranm 0:fa6bdbdd4239 2 #include "scolor_TCS3200.h"
fabeltranm 0:fa6bdbdd4239 3
fabeltranm 0:fa6bdbdd4239 4 /* *****************************************************************************
fabeltranm 0:fa6bdbdd4239 5 Programa que solicita telemetria al sistema embebido, por medio del comando 0xFe
fabeltranm 0:fa6bdbdd4239 6 para preguntar por el color que detecta el sensor TCS3200
fabeltranm 0:fa6bdbdd4239 7
fabeltranm 0:fa6bdbdd4239 8 el sistema embebido recibe el inicio de trama FE y el número de comado: 01
fabeltranm 0:fa6bdbdd4239 9
fabeltranm 0:fa6bdbdd4239 10 | INITELE | CMD |
fabeltranm 0:fa6bdbdd4239 11 | 0xfe | 0x01 |
fabeltranm 0:fa6bdbdd4239 12
fabeltranm 0:fa6bdbdd4239 13
fabeltranm 0:fa6bdbdd4239 14 para enviar los comandos usar el programa Coolterm http://freeware.the-meiers.org/
fabeltranm 0:fa6bdbdd4239 15
fabeltranm 0:fa6bdbdd4239 16
fabeltranm 0:fa6bdbdd4239 17 @fabeltranm 2019
fabeltranm 0:fa6bdbdd4239 18 fbeltranm@ecci.edu.co
fabeltranm 0:fa6bdbdd4239 19
fabeltranm 0:fa6bdbdd4239 20 ********************************************************************************
fabeltranm 0:fa6bdbdd4239 21 datasheet https://www.mouser.com/catalog/specsheets/TCS3200-E11.pdf
fabeltranm 0:fa6bdbdd4239 22
fabeltranm 0:fa6bdbdd4239 23
fabeltranm 0:fa6bdbdd4239 24 S0 Frequency scaling
fabeltranm 0:fa6bdbdd4239 25 S1 Frequency scaling
fabeltranm 0:fa6bdbdd4239 26 S2 Photo diode selection
fabeltranm 0:fa6bdbdd4239 27 S3 Photo diode selection
fabeltranm 0:fa6bdbdd4239 28 OutFreq Frequency
fabeltranm 0:fa6bdbdd4239 29
fabeltranm 0:fa6bdbdd4239 30 -----------------------------------
fabeltranm 0:fa6bdbdd4239 31 | ____________ ____________ |
fabeltranm 0:fa6bdbdd4239 32 ----> | | | | | | ___ ___
fabeltranm 0:fa6bdbdd4239 33 Light | | Photodiode | | Current |--|---OUTPUT_FREQ | |___| |___
fabeltranm 0:fa6bdbdd4239 34 ----> | | Array |---| to | |
fabeltranm 0:fa6bdbdd4239 35 | | | | Frequency | |
fabeltranm 0:fa6bdbdd4239 36 | |____________| |____________| |
fabeltranm 0:fa6bdbdd4239 37 | ^ ^ ^ ^ |
fabeltranm 0:fa6bdbdd4239 38 -------|--|-------------|--|-------
fabeltranm 0:fa6bdbdd4239 39 | | | |
fabeltranm 0:fa6bdbdd4239 40 S2 S3 S0 S1
fabeltranm 0:fa6bdbdd4239 41
fabeltranm 0:fa6bdbdd4239 42 SO | S1 | OUTPUT FREQUENCY SCALING | | S2 | S3 | PHOTODIODE TYPE |
fabeltranm 0:fa6bdbdd4239 43 0 | 0 | power down | | 0 | 0 | Red |
fabeltranm 0:fa6bdbdd4239 44 0 | 1 | 2% | | 0 | 1 | Blue |
fabeltranm 0:fa6bdbdd4239 45 1 | 0 | 20% | | 1 | 0 | Clear (no filter) |
fabeltranm 0:fa6bdbdd4239 46 1 | 1 | 100% | | 1 | 1 | Green |
fabeltranm 0:fa6bdbdd4239 47
fabeltranm 0:fa6bdbdd4239 48 ******************************************************************************/
fabeltranm 0:fa6bdbdd4239 49
fabeltranm 0:fa6bdbdd4239 50 #define INITELE 0xFE
fabeltranm 1:334b40b47233 51 #define CMD 0x01
Darstack 2:d168f964c331 52 #define DO 1300
Darstack 2:d168f964c331 53 #define RE 1500
Darstack 2:d168f964c331 54 #define MI 1600
Darstack 2:d168f964c331 55 #define FA 1800
Darstack 2:d168f964c331 56 #define SO 2000
fabeltranm 0:fa6bdbdd4239 57
fabeltranm 0:fa6bdbdd4239 58
fabeltranm 0:fa6bdbdd4239 59 Serial command(USBTX, USBRX);
fabeltranm 1:334b40b47233 60 // S0, S1, S2, S3, OUT
fabeltranm 1:334b40b47233 61 scolor_TCS3200 scolor(PA_8, PB_10, PB_4, PB_5, PB_3);
fabeltranm 0:fa6bdbdd4239 62
fabeltranm 0:fa6bdbdd4239 63 // definición de las funciones
fabeltranm 0:fa6bdbdd4239 64 void setup_uart();
fabeltranm 0:fa6bdbdd4239 65 void leer_datos();
fabeltranm 0:fa6bdbdd4239 66 void leer_color();
fabeltranm 0:fa6bdbdd4239 67 uint8_t cmd;
Darstack 2:d168f964c331 68 PwmOut mybuzzer(PA_10);
fabeltranm 0:fa6bdbdd4239 69
fabeltranm 0:fa6bdbdd4239 70 int main() {
fabeltranm 0:fa6bdbdd4239 71
fabeltranm 0:fa6bdbdd4239 72 setup_uart();
fabeltranm 0:fa6bdbdd4239 73 while(1){
fabeltranm 0:fa6bdbdd4239 74 leer_datos();
fabeltranm 0:fa6bdbdd4239 75 if (cmd==CMD){}
fabeltranm 1:334b40b47233 76 leer_color();
fabeltranm 0:fa6bdbdd4239 77 }
fabeltranm 0:fa6bdbdd4239 78 }
fabeltranm 0:fa6bdbdd4239 79
fabeltranm 0:fa6bdbdd4239 80
fabeltranm 0:fa6bdbdd4239 81
fabeltranm 0:fa6bdbdd4239 82 void setup_uart(){
fabeltranm 0:fa6bdbdd4239 83 command.baud(115200);
fabeltranm 0:fa6bdbdd4239 84 }
fabeltranm 0:fa6bdbdd4239 85
fabeltranm 0:fa6bdbdd4239 86
fabeltranm 0:fa6bdbdd4239 87 void leer_datos(){
fabeltranm 0:fa6bdbdd4239 88 while(command.getc()!= INITELE);
Darstack 2:d168f964c331 89 cmd=command.getc();
fabeltranm 0:fa6bdbdd4239 90 }
fabeltranm 0:fa6bdbdd4239 91
fabeltranm 0:fa6bdbdd4239 92
fabeltranm 0:fa6bdbdd4239 93 void leer_color(){
fabeltranm 0:fa6bdbdd4239 94
Darstack 2:d168f964c331 95 mybuzzer.write(0);
fabeltranm 0:fa6bdbdd4239 96 long red = scolor.ReadRed();
fabeltranm 0:fa6bdbdd4239 97 long green = scolor.ReadGreen();
fabeltranm 0:fa6bdbdd4239 98 long blue = scolor.ReadBlue();
fabeltranm 0:fa6bdbdd4239 99 long clear = scolor.ReadClear();
Darstack 2:d168f964c331 100
Darstack 2:d168f964c331 101 long frqred;
Darstack 2:d168f964c331 102 long frqgreen;
Darstack 2:d168f964c331 103 long frqblue;
Darstack 2:d168f964c331 104 long frqclear;
fabeltranm 1:334b40b47233 105 printf("RED: %5d GREEN: %5d BLUE: %5d CLEAR: %5d \n ", red, green, blue, clear);
fabeltranm 0:fa6bdbdd4239 106
Darstack 2:d168f964c331 107 frqred = ( ( 1.0/red )* 1000.0 );
Darstack 2:d168f964c331 108 frqgreen = ( ( 1.0/green ) * 1000.0);
Darstack 2:d168f964c331 109 frqblue = ( (1.0/blue) *1000.0 );
Darstack 2:d168f964c331 110 frqclear = ( (1.0/clear) *1000.0 );
Darstack 2:d168f964c331 111 printf("RED: %5d GREEN: %5d BLUE: %5d CLEAR: %5d \n ", frqred, frqgreen, frqblue);
Darstack 2:d168f964c331 112 ///////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 113 /*||||||||||||||||Seleccionando los diferentes colores.||||||||||||||||||||||*/
Darstack 2:d168f964c331 114 /*||||||||||||||||||||||||||||||Color rojo|||||||||||||||||||||||||||||||||||*/
Darstack 2:d168f964c331 115 ///////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 116 if ( frqred >= 84.0 and frqred <= 105.0) {
Darstack 2:d168f964c331 117 printf ( "entro al 1" );
Darstack 2:d168f964c331 118 if( frqgreen >= 0.0 and frqgreen <= 12.0 ) {
Darstack 2:d168f964c331 119 printf ( "entro al 2" );
Darstack 2:d168f964c331 120 if ( 5.0 >= frqblue <= 21.0 ) {
Darstack 2:d168f964c331 121
Darstack 2:d168f964c331 122 mybuzzer.period_us(DO);
Darstack 2:d168f964c331 123 mybuzzer.write(0.5);
Darstack 2:d168f964c331 124 wait(5);
Darstack 2:d168f964c331 125 mybuzzer.write(0);
Darstack 2:d168f964c331 126 printf ( "tiende a rojo" );
Darstack 2:d168f964c331 127 }
Darstack 2:d168f964c331 128 }
Darstack 2:d168f964c331 129 }
Darstack 2:d168f964c331 130 ////////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 131 /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color verde°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
Darstack 2:d168f964c331 132 ///////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 133 if ( frqgreen >= 57.0 and frqgreen <= 80.0) {
Darstack 2:d168f964c331 134 printf ( "entro al 1" );
Darstack 2:d168f964c331 135 if( frqred >= 9.0 and frqred <= 27.0 ) {
Darstack 2:d168f964c331 136 printf ( "entro al 2" );
Darstack 2:d168f964c331 137 if ( 8.0 >= frqblue <= 28.0 ) {
Darstack 2:d168f964c331 138
Darstack 2:d168f964c331 139 mybuzzer.period_us(RE);
Darstack 2:d168f964c331 140 mybuzzer.write(0.5);
Darstack 2:d168f964c331 141 wait(5);
Darstack 2:d168f964c331 142 mybuzzer.write(0);
Darstack 2:d168f964c331 143 printf ( "tiende a verde" );
Darstack 2:d168f964c331 144 }
Darstack 2:d168f964c331 145 }
Darstack 2:d168f964c331 146 }
Darstack 2:d168f964c331 147 ////////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 148 /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color azul°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
Darstack 2:d168f964c331 149 ///////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 150 if ( frqblue >= 61.0 and frqblue <= 84.0) {
Darstack 2:d168f964c331 151 printf ( "entro al 1" );
Darstack 2:d168f964c331 152 if( frqgreen >= 22.0 and frqgreen <= 43.0 ) {
Darstack 2:d168f964c331 153 printf ( "entro al 2" );
Darstack 2:d168f964c331 154 if ( 0.0 >= frqred <= 6.0 ) {
Darstack 2:d168f964c331 155
Darstack 2:d168f964c331 156 mybuzzer.period_us(MI);
Darstack 2:d168f964c331 157 mybuzzer.write(0.5);
Darstack 2:d168f964c331 158 wait(5);
Darstack 2:d168f964c331 159 mybuzzer.write(0);
Darstack 2:d168f964c331 160 printf ( "tiende a azul" );
Darstack 2:d168f964c331 161 }
Darstack 2:d168f964c331 162 }
Darstack 2:d168f964c331 163 }
Darstack 2:d168f964c331 164 /////////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 165 /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color amarillo°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
Darstack 2:d168f964c331 166 ////////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 167 if ( frqblue >= 0.0 and frqblue <= 12.0 ) {
Darstack 2:d168f964c331 168 printf ( "entro al 1" );
Darstack 2:d168f964c331 169 if( frqgreen >= 20.0 and frqgreen <= 60.0 ) {
Darstack 2:d168f964c331 170 printf ( "entro al 2" );
Darstack 2:d168f964c331 171 if ( 0.0 >= frqred <= 6.0 ) {
Darstack 2:d168f964c331 172
Darstack 2:d168f964c331 173 mybuzzer.period_us(FA);
Darstack 2:d168f964c331 174 mybuzzer.write(0.5);
Darstack 2:d168f964c331 175 wait(5);
Darstack 2:d168f964c331 176 mybuzzer.write(0);
Darstack 2:d168f964c331 177 printf ( "tiende a amarillo" );
Darstack 2:d168f964c331 178
Darstack 2:d168f964c331 179 }
Darstack 2:d168f964c331 180 }
Darstack 2:d168f964c331 181 }
Darstack 2:d168f964c331 182 /////////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 183 /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color no found°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
Darstack 2:d168f964c331 184 ////////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 185 if ( frqclear >= 12.5 and frqclear <= 19.7 ) {}
Darstack 2:d168f964c331 186 else {
Darstack 2:d168f964c331 187
Darstack 2:d168f964c331 188 mybuzzer.period_us(DO);
Darstack 2:d168f964c331 189 mybuzzer.write(0.5);
Darstack 2:d168f964c331 190 wait(5);
Darstack 2:d168f964c331 191 mybuzzer.write(0);
Darstack 2:d168f964c331 192 printf( "Color no found" );
Darstack 2:d168f964c331 193
fabeltranm 0:fa6bdbdd4239 194 }
Darstack 2:d168f964c331 195 }
fabeltranm 0:fa6bdbdd4239 196