sensor color con joystick y motores paso a paso mas pantalla LCD

Dependencies:   mbed

Committer:
Darstack
Date:
Tue Apr 23 04:10:50 2019 +0000
Revision:
5:d165935ba818
Parent:
4:7a06dce3de99
Child:
6:35c069133c9a
YA ;

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 ) ;
fabeltranm 0:fa6bdbdd4239 68
Darstack 4:7a06dce3de99 69 /* ||Definicion de Puertos || */
Darstack 4:7a06dce3de99 70
Darstack 4:7a06dce3de99 71 uint32_t VELOCITY = 400 ; // 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
Darstack 5:d165935ba818 76 void setup_uart ();
Darstack 5:d165935ba818 77 void leer_datos ();
Darstack 5:d165935ba818 78 void leer_color ();
Darstack 4:7a06dce3de99 79 void funcionesrobot ( uint8_t _Parametro, uint8_t _Comando );
fabeltranm 0:fa6bdbdd4239 80
fabeltranm 0:fa6bdbdd4239 81 int main() {
fabeltranm 0:fa6bdbdd4239 82
fabeltranm 0:fa6bdbdd4239 83 setup_uart();
fabeltranm 0:fa6bdbdd4239 84 while(1){
fabeltranm 0:fa6bdbdd4239 85 leer_datos();
Darstack 4:7a06dce3de99 86 funcionesrobot ( Lectura [ 1 ], Lectura [ 0 ] );
Darstack 4:7a06dce3de99 87
Darstack 4:7a06dce3de99 88 }
fabeltranm 0:fa6bdbdd4239 89 }
fabeltranm 0:fa6bdbdd4239 90
fabeltranm 0:fa6bdbdd4239 91
fabeltranm 0:fa6bdbdd4239 92 void setup_uart(){
fabeltranm 0:fa6bdbdd4239 93 command.baud(115200);
fabeltranm 0:fa6bdbdd4239 94 }
fabeltranm 0:fa6bdbdd4239 95
fabeltranm 0:fa6bdbdd4239 96
fabeltranm 0:fa6bdbdd4239 97 void leer_datos(){
Darstack 4:7a06dce3de99 98
Darstack 4:7a06dce3de99 99 while(command.getc()!= INITCMD) ;
Darstack 4:7a06dce3de99 100 uint8_t i ;
Darstack 4:7a06dce3de99 101 for ( i = 0 ; i < 2 ; i++){
Darstack 4:7a06dce3de99 102
Darstack 4:7a06dce3de99 103 Lectura [ i ] = command.getc();
Darstack 5:d165935ba818 104 //printf ( " %4d ", Lectura [ i ]);
Darstack 4:7a06dce3de99 105 }
fabeltranm 0:fa6bdbdd4239 106 }
fabeltranm 0:fa6bdbdd4239 107
fabeltranm 0:fa6bdbdd4239 108
fabeltranm 0:fa6bdbdd4239 109 void leer_color(){
fabeltranm 0:fa6bdbdd4239 110
Darstack 2:d168f964c331 111 mybuzzer.write(0);
fabeltranm 0:fa6bdbdd4239 112 long red = scolor.ReadRed();
fabeltranm 0:fa6bdbdd4239 113 long green = scolor.ReadGreen();
fabeltranm 0:fa6bdbdd4239 114 long blue = scolor.ReadBlue();
fabeltranm 0:fa6bdbdd4239 115 long clear = scolor.ReadClear();
Darstack 2:d168f964c331 116
Darstack 2:d168f964c331 117 long frqred;
Darstack 2:d168f964c331 118 long frqgreen;
Darstack 2:d168f964c331 119 long frqblue;
Darstack 2:d168f964c331 120 long frqclear;
Darstack 4:7a06dce3de99 121 int8_t sel_color = 0;
fabeltranm 1:334b40b47233 122 printf("RED: %5d GREEN: %5d BLUE: %5d CLEAR: %5d \n ", red, green, blue, clear);
fabeltranm 0:fa6bdbdd4239 123
Darstack 2:d168f964c331 124 frqred = ( ( 1.0/red )* 1000.0 );
Darstack 2:d168f964c331 125 frqgreen = ( ( 1.0/green ) * 1000.0);
Darstack 2:d168f964c331 126 frqblue = ( (1.0/blue) *1000.0 );
Darstack 2:d168f964c331 127 frqclear = ( (1.0/clear) *1000.0 );
Darstack 3:3454cb7584e1 128 printf("RED: %5d GREEN: %5d BLUE: %5d CLEAR: %5d \n ", frqred, frqgreen, frqblue,frqclear);
Darstack 2:d168f964c331 129 ///////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 130 /*||||||||||||||||Seleccionando los diferentes colores.||||||||||||||||||||||*/
Darstack 2:d168f964c331 131 /*||||||||||||||||||||||||||||||Color rojo|||||||||||||||||||||||||||||||||||*/
Darstack 2:d168f964c331 132 ///////////////////////////////////////////////////////////////////////////////
Darstack 3:3454cb7584e1 133 if ( frqred >= 30.0 and frqred <= 500.0) {
Darstack 3:3454cb7584e1 134
Darstack 3:3454cb7584e1 135 if( frqgreen >= 0.0 and frqgreen <= 20.0 ) {
Darstack 3:3454cb7584e1 136
Darstack 3:3454cb7584e1 137 if ( frqblue >= 5.0 and frqblue <= 29.0 ) {
Darstack 2:d168f964c331 138
Darstack 4:7a06dce3de99 139 printf ( "tiende a rojo \n" );
Darstack 2:d168f964c331 140 mybuzzer.period_us(DO);
Darstack 4:7a06dce3de99 141 mybuzzer.write(0.8);
Darstack 2:d168f964c331 142 wait(5);
Darstack 2:d168f964c331 143 mybuzzer.write(0);
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 3:3454cb7584e1 158 printf ( "tiende a verde \n" );
Darstack 2:d168f964c331 159 mybuzzer.period_us(RE);
Darstack 2:d168f964c331 160 mybuzzer.write(0.5);
Darstack 2:d168f964c331 161 wait(5);
Darstack 2:d168f964c331 162 mybuzzer.write(0);
Darstack 4:7a06dce3de99 163 sel_color = 2;
Darstack 3:3454cb7584e1 164
Darstack 2:d168f964c331 165 }
Darstack 2:d168f964c331 166 }
Darstack 2:d168f964c331 167 }
Darstack 2:d168f964c331 168 ////////////////////////////////////////////////////////////////////////////////
Darstack 3:3454cb7584e1 169 /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color azul°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
Darstack 2:d168f964c331 170 ///////////////////////////////////////////////////////////////////////////////
Darstack 3:3454cb7584e1 171 if ( frqblue >= 10.0 and frqblue <= 70.0) {
Darstack 3:3454cb7584e1 172
Darstack 3:3454cb7584e1 173 if( frqgreen >= 5.0 and frqgreen <= 26.0 ) {
Darstack 2:d168f964c331 174
Darstack 4:7a06dce3de99 175 if ( frqred >= 5.0 and frqred <= 20.0 ) {
Darstack 3:3454cb7584e1 176
Darstack 4:7a06dce3de99 177 printf ( "tiende a azul \n" );
Darstack 2:d168f964c331 178 mybuzzer.period_us(MI);
Darstack 4:7a06dce3de99 179 mybuzzer.write(1);
Darstack 2:d168f964c331 180 wait(5);
Darstack 2:d168f964c331 181 mybuzzer.write(0);
Darstack 4:7a06dce3de99 182 sel_color = 3;
Darstack 3:3454cb7584e1 183
Darstack 2:d168f964c331 184 }
Darstack 2:d168f964c331 185 }
Darstack 2:d168f964c331 186 }
Darstack 2:d168f964c331 187 /////////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 188 /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color amarillo°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
Darstack 2:d168f964c331 189 ////////////////////////////////////////////////////////////////////////////////
Darstack 4:7a06dce3de99 190 if ( frqblue >= 0.0 and frqblue <= 30.0 ) {
Darstack 3:3454cb7584e1 191
Darstack 3:3454cb7584e1 192 if( frqgreen >= 20.0 and frqgreen <= 40.0) {
Darstack 3:3454cb7584e1 193
Darstack 4:7a06dce3de99 194 if ( frqred >= 20.0 and frqred <= 50.0 ) {
Darstack 2:d168f964c331 195
Darstack 3:3454cb7584e1 196 printf ( "tiende a amarillo \n" );
Darstack 2:d168f964c331 197 mybuzzer.period_us(FA);
Darstack 4:7a06dce3de99 198 mybuzzer.write(0.6);
Darstack 2:d168f964c331 199 wait(5);
Darstack 2:d168f964c331 200 mybuzzer.write(0);
Darstack 4:7a06dce3de99 201 sel_color = 4;
Darstack 3:3454cb7584e1 202
Darstack 2:d168f964c331 203 }
Darstack 2:d168f964c331 204 }
Darstack 2:d168f964c331 205 }
Darstack 2:d168f964c331 206 /////////////////////////////////////////////////////////////////////////////////
Darstack 2:d168f964c331 207 /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color no found°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
Darstack 2:d168f964c331 208 ////////////////////////////////////////////////////////////////////////////////
Darstack 3:3454cb7584e1 209
Darstack 3:3454cb7584e1 210 switch ( sel_color ) {
Darstack 3:3454cb7584e1 211
Darstack 4:7a06dce3de99 212 case 0:
Darstack 4:7a06dce3de99 213
Darstack 4:7a06dce3de99 214 //int32_t enviar5 = RESPUESTA5 ;
Darstack 4:7a06dce3de99 215 //char txt5 [6] ;
Darstack 4:7a06dce3de99 216 //printf ( txt5 , "%02X" , enviar5 );
Darstack 4:7a06dce3de99 217 printf ( " FF00 \n " );
Darstack 4:7a06dce3de99 218
Darstack 4:7a06dce3de99 219 break;
Darstack 4:7a06dce3de99 220
Darstack 3:3454cb7584e1 221 case 1:
Darstack 3:3454cb7584e1 222
Darstack 4:7a06dce3de99 223 //int32_t enviar1 = RESPUESTA1 ;
Darstack 4:7a06dce3de99 224 //char txt1 [6] ;
Darstack 4:7a06dce3de99 225 printf ( "FE01 \n" );
Darstack 4:7a06dce3de99 226 sel_color = 0;
Darstack 3:3454cb7584e1 227
Darstack 3:3454cb7584e1 228 break;
Darstack 3:3454cb7584e1 229
Darstack 3:3454cb7584e1 230 case 2:
Darstack 3:3454cb7584e1 231
Darstack 4:7a06dce3de99 232 //int32_t enviar2 = RESPUESTA2 ;
Darstack 4:7a06dce3de99 233 //char txt2 [6] ;
Darstack 4:7a06dce3de99 234 printf ( "FE02 \n" ) ;
Darstack 4:7a06dce3de99 235 sel_color = 0;
Darstack 3:3454cb7584e1 236 break;
Darstack 3:3454cb7584e1 237
Darstack 3:3454cb7584e1 238 case 3:
Darstack 2:d168f964c331 239
Darstack 4:7a06dce3de99 240 //int32_t enviar3 = RESPUESTA3;
Darstack 4:7a06dce3de99 241 //char txt3 [6] ;
Darstack 4:7a06dce3de99 242 printf ( "FE03 \n" );
Darstack 4:7a06dce3de99 243 sel_color = 0;
Darstack 3:3454cb7584e1 244
Darstack 3:3454cb7584e1 245 break;
Darstack 3:3454cb7584e1 246
Darstack 3:3454cb7584e1 247 case 4:
Darstack 3:3454cb7584e1 248
Darstack 4:7a06dce3de99 249 //int32_t enviar4 = RESPUESTA4;
Darstack 4:7a06dce3de99 250 //char txt4 [6] ;
Darstack 4:7a06dce3de99 251 printf ( "FE04 \n" );
Darstack 4:7a06dce3de99 252 sel_color = 0;
Darstack 3:3454cb7584e1 253
Darstack 4:7a06dce3de99 254 break;
Darstack 2:d168f964c331 255 }
fabeltranm 0:fa6bdbdd4239 256
Darstack 3:3454cb7584e1 257 }
Darstack 4:7a06dce3de99 258 void funcionesrobot ( uint8_t _Parametro, uint8_t _Comando ){
Darstack 4:7a06dce3de99 259
Darstack 4:7a06dce3de99 260 /* °°Declaración de contadores°° */
Darstack 4:7a06dce3de99 261 uint8_t i ;
Darstack 4:7a06dce3de99 262 uint8_t j ;
Darstack 4:7a06dce3de99 263
Darstack 4:7a06dce3de99 264 switch ( _Comando ){
Darstack 4:7a06dce3de99 265 // Acciones que ejerce el robot
Darstack 4:7a06dce3de99 266
Darstack 4:7a06dce3de99 267 case 0 :
Darstack 4:7a06dce3de99 268 leer_color() ;
Darstack 4:7a06dce3de99 269 break ;
Darstack 4:7a06dce3de99 270
Darstack 4:7a06dce3de99 271 case 1 :
Darstack 4:7a06dce3de99 272 printf ( "Frecuencia: 2000 Tiempo: %d s \n" , _Parametro ) ;
Darstack 5:d165935ba818 273 mybuzzer.period_us ( DO ) ;
Darstack 5:d165935ba818 274 mybuzzer.write ( 0.8 ) ;
Darstack 4:7a06dce3de99 275 wait( _Parametro ) ;
Darstack 5:d165935ba818 276 mybuzzer.write ( 0 ) ;
Darstack 4:7a06dce3de99 277 break ;
Darstack 4:7a06dce3de99 278
Darstack 4:7a06dce3de99 279 case 2 :
Darstack 4:7a06dce3de99 280 printf ( "Frecuencia: 2500 Tiempo: %d s \n" , _Parametro ) ;
Darstack 5:d165935ba818 281 mybuzzer.period_us ( RE ) ;
Darstack 5:d165935ba818 282 mybuzzer.write ( 0.8 ) ;
Darstack 5:d165935ba818 283 wait ( _Parametro ) ;
Darstack 5:d165935ba818 284 mybuzzer.write ( 0 ) ;
Darstack 4:7a06dce3de99 285 break ;
Darstack 4:7a06dce3de99 286
Darstack 4:7a06dce3de99 287 case 3 :
Darstack 4:7a06dce3de99 288 printf ( " Frecuencia: 3000 " ); printf ( " Tiempo: %d s \n " , _Parametro ) ;
Darstack 5:d165935ba818 289 mybuzzer.period_us ( MI ) ;
Darstack 5:d165935ba818 290 mybuzzer.write ( 0.8 ) ;
Darstack 4:7a06dce3de99 291 wait( _Parametro ) ;
Darstack 5:d165935ba818 292 mybuzzer.write ( 0 ) ;
Darstack 4:7a06dce3de99 293 break ;
Darstack 4:7a06dce3de99 294
Darstack 4:7a06dce3de99 295 case 4:
Darstack 4:7a06dce3de99 296 printf ( "Frecuencia: 3500 Tiempo: %d s \n" , _Parametro ) ;
Darstack 5:d165935ba818 297 mybuzzer.period_us ( FA );
Darstack 5:d165935ba818 298 mybuzzer.write ( 0.8 );
Darstack 5:d165935ba818 299 wait ( 5 );
Darstack 5:d165935ba818 300 mybuzzer.write ( 0 );
Darstack 4:7a06dce3de99 301 break ;
Darstack 4:7a06dce3de99 302
Darstack 4:7a06dce3de99 303 case 5 :
Darstack 4:7a06dce3de99 304
Darstack 4:7a06dce3de99 305 steppeer_dir = 1 ;
Darstack 4:7a06dce3de99 306 steppeer_dir2 = 0 ;
Darstack 5:d165935ba818 307 wait_us ( 1 );
Darstack 4:7a06dce3de99 308 for ( j = 1 ; j <= _Parametro ; j++){
Darstack 4:7a06dce3de99 309
Darstack 4:7a06dce3de99 310 for ( i= 0 ; i <= 200 ; i++ ){
Darstack 4:7a06dce3de99 311
Darstack 4:7a06dce3de99 312 stepper_step = 1 ;
Darstack 4:7a06dce3de99 313 stepper_step2 = 1;
Darstack 5:d165935ba818 314 wait_us( VELOCITY );
Darstack 4:7a06dce3de99 315 stepper_step = 0;
Darstack 4:7a06dce3de99 316 stepper_step2 = 0;
Darstack 5:d165935ba818 317 wait_us ( VELOCITY );
Darstack 4:7a06dce3de99 318
Darstack 4:7a06dce3de99 319 }
Darstack 4:7a06dce3de99 320 }
Darstack 4:7a06dce3de99 321
Darstack 4:7a06dce3de99 322 break;
Darstack 4:7a06dce3de99 323
Darstack 4:7a06dce3de99 324 case 6 :
Darstack 4:7a06dce3de99 325 steppeer_dir = 0;
Darstack 4:7a06dce3de99 326 steppeer_dir2 = 1;
Darstack 5:d165935ba818 327 wait_us ( 1 );
Darstack 4:7a06dce3de99 328
Darstack 4:7a06dce3de99 329 for ( j = 1 ; j <= _Parametro ; j++){
Darstack 4:7a06dce3de99 330
Darstack 4:7a06dce3de99 331 for ( i= 0 ; i <= 200 ; i++ ){
Darstack 4:7a06dce3de99 332
Darstack 4:7a06dce3de99 333 stepper_step = 1 ;
Darstack 4:7a06dce3de99 334 stepper_step2 = 1 ;
Darstack 5:d165935ba818 335 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 336 stepper_step = 0 ;
Darstack 4:7a06dce3de99 337 stepper_step2 = 0 ;
Darstack 5:d165935ba818 338 wait_us ( VELOCITY ) ;
Darstack 4:7a06dce3de99 339
Darstack 4:7a06dce3de99 340 }
Darstack 4:7a06dce3de99 341
Darstack 4:7a06dce3de99 342 }
Darstack 4:7a06dce3de99 343
Darstack 4:7a06dce3de99 344 break;
Darstack 4:7a06dce3de99 345 case 7:
Darstack 4:7a06dce3de99 346
Darstack 5:d165935ba818 347 steppeer_dir = 0;
Darstack 5:d165935ba818 348 wait_us ( 1 );
Darstack 4:7a06dce3de99 349
Darstack 4:7a06dce3de99 350 for ( j = 1 ; j <= _Parametro ; j++){
Darstack 4:7a06dce3de99 351
Darstack 4:7a06dce3de99 352 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 4:7a06dce3de99 353
Darstack 4:7a06dce3de99 354 stepper_step = 1 ;
Darstack 4:7a06dce3de99 355 //stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 356 wait_us(VELOCITY) ;
Darstack 4:7a06dce3de99 357 stepper_step = 0 ;
Darstack 4:7a06dce3de99 358 //stepper_step2 = 0 ;
Darstack 4:7a06dce3de99 359 wait_us(VELOCITY) ;
Darstack 4:7a06dce3de99 360
Darstack 4:7a06dce3de99 361 }
Darstack 4:7a06dce3de99 362 }
Darstack 4:7a06dce3de99 363
Darstack 4:7a06dce3de99 364 break;
Darstack 4:7a06dce3de99 365
Darstack 4:7a06dce3de99 366 case 8 :
Darstack 4:7a06dce3de99 367
Darstack 5:d165935ba818 368 steppeer_dir2 = 1;
Darstack 5:d165935ba818 369 wait_us ( 1 );
Darstack 4:7a06dce3de99 370
Darstack 4:7a06dce3de99 371 for ( j = 1 ; j <= _Parametro ; j++){
Darstack 4:7a06dce3de99 372
Darstack 4:7a06dce3de99 373 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 4:7a06dce3de99 374
Darstack 4:7a06dce3de99 375 //stepper_step = 1 ;
Darstack 4:7a06dce3de99 376 stepper_step2 = 1 ;
Darstack 5:d165935ba818 377 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 378 //stepper_step = 0 ;
Darstack 4:7a06dce3de99 379 stepper_step2 = 0 ;
Darstack 5:d165935ba818 380 wait_us ( VELOCITY ) ;
Darstack 4:7a06dce3de99 381
Darstack 4:7a06dce3de99 382 }
Darstack 4:7a06dce3de99 383
Darstack 4:7a06dce3de99 384 }
Darstack 4:7a06dce3de99 385
Darstack 4:7a06dce3de99 386 break;
Darstack 4:7a06dce3de99 387
Darstack 4:7a06dce3de99 388 case 9 :
Darstack 4:7a06dce3de99 389
Darstack 4:7a06dce3de99 390 switch ( _Parametro ){
Darstack 4:7a06dce3de99 391
Darstack 4:7a06dce3de99 392 case 1:
Darstack 4:7a06dce3de99 393
Darstack 4:7a06dce3de99 394 VELOCITY = 400 ;
Darstack 4:7a06dce3de99 395
Darstack 4:7a06dce3de99 396 break;
Darstack 4:7a06dce3de99 397
Darstack 4:7a06dce3de99 398 case 2:
Darstack 4:7a06dce3de99 399
Darstack 4:7a06dce3de99 400 VELOCITY = 2500 ;
Darstack 4:7a06dce3de99 401
Darstack 4:7a06dce3de99 402 break;
Darstack 4:7a06dce3de99 403
Darstack 4:7a06dce3de99 404 case 3:
Darstack 4:7a06dce3de99 405
Darstack 4:7a06dce3de99 406 VELOCITY = 5000 ;
Darstack 4:7a06dce3de99 407
Darstack 4:7a06dce3de99 408 break;
Darstack 4:7a06dce3de99 409
Darstack 4:7a06dce3de99 410 }
Darstack 4:7a06dce3de99 411
Darstack 4:7a06dce3de99 412 break;
Darstack 4:7a06dce3de99 413
Darstack 4:7a06dce3de99 414 case 10:
Darstack 5:d165935ba818 415
Darstack 5:d165935ba818 416 int8_t Exit = 0 ;
Darstack 5:d165935ba818 417 if ( _Parametro == 1){
Darstack 5:d165935ba818 418
Darstack 5:d165935ba818 419 while ( !Exit ){
Darstack 4:7a06dce3de99 420
Darstack 5:d165935ba818 421 In [ 0 ] = analog_value0.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
Darstack 5:d165935ba818 422 //printf(" X = %.04f \n", In[0]);
Darstack 5:d165935ba818 423 In [ 1 ] = analog_value1.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
Darstack 5:d165935ba818 424 //printf(" X = %.04f \n", In[0]);
Darstack 4:7a06dce3de99 425
Darstack 5:d165935ba818 426 if ( In [ 0 ] > 0.5 ){
Darstack 4:7a06dce3de99 427
Darstack 4:7a06dce3de99 428 steppeer_dir = 1;
Darstack 4:7a06dce3de99 429 wait_us( 1 );
Darstack 5:d165935ba818 430
Darstack 4:7a06dce3de99 431 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 4:7a06dce3de99 432
Darstack 4:7a06dce3de99 433 stepper_step = 1 ;
Darstack 4:7a06dce3de99 434 //stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 435 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 436 stepper_step = 0 ;
Darstack 4:7a06dce3de99 437 //stepper_step2 = 0 ;
Darstack 4:7a06dce3de99 438 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 439 }
Darstack 4:7a06dce3de99 440 }
Darstack 4:7a06dce3de99 441
Darstack 5:d165935ba818 442 if ( In[ 0 ] < 0.5 ){
Darstack 4:7a06dce3de99 443
Darstack 4:7a06dce3de99 444 steppeer_dir2 = 1;
Darstack 4:7a06dce3de99 445 wait_us( 1 );
Darstack 4:7a06dce3de99 446
Darstack 4:7a06dce3de99 447 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 4:7a06dce3de99 448
Darstack 4:7a06dce3de99 449 //stepper_step = 1 ;
Darstack 4:7a06dce3de99 450 stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 451 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 452 //stepper_step = 0 ;
Darstack 4:7a06dce3de99 453 stepper_step2 = 0 ;
Darstack 4:7a06dce3de99 454 wait_us( VELOCITY ) ;
Darstack 5:d165935ba818 455
Darstack 4:7a06dce3de99 456 }
Darstack 4:7a06dce3de99 457 }
Darstack 5:d165935ba818 458
Darstack 5:d165935ba818 459 if (In [ 1 ] > 0.5 ){
Darstack 4:7a06dce3de99 460
Darstack 4:7a06dce3de99 461 steppeer_dir = 1 ;
Darstack 4:7a06dce3de99 462 steppeer_dir2 = 0 ;
Darstack 4:7a06dce3de99 463 wait_us( 1 );
Darstack 5:d165935ba818 464
Darstack 4:7a06dce3de99 465 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 4:7a06dce3de99 466
Darstack 4:7a06dce3de99 467 stepper_step = 1 ;
Darstack 4:7a06dce3de99 468 stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 469 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 470 stepper_step = 0 ;
Darstack 4:7a06dce3de99 471 stepper_step2 = 0 ;
Darstack 4:7a06dce3de99 472 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 473
Darstack 4:7a06dce3de99 474 }
Darstack 4:7a06dce3de99 475 }
Darstack 4:7a06dce3de99 476
Darstack 5:d165935ba818 477 if ( In [ 1 ] < 0.5 ){
Darstack 4:7a06dce3de99 478
Darstack 4:7a06dce3de99 479 steppeer_dir = 0 ;
Darstack 4:7a06dce3de99 480 steppeer_dir2 = 1 ;
Darstack 4:7a06dce3de99 481 wait_us( 1 );
Darstack 5:d165935ba818 482
Darstack 4:7a06dce3de99 483 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 4:7a06dce3de99 484
Darstack 4:7a06dce3de99 485 stepper_step = 1 ;
Darstack 4:7a06dce3de99 486 stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 487 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 488 stepper_step = 0 ;
Darstack 4:7a06dce3de99 489 stepper_step2 = 0 ;
Darstack 5:d165935ba818 490 wait_us ( VELOCITY ) ;
Darstack 4:7a06dce3de99 491
Darstack 4:7a06dce3de99 492 }
Darstack 4:7a06dce3de99 493
Darstack 4:7a06dce3de99 494 }
Darstack 4:7a06dce3de99 495 wait ( 1 );
Darstack 5:d165935ba818 496
Darstack 5:d165935ba818 497 if ( command.readable () == 1 ){
Darstack 5:d165935ba818 498
Darstack 5:d165935ba818 499 leer_datos();
Darstack 5:d165935ba818 500
Darstack 5:d165935ba818 501 if ( Lectura [ 1 ] == 02 ){
Darstack 5:d165935ba818 502
Darstack 5:d165935ba818 503 Exit = 1 ;
Darstack 5:d165935ba818 504 }
Darstack 5:d165935ba818 505 }
Darstack 4:7a06dce3de99 506
Darstack 5:d165935ba818 507 }
Darstack 5:d165935ba818 508 }
Darstack 4:7a06dce3de99 509 break;
Darstack 4:7a06dce3de99 510 }
Darstack 5:d165935ba818 511 }
Darstack 5:d165935ba818 512