Proyecto de Tesis en Mecatrónica. Universidad Técnica del Norte. Ernesto Palacios <mecatronica.mid@gmail.com>
Dependencies: EthernetNetIf HTTPServer QEI_hw RPCInterface mbed
Revision 14:039d070732d5, committed 2012-04-21
- Comitter:
- Yo_Robot
- Date:
- Sat Apr 21 14:50:06 2012 +0000
- Parent:
- 13:649543aa8b1d
- Child:
- 15:a1ffa32ce9d1
- Commit message:
- Version 1.1 Serial y HTTP. Se cambio los pines de SON y DIR, se aumento la resolucin del DAC. En HTTP mbed envia "Ok" o "AL" dependiendo del estado del pin_alm, y en serial y HTTP se ejecuta la rutina en modo .rise
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
setup.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Apr 11 02:15:24 2012 +0000 +++ b/main.cpp Sat Apr 21 14:50:06 2012 +0000 @@ -10,8 +10,8 @@ Serial pc( USBTX, USBRX ); -DigitalOut pin_son( p30 ); // SON -DigitalOut pin_dir( p29 ); // SIGN+ +DigitalOut pin_son( p26 ); // SON +DigitalOut pin_dir( p25 ); // SIGN+ InterruptIn pin_alm( p14 ); // ALM AnalogOut aout( p18 ); // 0.0 a 1.0 float @@ -71,7 +71,7 @@ printf("Listening...\n"); } - else // Caso Contrario Añadir modo Serial + else // Caso Contrario Añadir modo Serial { pc.attach( &ISR_Serial ); if( isFast ) //Configurar Serial a alta velocidad @@ -82,10 +82,12 @@ pin_son = 0; // Servo Apagado por defecto aout = 0.5; // Voltaje de salida 0V por defecto( +-10V! ) + pin_alm.rise( &ISR_Alarm ); //Entrada de la alarma + while(1) { if( isHTTP ) - Net::poll(); // Revisa la red solo si la conección es HTTP + Net::poll(); // Revisa la red solo si la conección es HTTP } }
--- a/setup.cpp Wed Apr 11 02:15:24 2012 +0000 +++ b/setup.cpp Sat Apr 21 14:50:06 2012 +0000 @@ -58,7 +58,7 @@ char command; // Comando al que aplicar el nuevo valor pc.scanf( "%d-%c", &value, &command ) ; - pc.printf("\n %d-%c \n", value, command ); + //pc.printf("\n %d-%c \n", value, command ); // Establecer nueva frecuencia if( command == 'H') @@ -71,13 +71,18 @@ // Alguna formula para calcular el Vout necesario // -100% a +100% else if( command == 'A') - aout = (float)( value + 100.0 ) / 200.0; + aout = (float)( value + 10000.0 ) / 20000.0; // Cambiar la direccion else if( command == 'D') + { + stopTimer2(); pin_dir = value; - + wait_us( 2 ); + startTimer2(); + } + //Encender el Servo else if( command == 'S') @@ -112,12 +117,17 @@ LPC_TIM2->TC = 0x00; // Resetear Timer setMR2( getMRvalue( freq ) ); // Cambiar frefuencia startTimer2(); // Iniciar Timer - sprintf( output, "Ok, Freq = %d", freq ); - + if( pin_alm == 0 ) + sprintf( output,"Ok" ); + else + sprintf( output,"AL" ); }else{ stopTimer2(); LPC_TIM2->TC = 0x00; // Resetear Timer - sprintf( output, "Ok, ALTO" ); + if( pin_alm == 0 ) + sprintf( output,"Ok" ); + else + sprintf( output,"AL" ); } } @@ -128,7 +138,7 @@ stopTimer2(); aout = 0.5 ; - pc.printf( "\n\n ERROR: ALARMA \n\n " ); + pc.printf( "ERROR_ALARMA" ); } @@ -167,8 +177,11 @@ void setAout_eth( char * input, char * output ) { int vout = atoi( input ); - aout = (float)( vout + 100 ) / 200; - sprintf( output, " Ok, Aout = %f ", aout.read() ); + aout = (float)( vout + 10000 ) / 20000; + if( pin_alm == 0 ) + sprintf( output,"Ok" ); + else + sprintf( output,"AL" ); } @@ -179,10 +192,10 @@ pin_dir = value; - if( value == 0 ) - sprintf( output,"Derecha" ); + if( pin_alm == 0 ) + sprintf( output,"Ok" ); else - sprintf( output,"Izquierda" ); + sprintf( output,"AL" ); } @@ -193,10 +206,10 @@ pin_son = value; - if( value == 0 ) - sprintf( output,"Servo OFF" ); + if( pin_alm == 0 ) + sprintf( output,"Ok" ); else - sprintf( output,"Servo ON" ); + sprintf( output,"AL" ); }