Marlon Daniel Quiroga / Mbed 2 deprecated Final2

Dependencies:   mbed

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?

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