Einer Fabian Aponte Cubides / Mbed 2 deprecated DiseoBlue

Dependencies:   mbed

Committer:
Darstack
Date:
Thu May 23 00:17:09 2019 +0000
Revision:
1:98ee9aaad63b
Parent:
0:4da94607d8a6
Listo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MarlonQ 0:4da94607d8a6 1 #include "mbed.h"
Darstack 1:98ee9aaad63b 2 #define INITCMD 0xFF
Darstack 1:98ee9aaad63b 3
Darstack 1:98ee9aaad63b 4 //Definiendo los puertos
Darstack 1:98ee9aaad63b 5 AnalogIn In_Sagua( A0 );
Darstack 1:98ee9aaad63b 6
Darstack 1:98ee9aaad63b 7 InterruptIn EncoMot ( PB_8 );
Darstack 1:98ee9aaad63b 8
Darstack 1:98ee9aaad63b 9 PwmOut Mot_As( PB_4 );
Darstack 1:98ee9aaad63b 10 PwmOut BUZZ( PB_3 );
Darstack 1:98ee9aaad63b 11
Darstack 1:98ee9aaad63b 12 Timer t1 ;
Darstack 1:98ee9aaad63b 13
Darstack 1:98ee9aaad63b 14 Ticker tout0;
Darstack 1:98ee9aaad63b 15 Ticker tout1;
Darstack 1:98ee9aaad63b 16
Darstack 1:98ee9aaad63b 17 DigitalOut Llenado( PA_3 );
Darstack 1:98ee9aaad63b 18 DigitalOut Sacado( PA_6 );
Darstack 1:98ee9aaad63b 19 DigitalOut Lemer( PA_7 );
Darstack 1:98ee9aaad63b 20 DigitalOut led(LED1);
Darstack 1:98ee9aaad63b 21 Serial bluetooth(D10, D2);
Darstack 1:98ee9aaad63b 22 Serial pc ( USBTX, USBRX );
Darstack 1:98ee9aaad63b 23 //Definiendo las variables Globales
MarlonQ 0:4da94607d8a6 24
Darstack 1:98ee9aaad63b 25 volatile uint32_t L_Agua;
Darstack 1:98ee9aaad63b 26 float Pwm_Control;
Darstack 1:98ee9aaad63b 27 char Read_Uart;
Darstack 1:98ee9aaad63b 28 int nvueltas, nvueltas_n;
Darstack 1:98ee9aaad63b 29 int Rpm;
Darstack 1:98ee9aaad63b 30 volatile int Exit = 0 ;
Darstack 1:98ee9aaad63b 31 volatile bool button1_pressed = false; // Used in the main loop
Darstack 1:98ee9aaad63b 32 volatile bool button1_enabled = true; // Used for debouncing
Darstack 1:98ee9aaad63b 33 Timeout button1_timeout; // Used for debouncing
Darstack 1:98ee9aaad63b 34
Darstack 1:98ee9aaad63b 35 //Definiendo las funciones
Darstack 1:98ee9aaad63b 36
Darstack 1:98ee9aaad63b 37 //void Rx_interrupt();
Darstack 1:98ee9aaad63b 38 void Leer_Sagua();
Darstack 1:98ee9aaad63b 39 void leer_datos();
Darstack 1:98ee9aaad63b 40 void Funciones_Mezcladora(char _Funcion);
Darstack 1:98ee9aaad63b 41
Darstack 1:98ee9aaad63b 42 //Definidndo funciones de interrubluetoothion Encoder
Darstack 1:98ee9aaad63b 43 // Habilita el botón cuando termina el rebote.
Darstack 1:98ee9aaad63b 44 void button1_enabled_cb(void)
Darstack 1:98ee9aaad63b 45 {
Darstack 1:98ee9aaad63b 46 button1_enabled = true;
Darstack 1:98ee9aaad63b 47 }
Darstack 1:98ee9aaad63b 48
Darstack 1:98ee9aaad63b 49 // Botón presionado ISR evento presionado
Darstack 1:98ee9aaad63b 50 void button1_onpressed_cb(void)
Darstack 1:98ee9aaad63b 51 {
Darstack 1:98ee9aaad63b 52 if (button1_enabled) { // Disabled while the button is bouncing
Darstack 1:98ee9aaad63b 53 button1_enabled = false;
Darstack 1:98ee9aaad63b 54 button1_pressed = true; // To be read by the main loop
Darstack 1:98ee9aaad63b 55 button1_timeout.attach(callback(button1_enabled_cb), 0.1); // Debounce time 300 ms
Darstack 1:98ee9aaad63b 56 }
Darstack 1:98ee9aaad63b 57
Darstack 1:98ee9aaad63b 58 }
MarlonQ 0:4da94607d8a6 59 int main() {
MarlonQ 0:4da94607d8a6 60
Darstack 1:98ee9aaad63b 61 bluetooth.baud(9600) ;
Darstack 1:98ee9aaad63b 62 pc.baud ( 115200 );
Darstack 1:98ee9aaad63b 63 //printf(" Leyendo sensor de agua \n");
MarlonQ 0:4da94607d8a6 64
Darstack 1:98ee9aaad63b 65 nvueltas = 0;
Darstack 1:98ee9aaad63b 66
Darstack 1:98ee9aaad63b 67 EncoMot.rise( callback( button1_onpressed_cb ) );
Darstack 1:98ee9aaad63b 68 tout0.attach( &Leer_Sagua, 1 );
MarlonQ 0:4da94607d8a6 69
MarlonQ 0:4da94607d8a6 70 while(1) {
MarlonQ 0:4da94607d8a6 71
Darstack 1:98ee9aaad63b 72 if (button1_pressed) { //Establecer cuando se presiona el botón
Darstack 1:98ee9aaad63b 73 button1_pressed = false;
Darstack 1:98ee9aaad63b 74 nvueltas++;
Darstack 1:98ee9aaad63b 75 led = !led;
Darstack 1:98ee9aaad63b 76 //pc.printf("%d",nvueltas);
Darstack 1:98ee9aaad63b 77 }
MarlonQ 0:4da94607d8a6 78
Darstack 1:98ee9aaad63b 79 if( t1.read_ms()> 1000 ){
Darstack 1:98ee9aaad63b 80
Darstack 1:98ee9aaad63b 81 nvueltas_n = nvueltas;
Darstack 1:98ee9aaad63b 82 nvueltas = 0;
Darstack 1:98ee9aaad63b 83 t1.reset();
Darstack 1:98ee9aaad63b 84 Rpm = ( ( nvueltas_n * 60) / ( 0.1 * 20 ) );
Darstack 1:98ee9aaad63b 85 pc.printf ( " Vueltas= %d Rpm= %d \n", nvueltas_n, Rpm );
Darstack 1:98ee9aaad63b 86 // pc.putc( nvueltas_n );
Darstack 1:98ee9aaad63b 87 // pc.putc( Rpm );
Darstack 1:98ee9aaad63b 88 Mot_As = Mot_As+0.01f;
Darstack 1:98ee9aaad63b 89
Darstack 1:98ee9aaad63b 90 int Oka;
Darstack 1:98ee9aaad63b 91 if(pc.readable()){Oka=pc.getc();}
Darstack 1:98ee9aaad63b 92 printf ( " %d \n ", Oka);
Darstack 1:98ee9aaad63b 93 if( Rpm > Oka*1.2 ){
Darstack 1:98ee9aaad63b 94 printf ( " Entro \n ");
Darstack 1:98ee9aaad63b 95 Mot_As = Mot_As - 0.02f ;
Darstack 1:98ee9aaad63b 96 }
Darstack 1:98ee9aaad63b 97 }
Darstack 1:98ee9aaad63b 98
Darstack 1:98ee9aaad63b 99 leer_datos();
Darstack 1:98ee9aaad63b 100 Funciones_Mezcladora(Read_Uart);
Darstack 1:98ee9aaad63b 101 }
Darstack 1:98ee9aaad63b 102 }
Darstack 1:98ee9aaad63b 103
Darstack 1:98ee9aaad63b 104 ////////////////////////////////////////////////////////////////////////////////
Darstack 1:98ee9aaad63b 105 // Declaracion de funciones //
Darstack 1:98ee9aaad63b 106 ////////////////////////////////////////////////////////////////////////////////
Darstack 1:98ee9aaad63b 107 void leer_datos(){
Darstack 1:98ee9aaad63b 108
Darstack 1:98ee9aaad63b 109 if(bluetooth.readable()){
Darstack 1:98ee9aaad63b 110 Read_Uart = bluetooth.getc();
Darstack 1:98ee9aaad63b 111 }
Darstack 1:98ee9aaad63b 112 }
Darstack 1:98ee9aaad63b 113 ////////////////////////////////////////////////////////////////////////////////
Darstack 1:98ee9aaad63b 114 // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°//
Darstack 1:98ee9aaad63b 115 ////////////////////////////////////////////////////////////////////////////////
Darstack 1:98ee9aaad63b 116 void Leer_Sagua(){
Darstack 1:98ee9aaad63b 117
Darstack 1:98ee9aaad63b 118 //printf( " %d \n ", L_Agua );
Darstack 1:98ee9aaad63b 119 L_Agua = In_Sagua.read_u16();
Darstack 1:98ee9aaad63b 120
Darstack 1:98ee9aaad63b 121 if( L_Agua > 1000 ){
Darstack 1:98ee9aaad63b 122
Darstack 1:98ee9aaad63b 123 pc.printf( " Se paso \n " );
Darstack 1:98ee9aaad63b 124 Lemer = 1;
Darstack 1:98ee9aaad63b 125 BUZZ.period_us( 1300 );
Darstack 1:98ee9aaad63b 126 BUZZ.write( 0.8 );
Darstack 1:98ee9aaad63b 127 wait( 0.5 );
Darstack 1:98ee9aaad63b 128 BUZZ.write( 0 );
Darstack 1:98ee9aaad63b 129 Lemer = 0;
Darstack 1:98ee9aaad63b 130 wait( 0.5 );
Darstack 1:98ee9aaad63b 131 }
Darstack 1:98ee9aaad63b 132
MarlonQ 0:4da94607d8a6 133 }
Darstack 1:98ee9aaad63b 134 ////////////////////////////////////////////////////////////////////////////////
Darstack 1:98ee9aaad63b 135 // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°//
Darstack 1:98ee9aaad63b 136 ////////////////////////////////////////////////////////////////////////////////
Darstack 1:98ee9aaad63b 137 void Funciones_Mezcladora(char _Funcion){
Darstack 1:98ee9aaad63b 138
Darstack 1:98ee9aaad63b 139 switch (_Funcion){
Darstack 1:98ee9aaad63b 140
Darstack 1:98ee9aaad63b 141 //Llenar agua
Darstack 1:98ee9aaad63b 142 case 'A':
Darstack 1:98ee9aaad63b 143
Darstack 1:98ee9aaad63b 144 Llenado = 1;
Darstack 1:98ee9aaad63b 145 //printf(" Caso 1 ");
Darstack 1:98ee9aaad63b 146
Darstack 1:98ee9aaad63b 147
Darstack 1:98ee9aaad63b 148 break;
Darstack 1:98ee9aaad63b 149
Darstack 1:98ee9aaad63b 150 //Expulsar agua
Darstack 1:98ee9aaad63b 151 case 'B':
Darstack 1:98ee9aaad63b 152
Darstack 1:98ee9aaad63b 153 Sacado = 1;
Darstack 1:98ee9aaad63b 154 //printf(" Caso 2 ");
Darstack 1:98ee9aaad63b 155
Darstack 1:98ee9aaad63b 156 break;
Darstack 1:98ee9aaad63b 157
Darstack 1:98ee9aaad63b 158 case 'C':
Darstack 1:98ee9aaad63b 159
Darstack 1:98ee9aaad63b 160 t1.start();
Darstack 1:98ee9aaad63b 161
Darstack 1:98ee9aaad63b 162 break;
Darstack 1:98ee9aaad63b 163
Darstack 1:98ee9aaad63b 164 case 'D':
Darstack 1:98ee9aaad63b 165
Darstack 1:98ee9aaad63b 166 t1.stop();
Darstack 1:98ee9aaad63b 167 NVIC_SystemReset();
Darstack 1:98ee9aaad63b 168
Darstack 1:98ee9aaad63b 169 break;
Darstack 1:98ee9aaad63b 170
Darstack 1:98ee9aaad63b 171 case 'E':
Darstack 1:98ee9aaad63b 172
Darstack 1:98ee9aaad63b 173 Llenado = 0;
Darstack 1:98ee9aaad63b 174 //printf(" Caso 5 ");
Darstack 1:98ee9aaad63b 175
Darstack 1:98ee9aaad63b 176
Darstack 1:98ee9aaad63b 177 break;
Darstack 1:98ee9aaad63b 178
Darstack 1:98ee9aaad63b 179 //Expulsar agua
Darstack 1:98ee9aaad63b 180 case 'F':
Darstack 1:98ee9aaad63b 181
Darstack 1:98ee9aaad63b 182 Sacado = 0;
Darstack 1:98ee9aaad63b 183 led = 0;
Darstack 1:98ee9aaad63b 184 //printf(" Caso 6 ");
Darstack 1:98ee9aaad63b 185
Darstack 1:98ee9aaad63b 186 break;
Darstack 1:98ee9aaad63b 187 }
Darstack 1:98ee9aaad63b 188 }