Einer Fabian Aponte Cubides / Mbed 2 deprecated Final2

Dependencies:   mbed

Committer:
Darstack
Date:
Fri May 17 03:56:46 2019 +0000
Revision:
11:6b3570e525a1
Parent:
10:92350e68d5ee
Ahi ta perrito;

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
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
Darstack 4:7a06dce3de99 60 scolor_TCS3200 scolor( 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 ) ;
Darstack 11:6b3570e525a1 68 Ticker tk1;
Darstack 11:6b3570e525a1 69 volatile int Exit = 0 ;
Darstack 11:6b3570e525a1 70
Darstack 11:6b3570e525a1 71 /*|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||/ /
Darstack 11:6b3570e525a1 72 / | |/
Darstack 11:6b3570e525a1 73 / | Interrupcion del Joystick- Eliminando ruido |/
Darstack 11:6b3570e525a1 74 / | |/
Darstack 11:6b3570e525a1 75 / | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*/
fabeltranm 0:fa6bdbdd4239 76
Darstack 11:6b3570e525a1 77 //Definicion de variables
Darstack 11:6b3570e525a1 78 DigitalOut led1(LED1);
Darstack 11:6b3570e525a1 79 InterruptIn Button_joy(USER_BUTTON);
Darstack 11:6b3570e525a1 80 Timeout Button_joy_timeout; // Used for debouncing
Darstack 11:6b3570e525a1 81
Darstack 11:6b3570e525a1 82
Darstack 11:6b3570e525a1 83 //Definicion de las funciones
Darstack 11:6b3570e525a1 84 volatile bool Button_joy_pressed = false; // Used in the main loop
Darstack 11:6b3570e525a1 85 volatile bool Button_joy_enabled = true; // Used for debouncing
Darstack 11:6b3570e525a1 86
Darstack 11:6b3570e525a1 87 // Habilita el botón cuando termina el rebote.
Darstack 11:6b3570e525a1 88 void Button_joy_enabled_cb(void)
Darstack 11:6b3570e525a1 89 {
Darstack 11:6b3570e525a1 90 Button_joy_enabled = true;
Darstack 11:6b3570e525a1 91 }
Darstack 11:6b3570e525a1 92
Darstack 11:6b3570e525a1 93 // ISR Luego de precionar el boton
Darstack 11:6b3570e525a1 94 void Button_joy_onpressed_cb(void)
Darstack 11:6b3570e525a1 95 {
Darstack 11:6b3570e525a1 96 if (Button_joy_enabled) { // Desabilitado mientras e ruido
Darstack 11:6b3570e525a1 97 Button_joy_enabled = false;
Darstack 11:6b3570e525a1 98 Button_joy_pressed = true; // Se cambia el valor para ser leido más adelante
Darstack 11:6b3570e525a1 99 Button_joy_timeout.attach(callback(Button_joy_enabled_cb), 0.3); // Delay de 300 ms
Darstack 11:6b3570e525a1 100 }
Darstack 11:6b3570e525a1 101 if (Button_joy_pressed) { // Etablece cuando se preciona el botn
Darstack 11:6b3570e525a1 102 Button_joy_pressed = false;
Darstack 11:6b3570e525a1 103 //NVIC_SystemReset();
Darstack 11:6b3570e525a1 104 led1 = !led1;
Darstack 11:6b3570e525a1 105 }
Darstack 11:6b3570e525a1 106 }
Darstack 11:6b3570e525a1 107 /*|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||/ /
Darstack 11:6b3570e525a1 108 / |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||/
Darstack 11:6b3570e525a1 109 / | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*/
Darstack 11:6b3570e525a1 110
Darstack 11:6b3570e525a1 111 void Rx_interrupt();
Darstack 11:6b3570e525a1 112
Darstack 11:6b3570e525a1 113 /*Definicion de variables codigo principal*/
Darstack 4:7a06dce3de99 114
Darstack 4:7a06dce3de99 115 uint32_t VELOCITY = 400 ; // Tiempo en micro segundos
Darstack 4:7a06dce3de99 116 int16_t Lectura [ 2 ] = {} ;
Darstack 5:d165935ba818 117 double In [ 1 ] = {} ;
Darstack 4:7a06dce3de99 118
Darstack 11:6b3570e525a1 119 // Definición de las funciones bucle principal
Darstack 5:d165935ba818 120 void setup_uart ();
Darstack 5:d165935ba818 121 void leer_datos ();
Darstack 5:d165935ba818 122 void leer_color ();
Darstack 4:7a06dce3de99 123 void funcionesrobot ( uint8_t _Parametro, uint8_t _Comando );
fabeltranm 0:fa6bdbdd4239 124
fabeltranm 0:fa6bdbdd4239 125 int main() {
fabeltranm 0:fa6bdbdd4239 126
fabeltranm 0:fa6bdbdd4239 127 setup_uart();
Darstack 11:6b3570e525a1 128 tk1.attach ( &leer_color, 0.8 ); // Se dirigue a la funcion leer_color cada 0.8 segundos
Darstack 11:6b3570e525a1 129 Button_joy.fall(callback(Button_joy_onpressed_cb)); // Llama a la funcion Button_joy_onpressed_cb al precionar el botón
Darstack 11:6b3570e525a1 130
Darstack 6:35c069133c9a 131 while(1){
Darstack 11:6b3570e525a1 132
Darstack 11:6b3570e525a1 133 //Interrupcion boton
fabeltranm 0:fa6bdbdd4239 134 leer_datos();
Darstack 4:7a06dce3de99 135 funcionesrobot ( Lectura [ 1 ], Lectura [ 0 ] );
Darstack 4:7a06dce3de99 136
Darstack 4:7a06dce3de99 137 }
fabeltranm 0:fa6bdbdd4239 138 }
fabeltranm 0:fa6bdbdd4239 139
Darstack 11:6b3570e525a1 140 //Declaracion de las funciones
Darstack 11:6b3570e525a1 141
fabeltranm 0:fa6bdbdd4239 142
fabeltranm 0:fa6bdbdd4239 143 void setup_uart(){
fabeltranm 0:fa6bdbdd4239 144 command.baud(115200);
fabeltranm 0:fa6bdbdd4239 145 }
fabeltranm 0:fa6bdbdd4239 146
fabeltranm 0:fa6bdbdd4239 147
fabeltranm 0:fa6bdbdd4239 148 void leer_datos(){
Darstack 4:7a06dce3de99 149
Darstack 6:35c069133c9a 150 while ( command.getc()!= INITCMD ) ;
Darstack 4:7a06dce3de99 151 uint8_t i ;
Darstack 6:35c069133c9a 152
Darstack 4:7a06dce3de99 153 for ( i = 0 ; i < 2 ; i++){
Darstack 4:7a06dce3de99 154
Darstack 6:35c069133c9a 155 Lectura [ i ] = command.getc ();
Darstack 5:d165935ba818 156 //printf ( " %4d ", Lectura [ i ]);
Darstack 6:35c069133c9a 157
Darstack 4:7a06dce3de99 158 }
fabeltranm 0:fa6bdbdd4239 159 }
fabeltranm 0:fa6bdbdd4239 160
Darstack 11:6b3570e525a1 161 void Rx_interrupt() {
Darstack 11:6b3570e525a1 162 Exit = 1;
Darstack 11:6b3570e525a1 163 }
fabeltranm 0:fa6bdbdd4239 164 void leer_color(){
fabeltranm 0:fa6bdbdd4239 165
Darstack 2:d168f964c331 166 mybuzzer.write(0);
fabeltranm 0:fa6bdbdd4239 167 long red = scolor.ReadRed();
fabeltranm 0:fa6bdbdd4239 168 long green = scolor.ReadGreen();
fabeltranm 0:fa6bdbdd4239 169 long blue = scolor.ReadBlue();
fabeltranm 0:fa6bdbdd4239 170 long clear = scolor.ReadClear();
Darstack 2:d168f964c331 171
Darstack 2:d168f964c331 172 long frqred;
Darstack 2:d168f964c331 173 long frqgreen;
Darstack 2:d168f964c331 174 long frqblue;
Darstack 2:d168f964c331 175 long frqclear;
Darstack 4:7a06dce3de99 176 int8_t sel_color = 0;
fabeltranm 1:334b40b47233 177 printf("RED: %5d GREEN: %5d BLUE: %5d CLEAR: %5d \n ", red, green, blue, clear);
fabeltranm 0:fa6bdbdd4239 178
Darstack 2:d168f964c331 179 frqred = ( ( 1.0/red )* 1000.0 );
Darstack 2:d168f964c331 180 frqgreen = ( ( 1.0/green ) * 1000.0);
Darstack 2:d168f964c331 181 frqblue = ( (1.0/blue) *1000.0 );
Darstack 2:d168f964c331 182 frqclear = ( (1.0/clear) *1000.0 );
Darstack 3:3454cb7584e1 183 printf("RED: %5d GREEN: %5d BLUE: %5d CLEAR: %5d \n ", frqred, frqgreen, frqblue,frqclear);
Darstack 2:d168f964c331 184 ///////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 185 /*||||||||||||||||Seleccionando los diferentes colores.||||||||||||||||||||||*/
Darstack 2:d168f964c331 186 /*||||||||||||||||||||||||||||||Color rojo|||||||||||||||||||||||||||||||||||*/
Darstack 2:d168f964c331 187 ///////////////////////////////////////////////////////////////////////////////
Darstack 3:3454cb7584e1 188 if ( frqred >= 30.0 and frqred <= 500.0) {
Darstack 3:3454cb7584e1 189
Darstack 3:3454cb7584e1 190 if( frqgreen >= 0.0 and frqgreen <= 20.0 ) {
Darstack 3:3454cb7584e1 191
Darstack 3:3454cb7584e1 192 if ( frqblue >= 5.0 and frqblue <= 29.0 ) {
Darstack 2:d168f964c331 193
Darstack 4:7a06dce3de99 194 sel_color = 1;
Darstack 3:3454cb7584e1 195
Darstack 2:d168f964c331 196 }
Darstack 2:d168f964c331 197 }
Darstack 2:d168f964c331 198 }
Darstack 2:d168f964c331 199 ////////////////////////////////////////////////////////////////////////////////
Darstack 3:3454cb7584e1 200 /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color verde°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
Darstack 3:3454cb7584e1 201 ////////////////////////////////////////////////////////////////////////////////
Darstack 3:3454cb7584e1 202 if ( frqgreen >= 11.0 and frqgreen <= 21.0) {
Darstack 3:3454cb7584e1 203
Darstack 3:3454cb7584e1 204 if( frqred >= 8.0 and frqred <= 20.0 ) {
Darstack 3:3454cb7584e1 205
Darstack 4:7a06dce3de99 206 if ( frqblue >= 10.0 and frqblue <= 26.0 ) {
Darstack 2:d168f964c331 207
Darstack 4:7a06dce3de99 208 sel_color = 2;
Darstack 3:3454cb7584e1 209
Darstack 2:d168f964c331 210 }
Darstack 2:d168f964c331 211 }
Darstack 2:d168f964c331 212 }
Darstack 2:d168f964c331 213 ////////////////////////////////////////////////////////////////////////////////
Darstack 3:3454cb7584e1 214 /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color azul°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
Darstack 2:d168f964c331 215 ///////////////////////////////////////////////////////////////////////////////
Darstack 3:3454cb7584e1 216 if ( frqblue >= 10.0 and frqblue <= 70.0) {
Darstack 3:3454cb7584e1 217
Darstack 3:3454cb7584e1 218 if( frqgreen >= 5.0 and frqgreen <= 26.0 ) {
Darstack 2:d168f964c331 219
Darstack 4:7a06dce3de99 220 if ( frqred >= 5.0 and frqred <= 20.0 ) {
Darstack 3:3454cb7584e1 221
Darstack 4:7a06dce3de99 222 sel_color = 3;
Darstack 3:3454cb7584e1 223
Darstack 2:d168f964c331 224 }
Darstack 2:d168f964c331 225 }
Darstack 2:d168f964c331 226 }
Darstack 2:d168f964c331 227 /////////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 228 /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color amarillo°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
Darstack 2:d168f964c331 229 ////////////////////////////////////////////////////////////////////////////////
Darstack 4:7a06dce3de99 230 if ( frqblue >= 0.0 and frqblue <= 30.0 ) {
Darstack 3:3454cb7584e1 231
Darstack 3:3454cb7584e1 232 if( frqgreen >= 20.0 and frqgreen <= 40.0) {
Darstack 3:3454cb7584e1 233
Darstack 4:7a06dce3de99 234 if ( frqred >= 20.0 and frqred <= 50.0 ) {
Darstack 11:6b3570e525a1 235
Darstack 4:7a06dce3de99 236 sel_color = 4;
Darstack 3:3454cb7584e1 237
Darstack 2:d168f964c331 238 }
Darstack 2:d168f964c331 239 }
Darstack 2:d168f964c331 240 }
Darstack 2:d168f964c331 241 /////////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 242 /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color no found°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
Darstack 2:d168f964c331 243 ////////////////////////////////////////////////////////////////////////////////
Darstack 3:3454cb7584e1 244
Darstack 3:3454cb7584e1 245 switch ( sel_color ) {
Darstack 3:3454cb7584e1 246
Darstack 6:35c069133c9a 247 case 0 :
Darstack 4:7a06dce3de99 248
Darstack 4:7a06dce3de99 249 //int32_t enviar5 = RESPUESTA5 ;
Darstack 4:7a06dce3de99 250 //char txt5 [6] ;
Darstack 4:7a06dce3de99 251 //printf ( txt5 , "%02X" , enviar5 );
Darstack 11:6b3570e525a1 252 command.putc( 0xFE );
Darstack 11:6b3570e525a1 253 command.putc( 0x00 );
Darstack 4:7a06dce3de99 254
Darstack 6:35c069133c9a 255 break ;
Darstack 4:7a06dce3de99 256
Darstack 6:35c069133c9a 257 case 1 :
Darstack 3:3454cb7584e1 258
Darstack 4:7a06dce3de99 259 //int32_t enviar1 = RESPUESTA1 ;
Darstack 4:7a06dce3de99 260 //char txt1 [6] ;
Darstack 11:6b3570e525a1 261 command.putc( 0xFE );
Darstack 11:6b3570e525a1 262 command.putc( 0x01 );
Darstack 4:7a06dce3de99 263 sel_color = 0;
Darstack 3:3454cb7584e1 264
Darstack 6:35c069133c9a 265 break ;
Darstack 3:3454cb7584e1 266
Darstack 6:35c069133c9a 267 case 2 :
Darstack 3:3454cb7584e1 268
Darstack 4:7a06dce3de99 269 //int32_t enviar2 = RESPUESTA2 ;
Darstack 4:7a06dce3de99 270 //char txt2 [6] ;
Darstack 11:6b3570e525a1 271 command.putc ( 0xFE );
Darstack 11:6b3570e525a1 272 command.putc ( 0x02 );
Darstack 4:7a06dce3de99 273 sel_color = 0;
Darstack 3:3454cb7584e1 274
Darstack 6:35c069133c9a 275 break ;
Darstack 6:35c069133c9a 276
Darstack 6:35c069133c9a 277 case 3 :
Darstack 2:d168f964c331 278
Darstack 4:7a06dce3de99 279 //int32_t enviar3 = RESPUESTA3;
Darstack 4:7a06dce3de99 280 //char txt3 [6] ;
Darstack 11:6b3570e525a1 281 command.putc ( 0xFE );
Darstack 11:6b3570e525a1 282 command.putc ( 0x03 );
Darstack 4:7a06dce3de99 283 sel_color = 0;
Darstack 3:3454cb7584e1 284
Darstack 6:35c069133c9a 285 break ;
Darstack 3:3454cb7584e1 286
Darstack 6:35c069133c9a 287 case 4 :
Darstack 3:3454cb7584e1 288
Darstack 4:7a06dce3de99 289 //int32_t enviar4 = RESPUESTA4;
Darstack 4:7a06dce3de99 290 //char txt4 [6] ;
Darstack 11:6b3570e525a1 291 command.putc ( 0xFE );
Darstack 11:6b3570e525a1 292 command.putc ( 0x04 );
Darstack 4:7a06dce3de99 293 sel_color = 0;
Darstack 3:3454cb7584e1 294
Darstack 6:35c069133c9a 295 break ;
Darstack 2:d168f964c331 296 }
fabeltranm 0:fa6bdbdd4239 297
Darstack 3:3454cb7584e1 298 }
Darstack 4:7a06dce3de99 299 void funcionesrobot ( uint8_t _Parametro, uint8_t _Comando ){
Darstack 4:7a06dce3de99 300
Darstack 4:7a06dce3de99 301 /* °°Declaración de contadores°° */
Darstack 6:35c069133c9a 302 uint8_t i ;
Darstack 6:35c069133c9a 303 uint8_t j ;
Darstack 4:7a06dce3de99 304
Darstack 4:7a06dce3de99 305 switch ( _Comando ){
Darstack 4:7a06dce3de99 306 // Acciones que ejerce el robot
Darstack 4:7a06dce3de99 307
Darstack 11:6b3570e525a1 308 /*case 0 :
Darstack 6:35c069133c9a 309
Darstack 6:35c069133c9a 310 leer_color() ;
Darstack 6:35c069133c9a 311
Darstack 11:6b3570e525a1 312 break ; */
Darstack 4:7a06dce3de99 313
Darstack 4:7a06dce3de99 314 case 1 :
Darstack 6:35c069133c9a 315
Darstack 6:35c069133c9a 316 printf ( "Frecuencia: 2000 Tiempo: %d s \n" , _Parametro ) ;
Darstack 6:35c069133c9a 317 mybuzzer.period_us ( DO ) ;
Darstack 6:35c069133c9a 318 mybuzzer.write ( 0.8 ) ;
Darstack 6:35c069133c9a 319 wait( _Parametro ) ;
Darstack 6:35c069133c9a 320 mybuzzer.write ( 0 ) ;
Darstack 6:35c069133c9a 321
Darstack 4:7a06dce3de99 322 break ;
Darstack 4:7a06dce3de99 323
Darstack 4:7a06dce3de99 324 case 2 :
Darstack 6:35c069133c9a 325
Darstack 6:35c069133c9a 326 printf ( "Frecuencia: 2500 Tiempo: %d s \n" , _Parametro ) ;
Darstack 6:35c069133c9a 327 mybuzzer.period_us ( RE ) ;
Darstack 6:35c069133c9a 328 mybuzzer.write ( 0.8 ) ;
Darstack 6:35c069133c9a 329 wait ( _Parametro ) ;
Darstack 6:35c069133c9a 330 mybuzzer.write ( 0 ) ;
Darstack 6:35c069133c9a 331
Darstack 4:7a06dce3de99 332 break ;
Darstack 4:7a06dce3de99 333
Darstack 4:7a06dce3de99 334 case 3 :
Darstack 6:35c069133c9a 335
Darstack 6:35c069133c9a 336 printf ( " Frecuencia: 3000 " ); printf ( " Tiempo: %d s \n " , _Parametro ) ;
Darstack 6:35c069133c9a 337 mybuzzer.period_us ( MI ) ;
Darstack 6:35c069133c9a 338 mybuzzer.write ( 0.8 ) ;
Darstack 6:35c069133c9a 339 wait( _Parametro ) ;
Darstack 6:35c069133c9a 340 mybuzzer.write ( 0 ) ;
Darstack 6:35c069133c9a 341
Darstack 4:7a06dce3de99 342 break ;
Darstack 4:7a06dce3de99 343
Darstack 6:35c069133c9a 344 case 4 :
Darstack 6:35c069133c9a 345
Darstack 6:35c069133c9a 346 printf ( "Frecuencia: 3500 Tiempo: %d s \n" , _Parametro ) ;
Darstack 6:35c069133c9a 347 mybuzzer.period_us ( FA );
Darstack 6:35c069133c9a 348 mybuzzer.write ( 0.8 );
Darstack 6:35c069133c9a 349 wait ( 5 );
Darstack 6:35c069133c9a 350 mybuzzer.write ( 0 );
Darstack 6:35c069133c9a 351
Darstack 4:7a06dce3de99 352 break ;
Darstack 4:7a06dce3de99 353
Darstack 4:7a06dce3de99 354 case 5 :
Darstack 4:7a06dce3de99 355
Darstack 6:35c069133c9a 356 steppeer_dir = 1 ;
Darstack 6:35c069133c9a 357 steppeer_dir2 = 0 ;
Darstack 6:35c069133c9a 358 wait_us ( 1 );
Darstack 6:35c069133c9a 359 for ( j = 1 ; j <= _Parametro ; j++){
Darstack 4:7a06dce3de99 360
Darstack 6:35c069133c9a 361 for ( i= 0 ; i <= 200 ; i++ ){
Darstack 4:7a06dce3de99 362
Darstack 4:7a06dce3de99 363 stepper_step = 1 ;
Darstack 6:35c069133c9a 364 stepper_step2 = 1;
Darstack 6:35c069133c9a 365 wait_us( VELOCITY );
Darstack 6:35c069133c9a 366 stepper_step = 0;
Darstack 6:35c069133c9a 367 stepper_step2 = 0;
Darstack 6:35c069133c9a 368 wait_us ( VELOCITY );
Darstack 4:7a06dce3de99 369
Darstack 4:7a06dce3de99 370 }
Darstack 4:7a06dce3de99 371 }
Darstack 4:7a06dce3de99 372
Darstack 6:35c069133c9a 373 break ;
Darstack 6:35c069133c9a 374
Darstack 6:35c069133c9a 375 case 6 :
Darstack 6:35c069133c9a 376
Darstack 6:35c069133c9a 377 steppeer_dir = 0;
Darstack 6:35c069133c9a 378 steppeer_dir2 = 1;
Darstack 6:35c069133c9a 379 wait_us ( 1 );
Darstack 6:35c069133c9a 380
Darstack 6:35c069133c9a 381 for ( j = 1 ; j <= _Parametro ; j++){
Darstack 6:35c069133c9a 382
Darstack 6:35c069133c9a 383 for ( i= 0 ; i <= 200 ; i++ ){
Darstack 4:7a06dce3de99 384
Darstack 6:35c069133c9a 385 stepper_step = 1 ;
Darstack 4:7a06dce3de99 386 stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 387 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 388 stepper_step = 0 ;
Darstack 4:7a06dce3de99 389 stepper_step2 = 0 ;
Darstack 5:d165935ba818 390 wait_us ( VELOCITY ) ;
Darstack 4:7a06dce3de99 391
Darstack 4:7a06dce3de99 392 }
Darstack 6:35c069133c9a 393
Darstack 5:d165935ba818 394 }
Darstack 4:7a06dce3de99 395
Darstack 6:35c069133c9a 396 break ;
Darstack 6:35c069133c9a 397
Darstack 6:35c069133c9a 398 case 7 :
Darstack 6:35c069133c9a 399
Darstack 6:35c069133c9a 400 steppeer_dir = 0;
Darstack 6:35c069133c9a 401 wait_us ( 1 );
Darstack 6:35c069133c9a 402
Darstack 6:35c069133c9a 403 for ( j = 1 ; j <= _Parametro ; j++){
Darstack 6:35c069133c9a 404
Darstack 11:6b3570e525a1 405 for ( i= 0 ; i <= 250 ; i++ ){
Darstack 6:35c069133c9a 406
Darstack 6:35c069133c9a 407 stepper_step = 1 ;
Darstack 6:35c069133c9a 408 //stepper_step2 = 1 ;
Darstack 6:35c069133c9a 409 wait_us(VELOCITY) ;
Darstack 6:35c069133c9a 410 stepper_step = 0 ;
Darstack 6:35c069133c9a 411 //stepper_step2 = 0 ;
Darstack 6:35c069133c9a 412 wait_us(VELOCITY) ;
Darstack 6:35c069133c9a 413
Darstack 6:35c069133c9a 414 }
Darstack 6:35c069133c9a 415 }
Darstack 6:35c069133c9a 416
Darstack 6:35c069133c9a 417 break ;
Darstack 6:35c069133c9a 418
Darstack 6:35c069133c9a 419 case 8 :
Darstack 6:35c069133c9a 420
Darstack 6:35c069133c9a 421 steppeer_dir2 = 1;
Darstack 6:35c069133c9a 422 wait_us ( 1 );
Darstack 6:35c069133c9a 423
Darstack 6:35c069133c9a 424 for ( j = 1 ; j <= _Parametro ; j++){
Darstack 6:35c069133c9a 425
Darstack 11:6b3570e525a1 426 for ( i= 0 ; i <= 250 ; i++ ){
Darstack 6:35c069133c9a 427
Darstack 6:35c069133c9a 428 //stepper_step = 1 ;
Darstack 6:35c069133c9a 429 stepper_step2 = 1 ;
Darstack 6:35c069133c9a 430 wait_us( VELOCITY ) ;
Darstack 6:35c069133c9a 431 //stepper_step = 0 ;
Darstack 6:35c069133c9a 432 stepper_step2 = 0 ;
Darstack 6:35c069133c9a 433 wait_us ( VELOCITY ) ;
Darstack 6:35c069133c9a 434
Darstack 6:35c069133c9a 435 }
Darstack 6:35c069133c9a 436
Darstack 6:35c069133c9a 437 }
Darstack 6:35c069133c9a 438
Darstack 6:35c069133c9a 439 break ;
Darstack 6:35c069133c9a 440
Darstack 6:35c069133c9a 441 case 9 :
Darstack 6:35c069133c9a 442
Darstack 6:35c069133c9a 443 switch ( _Parametro ){
Darstack 6:35c069133c9a 444
Darstack 6:35c069133c9a 445 case 1:
Darstack 6:35c069133c9a 446
Darstack 6:35c069133c9a 447 VELOCITY = 400 ;
Darstack 6:35c069133c9a 448
Darstack 6:35c069133c9a 449 break ;
Darstack 6:35c069133c9a 450
Darstack 6:35c069133c9a 451 case 2:
Darstack 6:35c069133c9a 452
Darstack 6:35c069133c9a 453 VELOCITY = 2500 ;
Darstack 6:35c069133c9a 454
Darstack 6:35c069133c9a 455 break ;
Darstack 6:35c069133c9a 456
Darstack 6:35c069133c9a 457 case 3:
Darstack 6:35c069133c9a 458
Darstack 6:35c069133c9a 459 VELOCITY = 5000 ;
Darstack 6:35c069133c9a 460
Darstack 6:35c069133c9a 461 break ;
Darstack 6:35c069133c9a 462
Darstack 6:35c069133c9a 463 }
Darstack 6:35c069133c9a 464
Darstack 6:35c069133c9a 465 break ;
Darstack 6:35c069133c9a 466
Darstack 6:35c069133c9a 467 case 10:
Darstack 6:35c069133c9a 468
Darstack 11:6b3570e525a1 469
Darstack 6:35c069133c9a 470 if ( _Parametro == 1){
Darstack 6:35c069133c9a 471
Darstack 6:35c069133c9a 472 while ( !Exit ){
Darstack 6:35c069133c9a 473
Darstack 6:35c069133c9a 474 In [ 0 ] = analog_value0.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
Darstack 6:35c069133c9a 475 //printf(" X = %.04f \n", In[0]);
Darstack 10:92350e68d5ee 476 if ( In [ 0 ] > 0.6 ){
Darstack 6:35c069133c9a 477
Darstack 6:35c069133c9a 478 steppeer_dir = 1;
Darstack 6:35c069133c9a 479 wait_us( 1 );
Darstack 6:35c069133c9a 480
Darstack 6:35c069133c9a 481 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 6:35c069133c9a 482
Darstack 6:35c069133c9a 483 stepper_step = 1 ;
Darstack 6:35c069133c9a 484 //stepper_step2 = 1 ;
Darstack 6:35c069133c9a 485 wait_us( VELOCITY ) ;
Darstack 6:35c069133c9a 486 stepper_step = 0 ;
Darstack 6:35c069133c9a 487 //stepper_step2 = 0 ;
Darstack 6:35c069133c9a 488 wait_us( VELOCITY ) ;
Darstack 6:35c069133c9a 489 }
Darstack 6:35c069133c9a 490 }
Darstack 6:35c069133c9a 491
Darstack 10:92350e68d5ee 492 if ( In [ 0 ] < 0.3 ){
Darstack 6:35c069133c9a 493
Darstack 6:35c069133c9a 494 steppeer_dir2 = 1;
Darstack 6:35c069133c9a 495 wait_us( 1 );
Darstack 6:35c069133c9a 496
Darstack 6:35c069133c9a 497 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 6:35c069133c9a 498
Darstack 6:35c069133c9a 499 //stepper_step = 1 ;
Darstack 6:35c069133c9a 500 stepper_step2 = 1 ;
Darstack 6:35c069133c9a 501 wait_us( VELOCITY ) ;
Darstack 6:35c069133c9a 502 //stepper_step = 0 ;
Darstack 6:35c069133c9a 503 stepper_step2 = 0 ;
Darstack 6:35c069133c9a 504 wait_us( VELOCITY ) ;
Darstack 6:35c069133c9a 505
Darstack 6:35c069133c9a 506 }
Darstack 6:35c069133c9a 507 }
Darstack 6:35c069133c9a 508
Darstack 6:35c069133c9a 509 In [ 1 ] = analog_value1.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
Darstack 9:b7f0cf7e9079 510 //printf(" Y = %.04f \n", In[0]);
Darstack 6:35c069133c9a 511
Darstack 10:92350e68d5ee 512 if (In [ 1 ] > 0.6 ){
Darstack 6:35c069133c9a 513
Darstack 6:35c069133c9a 514 steppeer_dir = 1 ;
Darstack 6:35c069133c9a 515 steppeer_dir2 = 0 ;
Darstack 6:35c069133c9a 516 wait_us( 1 );
Darstack 6:35c069133c9a 517
Darstack 6:35c069133c9a 518 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 6:35c069133c9a 519
Darstack 6:35c069133c9a 520 stepper_step = 1 ;
Darstack 6:35c069133c9a 521 stepper_step2 = 1 ;
Darstack 6:35c069133c9a 522 wait_us( VELOCITY ) ;
Darstack 6:35c069133c9a 523 stepper_step = 0 ;
Darstack 6:35c069133c9a 524 stepper_step2 = 0 ;
Darstack 6:35c069133c9a 525 wait_us( VELOCITY ) ;
Darstack 6:35c069133c9a 526
Darstack 6:35c069133c9a 527 }
Darstack 6:35c069133c9a 528 }
Darstack 6:35c069133c9a 529
Darstack 10:92350e68d5ee 530 if ( In [ 1 ] < 0.3 ){
Darstack 6:35c069133c9a 531
Darstack 6:35c069133c9a 532 steppeer_dir = 0 ;
Darstack 6:35c069133c9a 533 steppeer_dir2 = 1 ;
Darstack 6:35c069133c9a 534 wait_us( 1 );
Darstack 6:35c069133c9a 535
Darstack 6:35c069133c9a 536 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 6:35c069133c9a 537
Darstack 6:35c069133c9a 538 stepper_step = 1 ;
Darstack 6:35c069133c9a 539 stepper_step2 = 1 ;
Darstack 6:35c069133c9a 540 wait_us( VELOCITY ) ;
Darstack 6:35c069133c9a 541 stepper_step = 0 ;
Darstack 6:35c069133c9a 542 stepper_step2 = 0 ;
Darstack 6:35c069133c9a 543 wait_us ( VELOCITY ) ;
Darstack 6:35c069133c9a 544
Darstack 6:35c069133c9a 545 }
Darstack 6:35c069133c9a 546
Darstack 6:35c069133c9a 547 }
Darstack 6:35c069133c9a 548
Darstack 11:6b3570e525a1 549 command.attach( callback(Rx_interrupt), Serial::RxIrq );
Darstack 11:6b3570e525a1 550 /*if ( command.readable () == 1 ){
Darstack 8:a4fb8f46fc00 551
Darstack 8:a4fb8f46fc00 552 uint8_t l1, l2 ;
Darstack 8:a4fb8f46fc00 553
Darstack 8:a4fb8f46fc00 554 while ( command.getc()!= INITCMD ) ;
Darstack 8:a4fb8f46fc00 555 l1 = command.getc () ;
Darstack 8:a4fb8f46fc00 556 l2 = command.getc () ;
Darstack 8:a4fb8f46fc00 557
Darstack 8:a4fb8f46fc00 558 if ( l1 == 10 and l2 == 2 ){
Darstack 6:35c069133c9a 559
Darstack 6:35c069133c9a 560 Exit = 1 ;
Darstack 6:35c069133c9a 561 }
Darstack 11:6b3570e525a1 562 }*/
Darstack 10:92350e68d5ee 563
Darstack 10:92350e68d5ee 564 wait_us ( 1 );
Darstack 10:92350e68d5ee 565
Darstack 5:d165935ba818 566 }
Darstack 6:35c069133c9a 567 }
Darstack 6:35c069133c9a 568
Darstack 6:35c069133c9a 569 break ;
Darstack 6:35c069133c9a 570
Darstack 4:7a06dce3de99 571 }
Darstack 5:d165935ba818 572 }
Darstack 5:d165935ba818 573