Marlon Daniel Quiroga / Mbed 2 deprecated Final2

Dependencies:   mbed

Committer:
Darstack
Date:
Fri Apr 19 18:09:38 2019 +0000
Revision:
4:7a06dce3de99
Parent:
3:3454cb7584e1
Child:
5:d165935ba818
entrega 2 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
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 4:7a06dce3de99 73 double In[ 1 ] = { } ;
Darstack 4:7a06dce3de99 74
fabeltranm 0:fa6bdbdd4239 75 // definición de las funciones
Darstack 4:7a06dce3de99 76 void setup_uart();
Darstack 4:7a06dce3de99 77 void leer_datos();
Darstack 4:7a06dce3de99 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 4:7a06dce3de99 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 4:7a06dce3de99 273 mybuzzer.period_us( DO ) ;
Darstack 4:7a06dce3de99 274 mybuzzer.write( 0.8 ) ;
Darstack 4:7a06dce3de99 275 wait( _Parametro ) ;
Darstack 4:7a06dce3de99 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 4:7a06dce3de99 281 mybuzzer.period_us( RE ) ;
Darstack 4:7a06dce3de99 282 mybuzzer.write( 0.8 ) ;
Darstack 4:7a06dce3de99 283 wait( _Parametro ) ;
Darstack 4:7a06dce3de99 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 4:7a06dce3de99 289 mybuzzer.period_us( MI ) ;
Darstack 4:7a06dce3de99 290 mybuzzer.write( 0.8 ) ;
Darstack 4:7a06dce3de99 291 wait( _Parametro ) ;
Darstack 4:7a06dce3de99 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 4:7a06dce3de99 297 mybuzzer.period_us( FA );
Darstack 4:7a06dce3de99 298 mybuzzer.write( 0.8 );
Darstack 4:7a06dce3de99 299 wait( 5 );
Darstack 4:7a06dce3de99 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 4:7a06dce3de99 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 4:7a06dce3de99 314 wait_us(VELOCITY);
Darstack 4:7a06dce3de99 315 stepper_step = 0;
Darstack 4:7a06dce3de99 316 stepper_step2 = 0;
Darstack 4:7a06dce3de99 317 wait_us(VELOCITY);
Darstack 4:7a06dce3de99 318
Darstack 4:7a06dce3de99 319 }
Darstack 4:7a06dce3de99 320
Darstack 4:7a06dce3de99 321 }
Darstack 4:7a06dce3de99 322
Darstack 4:7a06dce3de99 323 break;
Darstack 4:7a06dce3de99 324
Darstack 4:7a06dce3de99 325 case 6 :
Darstack 4:7a06dce3de99 326 steppeer_dir = 0;
Darstack 4:7a06dce3de99 327 steppeer_dir2 = 1;
Darstack 4:7a06dce3de99 328 wait_us( 1 );
Darstack 4:7a06dce3de99 329
Darstack 4:7a06dce3de99 330 for ( j = 1 ; j <= _Parametro ; j++){
Darstack 4:7a06dce3de99 331
Darstack 4:7a06dce3de99 332 for ( i= 0 ; i <= 200 ; i++ ){
Darstack 4:7a06dce3de99 333
Darstack 4:7a06dce3de99 334 stepper_step = 1 ;
Darstack 4:7a06dce3de99 335 stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 336 wait_us(VELOCITY) ;
Darstack 4:7a06dce3de99 337 stepper_step = 0 ;
Darstack 4:7a06dce3de99 338 stepper_step2 = 0 ;
Darstack 4:7a06dce3de99 339 wait_us(VELOCITY) ;
Darstack 4:7a06dce3de99 340
Darstack 4:7a06dce3de99 341 }
Darstack 4:7a06dce3de99 342
Darstack 4:7a06dce3de99 343 }
Darstack 4:7a06dce3de99 344
Darstack 4:7a06dce3de99 345 break;
Darstack 4:7a06dce3de99 346 case 7:
Darstack 4:7a06dce3de99 347
Darstack 4:7a06dce3de99 348 steppeer_dir = 1;
Darstack 4:7a06dce3de99 349 wait_us( 1 );
Darstack 4:7a06dce3de99 350
Darstack 4:7a06dce3de99 351 for ( j = 1 ; j <= _Parametro ; j++){
Darstack 4:7a06dce3de99 352
Darstack 4:7a06dce3de99 353 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 4:7a06dce3de99 354
Darstack 4:7a06dce3de99 355 stepper_step = 1 ;
Darstack 4:7a06dce3de99 356 //stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 357 wait_us(VELOCITY) ;
Darstack 4:7a06dce3de99 358 stepper_step = 0 ;
Darstack 4:7a06dce3de99 359 //stepper_step2 = 0 ;
Darstack 4:7a06dce3de99 360 wait_us(VELOCITY) ;
Darstack 4:7a06dce3de99 361
Darstack 4:7a06dce3de99 362 }
Darstack 4:7a06dce3de99 363
Darstack 4:7a06dce3de99 364 }
Darstack 4:7a06dce3de99 365
Darstack 4:7a06dce3de99 366 break;
Darstack 4:7a06dce3de99 367
Darstack 4:7a06dce3de99 368 case 8 :
Darstack 4:7a06dce3de99 369
Darstack 4:7a06dce3de99 370 steppeer_dir = 1;
Darstack 4:7a06dce3de99 371 wait_us( 1 );
Darstack 4:7a06dce3de99 372
Darstack 4:7a06dce3de99 373 for ( j = 1 ; j <= _Parametro ; j++){
Darstack 4:7a06dce3de99 374
Darstack 4:7a06dce3de99 375 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 4:7a06dce3de99 376
Darstack 4:7a06dce3de99 377 //stepper_step = 1 ;
Darstack 4:7a06dce3de99 378 stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 379 wait_us(VELOCITY) ;
Darstack 4:7a06dce3de99 380 //stepper_step = 0 ;
Darstack 4:7a06dce3de99 381 stepper_step2 = 0 ;
Darstack 4:7a06dce3de99 382 wait_us(VELOCITY) ;
Darstack 4:7a06dce3de99 383
Darstack 4:7a06dce3de99 384 }
Darstack 4:7a06dce3de99 385
Darstack 4:7a06dce3de99 386 }
Darstack 4:7a06dce3de99 387
Darstack 4:7a06dce3de99 388 break;
Darstack 4:7a06dce3de99 389
Darstack 4:7a06dce3de99 390 case 9 :
Darstack 4:7a06dce3de99 391
Darstack 4:7a06dce3de99 392 switch ( _Parametro ){
Darstack 4:7a06dce3de99 393
Darstack 4:7a06dce3de99 394 case 1:
Darstack 4:7a06dce3de99 395
Darstack 4:7a06dce3de99 396 VELOCITY = 400 ;
Darstack 4:7a06dce3de99 397
Darstack 4:7a06dce3de99 398 break;
Darstack 4:7a06dce3de99 399
Darstack 4:7a06dce3de99 400 case 2:
Darstack 4:7a06dce3de99 401
Darstack 4:7a06dce3de99 402 VELOCITY = 2500 ;
Darstack 4:7a06dce3de99 403
Darstack 4:7a06dce3de99 404 break;
Darstack 4:7a06dce3de99 405
Darstack 4:7a06dce3de99 406 case 3:
Darstack 4:7a06dce3de99 407
Darstack 4:7a06dce3de99 408 VELOCITY = 5000 ;
Darstack 4:7a06dce3de99 409
Darstack 4:7a06dce3de99 410 break;
Darstack 4:7a06dce3de99 411
Darstack 4:7a06dce3de99 412 }
Darstack 4:7a06dce3de99 413
Darstack 4:7a06dce3de99 414 break;
Darstack 4:7a06dce3de99 415
Darstack 4:7a06dce3de99 416 case 10:
Darstack 4:7a06dce3de99 417
Darstack 4:7a06dce3de99 418 switch ( _Parametro ){
Darstack 4:7a06dce3de99 419
Darstack 4:7a06dce3de99 420 case 1:
Darstack 4:7a06dce3de99 421 In[0] = analog_value0.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
Darstack 4:7a06dce3de99 422 printf(" X = %.04f \n", In[0]);
Darstack 4:7a06dce3de99 423
Darstack 4:7a06dce3de99 424 while ( In[0] >= 0.9 ){
Darstack 4:7a06dce3de99 425
Darstack 4:7a06dce3de99 426 steppeer_dir = 1;
Darstack 4:7a06dce3de99 427 wait_us( 1 );
Darstack 4:7a06dce3de99 428
Darstack 4:7a06dce3de99 429 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 4:7a06dce3de99 430
Darstack 4:7a06dce3de99 431 stepper_step = 1 ;
Darstack 4:7a06dce3de99 432 //stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 433 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 434 stepper_step = 0 ;
Darstack 4:7a06dce3de99 435 //stepper_step2 = 0 ;
Darstack 4:7a06dce3de99 436 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 437 In[0] = analog_value0.read();
Darstack 4:7a06dce3de99 438 }
Darstack 4:7a06dce3de99 439 }
Darstack 4:7a06dce3de99 440
Darstack 4:7a06dce3de99 441 while ( In[0] <= 0.4 ){
Darstack 4:7a06dce3de99 442
Darstack 4:7a06dce3de99 443 steppeer_dir2 = 1;
Darstack 4:7a06dce3de99 444 wait_us( 1 );
Darstack 4:7a06dce3de99 445
Darstack 4:7a06dce3de99 446 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 4:7a06dce3de99 447
Darstack 4:7a06dce3de99 448 //stepper_step = 1 ;
Darstack 4:7a06dce3de99 449 stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 450 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 451 //stepper_step = 0 ;
Darstack 4:7a06dce3de99 452 stepper_step2 = 0 ;
Darstack 4:7a06dce3de99 453 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 454 In[0] = analog_value0.read();
Darstack 4:7a06dce3de99 455 }
Darstack 4:7a06dce3de99 456 }
Darstack 4:7a06dce3de99 457 In[1] = analog_value1.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
Darstack 4:7a06dce3de99 458 printf(" Y = %.04f \n", In[1]);
Darstack 4:7a06dce3de99 459 while (In[1] >= 0.9){
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 4:7a06dce3de99 464 for ( i= 0 ; i <= 50 ; i++ ){
Darstack 4:7a06dce3de99 465
Darstack 4:7a06dce3de99 466 stepper_step = 1 ;
Darstack 4:7a06dce3de99 467 stepper_step2 = 1 ;
Darstack 4:7a06dce3de99 468 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 469 stepper_step = 0 ;
Darstack 4:7a06dce3de99 470 stepper_step2 = 0 ;
Darstack 4:7a06dce3de99 471 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 472
Darstack 4:7a06dce3de99 473 }
Darstack 4:7a06dce3de99 474 In[1] = analog_value1.read();
Darstack 4:7a06dce3de99 475
Darstack 4:7a06dce3de99 476 }
Darstack 4:7a06dce3de99 477
Darstack 4:7a06dce3de99 478 while (In[1] <= 0.4){
Darstack 4:7a06dce3de99 479
Darstack 4:7a06dce3de99 480 steppeer_dir = 0 ;
Darstack 4:7a06dce3de99 481 steppeer_dir2 = 1 ;
Darstack 4:7a06dce3de99 482 wait_us( 1 );
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 4:7a06dce3de99 490 wait_us( VELOCITY ) ;
Darstack 4:7a06dce3de99 491
Darstack 4:7a06dce3de99 492 }
Darstack 4:7a06dce3de99 493 In[1] = analog_value1.read();
Darstack 4:7a06dce3de99 494
Darstack 4:7a06dce3de99 495 }
Darstack 4:7a06dce3de99 496 wait ( 1 );
Darstack 3:3454cb7584e1 497
Darstack 4:7a06dce3de99 498 break;
Darstack 4:7a06dce3de99 499
Darstack 4:7a06dce3de99 500 case 2:
Darstack 4:7a06dce3de99 501
Darstack 4:7a06dce3de99 502 In[0] = 0 ;
Darstack 4:7a06dce3de99 503 In[1] = 0 ;
Darstack 4:7a06dce3de99 504 printf(" X = %.04f, Y = %.04f \n", In[0], In[1] );
Darstack 4:7a06dce3de99 505
Darstack 4:7a06dce3de99 506 break;
Darstack 4:7a06dce3de99 507
Darstack 4:7a06dce3de99 508 }
Darstack 4:7a06dce3de99 509 break;
Darstack 4:7a06dce3de99 510 }
Darstack 4:7a06dce3de99 511
Darstack 4:7a06dce3de99 512
Darstack 4:7a06dce3de99 513
Darstack 4:7a06dce3de99 514
Darstack 4:7a06dce3de99 515
Darstack 4:7a06dce3de99 516
Darstack 4:7a06dce3de99 517
Darstack 4:7a06dce3de99 518
Darstack 4:7a06dce3de99 519
Darstack 4:7a06dce3de99 520
Darstack 4:7a06dce3de99 521
Darstack 4:7a06dce3de99 522
Darstack 4:7a06dce3de99 523
Darstack 4:7a06dce3de99 524
Darstack 4:7a06dce3de99 525
Darstack 4:7a06dce3de99 526
Darstack 4:7a06dce3de99 527
Darstack 4:7a06dce3de99 528 }