Einer Fabian Aponte Cubides
/
Final3
sensor color con joystick y motores paso a paso mas pantalla LCD
main.cpp@5:d165935ba818, 2019-04-23 (annotated)
- 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?
User | Revision | Line number | New contents of line |
---|---|---|---|
fabeltranm | 0:fa6bdbdd4239 | 1 | #include "mbed.h" |
fabeltranm | 0:fa6bdbdd4239 | 2 | #include "scolor_TCS3200.h" |
fabeltranm | 0:fa6bdbdd4239 | 3 | |
fabeltranm | 0:fa6bdbdd4239 | 4 | /* ***************************************************************************** |
fabeltranm | 0:fa6bdbdd4239 | 5 | Programa que solicita telemetria al sistema embebido, por medio del comando 0xFe |
fabeltranm | 0:fa6bdbdd4239 | 6 | para preguntar por el color que detecta el sensor TCS3200 |
fabeltranm | 0:fa6bdbdd4239 | 7 | |
fabeltranm | 0:fa6bdbdd4239 | 8 | el sistema embebido recibe el inicio de trama FE y el número de comado: 01 |
fabeltranm | 0:fa6bdbdd4239 | 9 | |
fabeltranm | 0:fa6bdbdd4239 | 10 | | INITELE | CMD | |
fabeltranm | 0:fa6bdbdd4239 | 11 | | 0xfe | 0x01 | |
fabeltranm | 0:fa6bdbdd4239 | 12 | |
fabeltranm | 0:fa6bdbdd4239 | 13 | |
fabeltranm | 0:fa6bdbdd4239 | 14 | para enviar los comandos usar el programa Coolterm http://freeware.the-meiers.org/ |
fabeltranm | 0:fa6bdbdd4239 | 15 | |
fabeltranm | 0:fa6bdbdd4239 | 16 | |
fabeltranm | 0:fa6bdbdd4239 | 17 | @fabeltranm 2019 |
fabeltranm | 0:fa6bdbdd4239 | 18 | fbeltranm@ecci.edu.co |
fabeltranm | 0:fa6bdbdd4239 | 19 | |
fabeltranm | 0:fa6bdbdd4239 | 20 | ******************************************************************************** |
fabeltranm | 0:fa6bdbdd4239 | 21 | datasheet https://www.mouser.com/catalog/specsheets/TCS3200-E11.pdf |
fabeltranm | 0:fa6bdbdd4239 | 22 | |
fabeltranm | 0:fa6bdbdd4239 | 23 | |
fabeltranm | 0:fa6bdbdd4239 | 24 | S0 Frequency scaling |
fabeltranm | 0:fa6bdbdd4239 | 25 | S1 Frequency scaling |
fabeltranm | 0:fa6bdbdd4239 | 26 | S2 Photo diode selection |
fabeltranm | 0:fa6bdbdd4239 | 27 | S3 Photo diode selection |
fabeltranm | 0:fa6bdbdd4239 | 28 | OutFreq Frequency |
fabeltranm | 0:fa6bdbdd4239 | 29 | |
fabeltranm | 0:fa6bdbdd4239 | 30 | ----------------------------------- |
fabeltranm | 0:fa6bdbdd4239 | 31 | | ____________ ____________ | |
fabeltranm | 0:fa6bdbdd4239 | 32 | ----> | | | | | | ___ ___ |
fabeltranm | 0:fa6bdbdd4239 | 33 | Light | | Photodiode | | Current |--|---OUTPUT_FREQ | |___| |___ |
fabeltranm | 0:fa6bdbdd4239 | 34 | ----> | | Array |---| to | | |
fabeltranm | 0:fa6bdbdd4239 | 35 | | | | | Frequency | | |
fabeltranm | 0:fa6bdbdd4239 | 36 | | |____________| |____________| | |
fabeltranm | 0:fa6bdbdd4239 | 37 | | ^ ^ ^ ^ | |
fabeltranm | 0:fa6bdbdd4239 | 38 | -------|--|-------------|--|------- |
fabeltranm | 0:fa6bdbdd4239 | 39 | | | | | |
fabeltranm | 0:fa6bdbdd4239 | 40 | S2 S3 S0 S1 |
fabeltranm | 0:fa6bdbdd4239 | 41 | |
fabeltranm | 0:fa6bdbdd4239 | 42 | SO | S1 | OUTPUT FREQUENCY SCALING | | S2 | S3 | PHOTODIODE TYPE | |
fabeltranm | 0:fa6bdbdd4239 | 43 | 0 | 0 | power down | | 0 | 0 | Red | |
fabeltranm | 0:fa6bdbdd4239 | 44 | 0 | 1 | 2% | | 0 | 1 | Blue | |
fabeltranm | 0:fa6bdbdd4239 | 45 | 1 | 0 | 20% | | 1 | 0 | Clear (no filter) | |
fabeltranm | 0:fa6bdbdd4239 | 46 | 1 | 1 | 100% | | 1 | 1 | Green | |
fabeltranm | 0:fa6bdbdd4239 | 47 | |
fabeltranm | 0:fa6bdbdd4239 | 48 | ******************************************************************************/ |
fabeltranm | 0:fa6bdbdd4239 | 49 | |
Darstack | 4:7a06dce3de99 | 50 | #define INITCMD 0xFF |
Darstack | 4:7a06dce3de99 | 51 | #define DO 2000 |
Darstack | 4:7a06dce3de99 | 52 | #define RE 2500 |
Darstack | 4:7a06dce3de99 | 53 | #define MI 3000 |
Darstack | 4:7a06dce3de99 | 54 | #define FA 3500 |
fabeltranm | 0:fa6bdbdd4239 | 55 | |
fabeltranm | 0:fa6bdbdd4239 | 56 | |
Darstack | 4:7a06dce3de99 | 57 | /* ||Definicion de Puertos || */ |
Darstack | 4:7a06dce3de99 | 58 | Serial command(USBTX, USBRX); |
Darstack | 4:7a06dce3de99 | 59 | // S0, S1, S2, S3, OUT |
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 |