Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@11:30f57addb79f, 2019-05-29 (annotated)
- Committer:
- MarlonQ
- Date:
- Wed May 29 15:44:04 2019 +0000
- Revision:
- 11:30f57addb79f
- Parent:
- 10:92350e68d5ee
Final segundo corte;
Who changed what in which revision?
| User | Revision | Line number | New 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 | |
| Darstack | 4:7a06dce3de99 | 50 | #define INITCMD 0xFF |
| Darstack | 4:7a06dce3de99 | 51 | #define DO 2000 |
| Darstack | 4:7a06dce3de99 | 52 | #define RE 2500 |
| Darstack | 4:7a06dce3de99 | 53 | #define MI 3000 |
| Darstack | 4:7a06dce3de99 | 54 | #define FA 3500 |
| fabeltranm | 0:fa6bdbdd4239 | 55 | |
| fabeltranm | 0:fa6bdbdd4239 | 56 | |
| Darstack | 4:7a06dce3de99 | 57 | /* ||Definicion de Puertos || */ |
| Darstack | 4:7a06dce3de99 | 58 | Serial command(USBTX, USBRX); |
| Darstack | 4:7a06dce3de99 | 59 | // S0, S1, S2, S3, OUT |
| MarlonQ | 11:30f57addb79f | 60 | scolor_TCS3200 scolor( PA_9, PC_7, PB_6, PA_4, PB_3) ; // PA_9, PC_7, PB_6, PA_7, PA_6 |
| Darstack | 4:7a06dce3de99 | 61 | DigitalOut stepper_step ( PB_4 ) ; |
| Darstack | 4:7a06dce3de99 | 62 | DigitalOut steppeer_dir ( PB_5 ) ; |
| Darstack | 4:7a06dce3de99 | 63 | DigitalOut stepper_step2 ( PB_10 ) ; |
| Darstack | 4:7a06dce3de99 | 64 | DigitalOut steppeer_dir2 ( PA_8 ) ; |
| Darstack | 4:7a06dce3de99 | 65 | AnalogIn analog_value0 ( A0 ) ; |
| Darstack | 4:7a06dce3de99 | 66 | AnalogIn analog_value1 ( A1 ) ; |
| Darstack | 4:7a06dce3de99 | 67 | PwmOut mybuzzer( PB_9 ) ; |
| MarlonQ | 11:30f57addb79f | 68 | Ticker tk1; |
| Darstack | 4:7a06dce3de99 | 69 | /* ||Definicion de Puertos || */ |
| Darstack | 4:7a06dce3de99 | 70 | |
| MarlonQ | 11:30f57addb79f | 71 | uint32_t VELOCITY = 2500 ; // Tiempo en micro segundos |
| Darstack | 4:7a06dce3de99 | 72 | int16_t Lectura [ 2 ] = {} ; |
| Darstack | 5:d165935ba818 | 73 | double In [ 1 ] = {} ; |
| Darstack | 4:7a06dce3de99 | 74 | |
| fabeltranm | 0:fa6bdbdd4239 | 75 | // definición de las funciones |
| MarlonQ | 11:30f57addb79f | 76 | |
| Darstack | 5:d165935ba818 | 77 | void setup_uart (); |
| Darstack | 5:d165935ba818 | 78 | void leer_datos (); |
| Darstack | 5:d165935ba818 | 79 | void leer_color (); |
| Darstack | 4:7a06dce3de99 | 80 | void funcionesrobot ( uint8_t _Parametro, uint8_t _Comando ); |
| fabeltranm | 0:fa6bdbdd4239 | 81 | |
| fabeltranm | 0:fa6bdbdd4239 | 82 | int main() { |
| fabeltranm | 0:fa6bdbdd4239 | 83 | |
| fabeltranm | 0:fa6bdbdd4239 | 84 | setup_uart(); |
| MarlonQ | 11:30f57addb79f | 85 | tk1.attach( &leer_color, 0.1 ); |
| Darstack | 6:35c069133c9a | 86 | while(1){ |
| Darstack | 6:35c069133c9a | 87 | |
| fabeltranm | 0:fa6bdbdd4239 | 88 | leer_datos(); |
| Darstack | 4:7a06dce3de99 | 89 | funcionesrobot ( Lectura [ 1 ], Lectura [ 0 ] ); |
| Darstack | 4:7a06dce3de99 | 90 | |
| Darstack | 4:7a06dce3de99 | 91 | } |
| fabeltranm | 0:fa6bdbdd4239 | 92 | } |
| fabeltranm | 0:fa6bdbdd4239 | 93 | |
| fabeltranm | 0:fa6bdbdd4239 | 94 | |
| fabeltranm | 0:fa6bdbdd4239 | 95 | void setup_uart(){ |
| fabeltranm | 0:fa6bdbdd4239 | 96 | command.baud(115200); |
| fabeltranm | 0:fa6bdbdd4239 | 97 | } |
| fabeltranm | 0:fa6bdbdd4239 | 98 | |
| fabeltranm | 0:fa6bdbdd4239 | 99 | |
| fabeltranm | 0:fa6bdbdd4239 | 100 | void leer_datos(){ |
| Darstack | 4:7a06dce3de99 | 101 | |
| Darstack | 6:35c069133c9a | 102 | while ( command.getc()!= INITCMD ) ; |
| Darstack | 4:7a06dce3de99 | 103 | uint8_t i ; |
| Darstack | 6:35c069133c9a | 104 | |
| Darstack | 4:7a06dce3de99 | 105 | for ( i = 0 ; i < 2 ; i++){ |
| Darstack | 4:7a06dce3de99 | 106 | |
| Darstack | 6:35c069133c9a | 107 | Lectura [ i ] = command.getc (); |
| Darstack | 5:d165935ba818 | 108 | //printf ( " %4d ", Lectura [ i ]); |
| Darstack | 6:35c069133c9a | 109 | |
| Darstack | 4:7a06dce3de99 | 110 | } |
| fabeltranm | 0:fa6bdbdd4239 | 111 | } |
| fabeltranm | 0:fa6bdbdd4239 | 112 | |
| fabeltranm | 0:fa6bdbdd4239 | 113 | |
| fabeltranm | 0:fa6bdbdd4239 | 114 | void leer_color(){ |
| fabeltranm | 0:fa6bdbdd4239 | 115 | |
| Darstack | 2:d168f964c331 | 116 | mybuzzer.write(0); |
| fabeltranm | 0:fa6bdbdd4239 | 117 | long red = scolor.ReadRed(); |
| fabeltranm | 0:fa6bdbdd4239 | 118 | long green = scolor.ReadGreen(); |
| fabeltranm | 0:fa6bdbdd4239 | 119 | long blue = scolor.ReadBlue(); |
| fabeltranm | 0:fa6bdbdd4239 | 120 | long clear = scolor.ReadClear(); |
| Darstack | 2:d168f964c331 | 121 | |
| Darstack | 2:d168f964c331 | 122 | long frqred; |
| Darstack | 2:d168f964c331 | 123 | long frqgreen; |
| Darstack | 2:d168f964c331 | 124 | long frqblue; |
| Darstack | 2:d168f964c331 | 125 | long frqclear; |
| Darstack | 4:7a06dce3de99 | 126 | int8_t sel_color = 0; |
| fabeltranm | 1:334b40b47233 | 127 | printf("RED: %5d GREEN: %5d BLUE: %5d CLEAR: %5d \n ", red, green, blue, clear); |
| fabeltranm | 0:fa6bdbdd4239 | 128 | |
| Darstack | 2:d168f964c331 | 129 | frqred = ( ( 1.0/red )* 1000.0 ); |
| Darstack | 2:d168f964c331 | 130 | frqgreen = ( ( 1.0/green ) * 1000.0); |
| Darstack | 2:d168f964c331 | 131 | frqblue = ( (1.0/blue) *1000.0 ); |
| Darstack | 2:d168f964c331 | 132 | frqclear = ( (1.0/clear) *1000.0 ); |
| Darstack | 3:3454cb7584e1 | 133 | printf("RED: %5d GREEN: %5d BLUE: %5d CLEAR: %5d \n ", frqred, frqgreen, frqblue,frqclear); |
| Darstack | 2:d168f964c331 | 134 | /////////////////////////////////////////////////////////////////////////////// |
| Darstack | 2:d168f964c331 | 135 | /*||||||||||||||||Seleccionando los diferentes colores.||||||||||||||||||||||*/ |
| Darstack | 2:d168f964c331 | 136 | /*||||||||||||||||||||||||||||||Color rojo|||||||||||||||||||||||||||||||||||*/ |
| Darstack | 2:d168f964c331 | 137 | /////////////////////////////////////////////////////////////////////////////// |
| Darstack | 3:3454cb7584e1 | 138 | if ( frqred >= 30.0 and frqred <= 500.0) { |
| Darstack | 3:3454cb7584e1 | 139 | |
| Darstack | 3:3454cb7584e1 | 140 | if( frqgreen >= 0.0 and frqgreen <= 20.0 ) { |
| Darstack | 3:3454cb7584e1 | 141 | |
| Darstack | 3:3454cb7584e1 | 142 | if ( frqblue >= 5.0 and frqblue <= 29.0 ) { |
| Darstack | 2:d168f964c331 | 143 | |
| Darstack | 4:7a06dce3de99 | 144 | sel_color = 1; |
| Darstack | 3:3454cb7584e1 | 145 | |
| Darstack | 2:d168f964c331 | 146 | } |
| Darstack | 2:d168f964c331 | 147 | } |
| Darstack | 2:d168f964c331 | 148 | } |
| Darstack | 2:d168f964c331 | 149 | //////////////////////////////////////////////////////////////////////////////// |
| Darstack | 3:3454cb7584e1 | 150 | /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color verde°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/ |
| Darstack | 3:3454cb7584e1 | 151 | //////////////////////////////////////////////////////////////////////////////// |
| Darstack | 3:3454cb7584e1 | 152 | if ( frqgreen >= 11.0 and frqgreen <= 21.0) { |
| Darstack | 3:3454cb7584e1 | 153 | |
| Darstack | 3:3454cb7584e1 | 154 | if( frqred >= 8.0 and frqred <= 20.0 ) { |
| Darstack | 3:3454cb7584e1 | 155 | |
| Darstack | 4:7a06dce3de99 | 156 | if ( frqblue >= 10.0 and frqblue <= 26.0 ) { |
| Darstack | 2:d168f964c331 | 157 | |
| Darstack | 4:7a06dce3de99 | 158 | sel_color = 2; |
| Darstack | 3:3454cb7584e1 | 159 | |
| Darstack | 2:d168f964c331 | 160 | } |
| Darstack | 2:d168f964c331 | 161 | } |
| Darstack | 2:d168f964c331 | 162 | } |
| Darstack | 2:d168f964c331 | 163 | //////////////////////////////////////////////////////////////////////////////// |
| Darstack | 3:3454cb7584e1 | 164 | /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color azul°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/ |
| Darstack | 2:d168f964c331 | 165 | /////////////////////////////////////////////////////////////////////////////// |
| Darstack | 3:3454cb7584e1 | 166 | if ( frqblue >= 10.0 and frqblue <= 70.0) { |
| Darstack | 3:3454cb7584e1 | 167 | |
| Darstack | 3:3454cb7584e1 | 168 | if( frqgreen >= 5.0 and frqgreen <= 26.0 ) { |
| Darstack | 2:d168f964c331 | 169 | |
| Darstack | 4:7a06dce3de99 | 170 | if ( frqred >= 5.0 and frqred <= 20.0 ) { |
| Darstack | 3:3454cb7584e1 | 171 | |
| Darstack | 4:7a06dce3de99 | 172 | sel_color = 3; |
| Darstack | 3:3454cb7584e1 | 173 | |
| Darstack | 2:d168f964c331 | 174 | } |
| Darstack | 2:d168f964c331 | 175 | } |
| Darstack | 2:d168f964c331 | 176 | } |
| Darstack | 2:d168f964c331 | 177 | ///////////////////////////////////////////////////////////////////////////////// |
| Darstack | 2:d168f964c331 | 178 | /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color amarillo°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/ |
| Darstack | 2:d168f964c331 | 179 | //////////////////////////////////////////////////////////////////////////////// |
| Darstack | 4:7a06dce3de99 | 180 | if ( frqblue >= 0.0 and frqblue <= 30.0 ) { |
| Darstack | 3:3454cb7584e1 | 181 | |
| Darstack | 3:3454cb7584e1 | 182 | if( frqgreen >= 20.0 and frqgreen <= 40.0) { |
| Darstack | 3:3454cb7584e1 | 183 | |
| Darstack | 4:7a06dce3de99 | 184 | if ( frqred >= 20.0 and frqred <= 50.0 ) { |
| MarlonQ | 11:30f57addb79f | 185 | |
| Darstack | 4:7a06dce3de99 | 186 | sel_color = 4; |
| Darstack | 3:3454cb7584e1 | 187 | |
| Darstack | 2:d168f964c331 | 188 | } |
| Darstack | 2:d168f964c331 | 189 | } |
| Darstack | 2:d168f964c331 | 190 | } |
| Darstack | 2:d168f964c331 | 191 | ///////////////////////////////////////////////////////////////////////////////// |
| Darstack | 2:d168f964c331 | 192 | /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color no found°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/ |
| Darstack | 2:d168f964c331 | 193 | //////////////////////////////////////////////////////////////////////////////// |
| Darstack | 3:3454cb7584e1 | 194 | |
| Darstack | 3:3454cb7584e1 | 195 | switch ( sel_color ) { |
| Darstack | 3:3454cb7584e1 | 196 | |
| Darstack | 6:35c069133c9a | 197 | case 0 : |
| MarlonQ | 11:30f57addb79f | 198 | printf ( "FE01 \n" ); |
| MarlonQ | 11:30f57addb79f | 199 | |
| Darstack | 4:7a06dce3de99 | 200 | |
| Darstack | 6:35c069133c9a | 201 | break ; |
| Darstack | 4:7a06dce3de99 | 202 | |
| Darstack | 6:35c069133c9a | 203 | case 1 : |
| Darstack | 3:3454cb7584e1 | 204 | |
| Darstack | 4:7a06dce3de99 | 205 | printf ( "FE01 \n" ); |
| Darstack | 4:7a06dce3de99 | 206 | sel_color = 0; |
| Darstack | 3:3454cb7584e1 | 207 | |
| Darstack | 6:35c069133c9a | 208 | break ; |
| Darstack | 3:3454cb7584e1 | 209 | |
| Darstack | 6:35c069133c9a | 210 | case 2 : |
| Darstack | 3:3454cb7584e1 | 211 | |
| Darstack | 4:7a06dce3de99 | 212 | //int32_t enviar2 = RESPUESTA2 ; |
| Darstack | 4:7a06dce3de99 | 213 | //char txt2 [6] ; |
| Darstack | 4:7a06dce3de99 | 214 | printf ( "FE02 \n" ) ; |
| Darstack | 4:7a06dce3de99 | 215 | sel_color = 0; |
| Darstack | 3:3454cb7584e1 | 216 | |
| Darstack | 6:35c069133c9a | 217 | break ; |
| Darstack | 6:35c069133c9a | 218 | |
| Darstack | 6:35c069133c9a | 219 | case 3 : |
| Darstack | 2:d168f964c331 | 220 | |
| Darstack | 4:7a06dce3de99 | 221 | //int32_t enviar3 = RESPUESTA3; |
| Darstack | 4:7a06dce3de99 | 222 | //char txt3 [6] ; |
| Darstack | 4:7a06dce3de99 | 223 | printf ( "FE03 \n" ); |
| Darstack | 4:7a06dce3de99 | 224 | sel_color = 0; |
| Darstack | 3:3454cb7584e1 | 225 | |
| Darstack | 6:35c069133c9a | 226 | break ; |
| Darstack | 3:3454cb7584e1 | 227 | |
| Darstack | 6:35c069133c9a | 228 | case 4 : |
| Darstack | 3:3454cb7584e1 | 229 | |
| Darstack | 4:7a06dce3de99 | 230 | //int32_t enviar4 = RESPUESTA4; |
| Darstack | 4:7a06dce3de99 | 231 | //char txt4 [6] ; |
| Darstack | 4:7a06dce3de99 | 232 | printf ( "FE04 \n" ); |
| Darstack | 4:7a06dce3de99 | 233 | sel_color = 0; |
| Darstack | 3:3454cb7584e1 | 234 | |
| Darstack | 6:35c069133c9a | 235 | break ; |
| Darstack | 2:d168f964c331 | 236 | } |
| fabeltranm | 0:fa6bdbdd4239 | 237 | |
| Darstack | 3:3454cb7584e1 | 238 | } |
| Darstack | 4:7a06dce3de99 | 239 | void funcionesrobot ( uint8_t _Parametro, uint8_t _Comando ){ |
| Darstack | 4:7a06dce3de99 | 240 | |
| Darstack | 4:7a06dce3de99 | 241 | /* °°Declaración de contadores°° */ |
| Darstack | 6:35c069133c9a | 242 | uint8_t i ; |
| Darstack | 6:35c069133c9a | 243 | uint8_t j ; |
| Darstack | 4:7a06dce3de99 | 244 | |
| Darstack | 4:7a06dce3de99 | 245 | switch ( _Comando ){ |
| Darstack | 4:7a06dce3de99 | 246 | // Acciones que ejerce el robot |
| Darstack | 4:7a06dce3de99 | 247 | |
| MarlonQ | 11:30f57addb79f | 248 | /*case 0 : |
| Darstack | 6:35c069133c9a | 249 | |
| Darstack | 6:35c069133c9a | 250 | leer_color() ; |
| Darstack | 6:35c069133c9a | 251 | |
| MarlonQ | 11:30f57addb79f | 252 | break ;*/ |
| Darstack | 4:7a06dce3de99 | 253 | |
| Darstack | 4:7a06dce3de99 | 254 | case 1 : |
| Darstack | 6:35c069133c9a | 255 | |
| Darstack | 6:35c069133c9a | 256 | printf ( "Frecuencia: 2000 Tiempo: %d s \n" , _Parametro ) ; |
| Darstack | 6:35c069133c9a | 257 | mybuzzer.period_us ( DO ) ; |
| Darstack | 6:35c069133c9a | 258 | mybuzzer.write ( 0.8 ) ; |
| Darstack | 6:35c069133c9a | 259 | wait( _Parametro ) ; |
| Darstack | 6:35c069133c9a | 260 | mybuzzer.write ( 0 ) ; |
| Darstack | 6:35c069133c9a | 261 | |
| Darstack | 4:7a06dce3de99 | 262 | break ; |
| Darstack | 4:7a06dce3de99 | 263 | |
| Darstack | 4:7a06dce3de99 | 264 | case 2 : |
| Darstack | 6:35c069133c9a | 265 | |
| Darstack | 6:35c069133c9a | 266 | printf ( "Frecuencia: 2500 Tiempo: %d s \n" , _Parametro ) ; |
| Darstack | 6:35c069133c9a | 267 | mybuzzer.period_us ( RE ) ; |
| Darstack | 6:35c069133c9a | 268 | mybuzzer.write ( 0.8 ) ; |
| Darstack | 6:35c069133c9a | 269 | wait ( _Parametro ) ; |
| Darstack | 6:35c069133c9a | 270 | mybuzzer.write ( 0 ) ; |
| Darstack | 6:35c069133c9a | 271 | |
| Darstack | 4:7a06dce3de99 | 272 | break ; |
| Darstack | 4:7a06dce3de99 | 273 | |
| Darstack | 4:7a06dce3de99 | 274 | case 3 : |
| Darstack | 6:35c069133c9a | 275 | |
| Darstack | 6:35c069133c9a | 276 | printf ( " Frecuencia: 3000 " ); printf ( " Tiempo: %d s \n " , _Parametro ) ; |
| Darstack | 6:35c069133c9a | 277 | mybuzzer.period_us ( MI ) ; |
| Darstack | 6:35c069133c9a | 278 | mybuzzer.write ( 0.8 ) ; |
| Darstack | 6:35c069133c9a | 279 | wait( _Parametro ) ; |
| Darstack | 6:35c069133c9a | 280 | mybuzzer.write ( 0 ) ; |
| Darstack | 6:35c069133c9a | 281 | |
| Darstack | 4:7a06dce3de99 | 282 | break ; |
| Darstack | 4:7a06dce3de99 | 283 | |
| Darstack | 6:35c069133c9a | 284 | case 4 : |
| Darstack | 6:35c069133c9a | 285 | |
| Darstack | 6:35c069133c9a | 286 | printf ( "Frecuencia: 3500 Tiempo: %d s \n" , _Parametro ) ; |
| Darstack | 6:35c069133c9a | 287 | mybuzzer.period_us ( FA ); |
| Darstack | 6:35c069133c9a | 288 | mybuzzer.write ( 0.8 ); |
| Darstack | 6:35c069133c9a | 289 | wait ( 5 ); |
| Darstack | 6:35c069133c9a | 290 | mybuzzer.write ( 0 ); |
| Darstack | 6:35c069133c9a | 291 | |
| Darstack | 4:7a06dce3de99 | 292 | break ; |
| Darstack | 4:7a06dce3de99 | 293 | |
| Darstack | 4:7a06dce3de99 | 294 | case 5 : |
| Darstack | 4:7a06dce3de99 | 295 | |
| Darstack | 6:35c069133c9a | 296 | steppeer_dir = 1 ; |
| Darstack | 6:35c069133c9a | 297 | steppeer_dir2 = 0 ; |
| Darstack | 6:35c069133c9a | 298 | wait_us ( 1 ); |
| Darstack | 6:35c069133c9a | 299 | for ( j = 1 ; j <= _Parametro ; j++){ |
| Darstack | 4:7a06dce3de99 | 300 | |
| Darstack | 6:35c069133c9a | 301 | for ( i= 0 ; i <= 200 ; i++ ){ |
| Darstack | 4:7a06dce3de99 | 302 | |
| Darstack | 4:7a06dce3de99 | 303 | stepper_step = 1 ; |
| Darstack | 6:35c069133c9a | 304 | stepper_step2 = 1; |
| Darstack | 6:35c069133c9a | 305 | wait_us( VELOCITY ); |
| Darstack | 6:35c069133c9a | 306 | stepper_step = 0; |
| Darstack | 6:35c069133c9a | 307 | stepper_step2 = 0; |
| Darstack | 6:35c069133c9a | 308 | wait_us ( VELOCITY ); |
| Darstack | 4:7a06dce3de99 | 309 | |
| Darstack | 4:7a06dce3de99 | 310 | } |
| Darstack | 4:7a06dce3de99 | 311 | } |
| Darstack | 4:7a06dce3de99 | 312 | |
| Darstack | 6:35c069133c9a | 313 | break ; |
| Darstack | 6:35c069133c9a | 314 | |
| Darstack | 6:35c069133c9a | 315 | case 6 : |
| Darstack | 6:35c069133c9a | 316 | |
| Darstack | 6:35c069133c9a | 317 | steppeer_dir = 0; |
| Darstack | 6:35c069133c9a | 318 | steppeer_dir2 = 1; |
| Darstack | 6:35c069133c9a | 319 | wait_us ( 1 ); |
| Darstack | 6:35c069133c9a | 320 | |
| Darstack | 6:35c069133c9a | 321 | for ( j = 1 ; j <= _Parametro ; j++){ |
| Darstack | 6:35c069133c9a | 322 | |
| Darstack | 6:35c069133c9a | 323 | for ( i= 0 ; i <= 200 ; i++ ){ |
| Darstack | 4:7a06dce3de99 | 324 | |
| Darstack | 6:35c069133c9a | 325 | stepper_step = 1 ; |
| Darstack | 4:7a06dce3de99 | 326 | stepper_step2 = 1 ; |
| Darstack | 4:7a06dce3de99 | 327 | wait_us( VELOCITY ) ; |
| Darstack | 4:7a06dce3de99 | 328 | stepper_step = 0 ; |
| Darstack | 4:7a06dce3de99 | 329 | stepper_step2 = 0 ; |
| Darstack | 5:d165935ba818 | 330 | wait_us ( VELOCITY ) ; |
| Darstack | 4:7a06dce3de99 | 331 | |
| Darstack | 4:7a06dce3de99 | 332 | } |
| Darstack | 6:35c069133c9a | 333 | |
| Darstack | 5:d165935ba818 | 334 | } |
| Darstack | 4:7a06dce3de99 | 335 | |
| Darstack | 6:35c069133c9a | 336 | break ; |
| Darstack | 6:35c069133c9a | 337 | |
| Darstack | 6:35c069133c9a | 338 | case 7 : |
| Darstack | 6:35c069133c9a | 339 | |
| Darstack | 6:35c069133c9a | 340 | steppeer_dir = 0; |
| Darstack | 6:35c069133c9a | 341 | wait_us ( 1 ); |
| Darstack | 6:35c069133c9a | 342 | |
| Darstack | 6:35c069133c9a | 343 | for ( j = 1 ; j <= _Parametro ; j++){ |
| Darstack | 6:35c069133c9a | 344 | |
| Darstack | 6:35c069133c9a | 345 | for ( i= 0 ; i <= 50 ; i++ ){ |
| Darstack | 6:35c069133c9a | 346 | |
| Darstack | 6:35c069133c9a | 347 | stepper_step = 1 ; |
| Darstack | 6:35c069133c9a | 348 | //stepper_step2 = 1 ; |
| Darstack | 6:35c069133c9a | 349 | wait_us(VELOCITY) ; |
| Darstack | 6:35c069133c9a | 350 | stepper_step = 0 ; |
| Darstack | 6:35c069133c9a | 351 | //stepper_step2 = 0 ; |
| Darstack | 6:35c069133c9a | 352 | wait_us(VELOCITY) ; |
| Darstack | 6:35c069133c9a | 353 | |
| Darstack | 6:35c069133c9a | 354 | } |
| Darstack | 6:35c069133c9a | 355 | } |
| Darstack | 6:35c069133c9a | 356 | |
| Darstack | 6:35c069133c9a | 357 | break ; |
| Darstack | 6:35c069133c9a | 358 | |
| Darstack | 6:35c069133c9a | 359 | case 8 : |
| Darstack | 6:35c069133c9a | 360 | |
| Darstack | 6:35c069133c9a | 361 | steppeer_dir2 = 1; |
| Darstack | 6:35c069133c9a | 362 | wait_us ( 1 ); |
| Darstack | 6:35c069133c9a | 363 | |
| Darstack | 6:35c069133c9a | 364 | for ( j = 1 ; j <= _Parametro ; j++){ |
| Darstack | 6:35c069133c9a | 365 | |
| Darstack | 6:35c069133c9a | 366 | for ( i= 0 ; i <= 50 ; i++ ){ |
| Darstack | 6:35c069133c9a | 367 | |
| Darstack | 6:35c069133c9a | 368 | //stepper_step = 1 ; |
| Darstack | 6:35c069133c9a | 369 | stepper_step2 = 1 ; |
| Darstack | 6:35c069133c9a | 370 | wait_us( VELOCITY ) ; |
| Darstack | 6:35c069133c9a | 371 | //stepper_step = 0 ; |
| Darstack | 6:35c069133c9a | 372 | stepper_step2 = 0 ; |
| Darstack | 6:35c069133c9a | 373 | wait_us ( VELOCITY ) ; |
| Darstack | 6:35c069133c9a | 374 | |
| Darstack | 6:35c069133c9a | 375 | } |
| Darstack | 6:35c069133c9a | 376 | |
| Darstack | 6:35c069133c9a | 377 | } |
| Darstack | 6:35c069133c9a | 378 | |
| Darstack | 6:35c069133c9a | 379 | break ; |
| Darstack | 6:35c069133c9a | 380 | |
| Darstack | 6:35c069133c9a | 381 | case 9 : |
| Darstack | 6:35c069133c9a | 382 | |
| Darstack | 6:35c069133c9a | 383 | switch ( _Parametro ){ |
| Darstack | 6:35c069133c9a | 384 | |
| Darstack | 6:35c069133c9a | 385 | case 1: |
| Darstack | 6:35c069133c9a | 386 | |
| Darstack | 6:35c069133c9a | 387 | VELOCITY = 400 ; |
| Darstack | 6:35c069133c9a | 388 | |
| Darstack | 6:35c069133c9a | 389 | break ; |
| Darstack | 6:35c069133c9a | 390 | |
| Darstack | 6:35c069133c9a | 391 | case 2: |
| Darstack | 6:35c069133c9a | 392 | |
| Darstack | 6:35c069133c9a | 393 | VELOCITY = 2500 ; |
| Darstack | 6:35c069133c9a | 394 | |
| Darstack | 6:35c069133c9a | 395 | break ; |
| Darstack | 6:35c069133c9a | 396 | |
| Darstack | 6:35c069133c9a | 397 | case 3: |
| Darstack | 6:35c069133c9a | 398 | |
| Darstack | 6:35c069133c9a | 399 | VELOCITY = 5000 ; |
| Darstack | 6:35c069133c9a | 400 | |
| Darstack | 6:35c069133c9a | 401 | break ; |
| Darstack | 6:35c069133c9a | 402 | |
| Darstack | 6:35c069133c9a | 403 | } |
| Darstack | 6:35c069133c9a | 404 | |
| Darstack | 6:35c069133c9a | 405 | break ; |
| Darstack | 6:35c069133c9a | 406 | |
| Darstack | 6:35c069133c9a | 407 | case 10: |
| Darstack | 6:35c069133c9a | 408 | |
| Darstack | 6:35c069133c9a | 409 | int8_t Exit = 0 ; |
| Darstack | 6:35c069133c9a | 410 | if ( _Parametro == 1){ |
| Darstack | 6:35c069133c9a | 411 | |
| Darstack | 6:35c069133c9a | 412 | while ( !Exit ){ |
| Darstack | 6:35c069133c9a | 413 | |
| Darstack | 6:35c069133c9a | 414 | In [ 0 ] = analog_value0.read(); // Converts and read the analog input value (value from 0.0 to 1.0) |
| Darstack | 6:35c069133c9a | 415 | //printf(" X = %.04f \n", In[0]); |
| Darstack | 10:92350e68d5ee | 416 | if ( In [ 0 ] > 0.6 ){ |
| Darstack | 6:35c069133c9a | 417 | |
| Darstack | 6:35c069133c9a | 418 | steppeer_dir = 1; |
| Darstack | 6:35c069133c9a | 419 | wait_us( 1 ); |
| Darstack | 6:35c069133c9a | 420 | |
| Darstack | 6:35c069133c9a | 421 | for ( i= 0 ; i <= 50 ; i++ ){ |
| Darstack | 6:35c069133c9a | 422 | |
| Darstack | 6:35c069133c9a | 423 | stepper_step = 1 ; |
| Darstack | 6:35c069133c9a | 424 | //stepper_step2 = 1 ; |
| Darstack | 6:35c069133c9a | 425 | wait_us( VELOCITY ) ; |
| Darstack | 6:35c069133c9a | 426 | stepper_step = 0 ; |
| Darstack | 6:35c069133c9a | 427 | //stepper_step2 = 0 ; |
| Darstack | 6:35c069133c9a | 428 | wait_us( VELOCITY ) ; |
| Darstack | 6:35c069133c9a | 429 | } |
| Darstack | 6:35c069133c9a | 430 | } |
| Darstack | 6:35c069133c9a | 431 | |
| Darstack | 10:92350e68d5ee | 432 | if ( In [ 0 ] < 0.3 ){ |
| Darstack | 6:35c069133c9a | 433 | |
| Darstack | 6:35c069133c9a | 434 | steppeer_dir2 = 1; |
| Darstack | 6:35c069133c9a | 435 | wait_us( 1 ); |
| Darstack | 6:35c069133c9a | 436 | |
| Darstack | 6:35c069133c9a | 437 | for ( i= 0 ; i <= 50 ; i++ ){ |
| Darstack | 6:35c069133c9a | 438 | |
| Darstack | 6:35c069133c9a | 439 | //stepper_step = 1 ; |
| Darstack | 6:35c069133c9a | 440 | stepper_step2 = 1 ; |
| Darstack | 6:35c069133c9a | 441 | wait_us( VELOCITY ) ; |
| Darstack | 6:35c069133c9a | 442 | //stepper_step = 0 ; |
| Darstack | 6:35c069133c9a | 443 | stepper_step2 = 0 ; |
| Darstack | 6:35c069133c9a | 444 | wait_us( VELOCITY ) ; |
| Darstack | 6:35c069133c9a | 445 | |
| Darstack | 6:35c069133c9a | 446 | } |
| Darstack | 6:35c069133c9a | 447 | } |
| Darstack | 6:35c069133c9a | 448 | |
| Darstack | 6:35c069133c9a | 449 | In [ 1 ] = analog_value1.read(); // Converts and read the analog input value (value from 0.0 to 1.0) |
| Darstack | 9:b7f0cf7e9079 | 450 | //printf(" Y = %.04f \n", In[0]); |
| Darstack | 6:35c069133c9a | 451 | |
| Darstack | 10:92350e68d5ee | 452 | if (In [ 1 ] > 0.6 ){ |
| Darstack | 6:35c069133c9a | 453 | |
| Darstack | 6:35c069133c9a | 454 | steppeer_dir = 1 ; |
| Darstack | 6:35c069133c9a | 455 | steppeer_dir2 = 0 ; |
| Darstack | 6:35c069133c9a | 456 | wait_us( 1 ); |
| Darstack | 6:35c069133c9a | 457 | |
| Darstack | 6:35c069133c9a | 458 | for ( i= 0 ; i <= 50 ; i++ ){ |
| Darstack | 6:35c069133c9a | 459 | |
| Darstack | 6:35c069133c9a | 460 | stepper_step = 1 ; |
| Darstack | 6:35c069133c9a | 461 | stepper_step2 = 1 ; |
| Darstack | 6:35c069133c9a | 462 | wait_us( VELOCITY ) ; |
| Darstack | 6:35c069133c9a | 463 | stepper_step = 0 ; |
| Darstack | 6:35c069133c9a | 464 | stepper_step2 = 0 ; |
| Darstack | 6:35c069133c9a | 465 | wait_us( VELOCITY ) ; |
| Darstack | 6:35c069133c9a | 466 | |
| Darstack | 6:35c069133c9a | 467 | } |
| Darstack | 6:35c069133c9a | 468 | } |
| Darstack | 6:35c069133c9a | 469 | |
| Darstack | 10:92350e68d5ee | 470 | if ( In [ 1 ] < 0.3 ){ |
| Darstack | 6:35c069133c9a | 471 | |
| Darstack | 6:35c069133c9a | 472 | steppeer_dir = 0 ; |
| Darstack | 6:35c069133c9a | 473 | steppeer_dir2 = 1 ; |
| Darstack | 6:35c069133c9a | 474 | wait_us( 1 ); |
| Darstack | 6:35c069133c9a | 475 | |
| Darstack | 6:35c069133c9a | 476 | for ( i= 0 ; i <= 50 ; i++ ){ |
| Darstack | 6:35c069133c9a | 477 | |
| Darstack | 6:35c069133c9a | 478 | stepper_step = 1 ; |
| Darstack | 6:35c069133c9a | 479 | stepper_step2 = 1 ; |
| Darstack | 6:35c069133c9a | 480 | wait_us( VELOCITY ) ; |
| Darstack | 6:35c069133c9a | 481 | stepper_step = 0 ; |
| Darstack | 6:35c069133c9a | 482 | stepper_step2 = 0 ; |
| Darstack | 6:35c069133c9a | 483 | wait_us ( VELOCITY ) ; |
| Darstack | 6:35c069133c9a | 484 | |
| Darstack | 6:35c069133c9a | 485 | } |
| Darstack | 6:35c069133c9a | 486 | |
| Darstack | 6:35c069133c9a | 487 | } |
| Darstack | 6:35c069133c9a | 488 | |
| Darstack | 6:35c069133c9a | 489 | if ( command.readable () == 1 ){ |
| Darstack | 8:a4fb8f46fc00 | 490 | |
| Darstack | 8:a4fb8f46fc00 | 491 | uint8_t l1, l2 ; |
| Darstack | 8:a4fb8f46fc00 | 492 | |
| Darstack | 8:a4fb8f46fc00 | 493 | while ( command.getc()!= INITCMD ) ; |
| Darstack | 8:a4fb8f46fc00 | 494 | l1 = command.getc () ; |
| Darstack | 8:a4fb8f46fc00 | 495 | l2 = command.getc () ; |
| Darstack | 8:a4fb8f46fc00 | 496 | |
| Darstack | 8:a4fb8f46fc00 | 497 | if ( l1 == 10 and l2 == 2 ){ |
| Darstack | 6:35c069133c9a | 498 | |
| Darstack | 6:35c069133c9a | 499 | Exit = 1 ; |
| Darstack | 6:35c069133c9a | 500 | } |
| Darstack | 6:35c069133c9a | 501 | } |
| Darstack | 10:92350e68d5ee | 502 | |
| Darstack | 10:92350e68d5ee | 503 | wait_us ( 1 ); |
| Darstack | 10:92350e68d5ee | 504 | |
| Darstack | 5:d165935ba818 | 505 | } |
| Darstack | 6:35c069133c9a | 506 | } |
| Darstack | 6:35c069133c9a | 507 | |
| Darstack | 6:35c069133c9a | 508 | break ; |
| Darstack | 6:35c069133c9a | 509 | |
| Darstack | 4:7a06dce3de99 | 510 | } |
| Darstack | 5:d165935ba818 | 511 | } |
| Darstack | 5:d165935ba818 | 512 |