SOLDADOR DE DOBLE PULSO CON BLUEPILL STM32F103
Dependencies: mbed QEI Debounced TextLCD
Diff: main.cpp
- Revision:
- 3:f3e7caa1d402
- Parent:
- 2:75153c8d2ef0
--- a/main.cpp Mon Apr 29 23:26:21 2019 +0000 +++ b/main.cpp Thu Jun 20 02:45:52 2019 +0000 @@ -7,20 +7,35 @@ #include "mbed.h" #include "TextLCD.h" #include "QEI.h" +/* +#include "mbed.h" +#include "QEI.h" +QEI encoder (PB_13, PB_12, NC, 100);//PB12 ES EL CLK... PB13 ES EL DT DE ARDUINO ENCO +Serial COM(PB_6, PB_7); + +int main() { + + while(1){ + wait(0.1); + COM.printf("Pulses is: %i\n", encoder.getPulses()); + } + +} +*/ // se configura el lcd en este caso uno de cuatro filas -TextLCD lcd(PA_8, PA_9, PA_10, PA_11, PA_12, PA_15, TextLCD::LCD16x4); // 4-bit bus: RS, E, D4, D5, D6, D7 +TextLCD lcd(PA_3, PA_2, PA_1, PA_0, PC_15, PC_14, TextLCD::LCD16x4); // 4-bit bus: RS, E, D4, D5, D6, D7 int p=0,p1=0,p2=0,espera=0,pulsos=0; //variables del programa int i=0; //posicion de la variable en el display -QEI wheel (PB_3, PB_4, NC, 100); //configuramos encoder de libreria. dos fases y pulsos x rev -InterruptIn button(PB_5); -DigitalIn fire(PB_7); //boton pedal para soldar +QEI wheel (PB_13, PB_12, NC, 100); //configuramos encoder de libreria. dos fases y pulsos x rev +InterruptIn button(PB_14); +DigitalIn fire(PB_15); DigitalOut IGBT(PB_6); //señal para el igbt DigitalOut IGBT1(PB_8); //señal para el igbt1 de carga del condensador void flip() { - wait_ms(100); + wait_ms(1); if(button==0){ i++; if(i>2){ @@ -30,13 +45,12 @@ } void weld() { - if(fire==0){ + IGBT1=1; // carga el condensador wait(3); //tres segundos IGBT1=0; //fin de la carga - IGBT=0; - wait_ms(10); + wait_ms(1); IGBT=1; wait_ms(p1); IGBT=0; @@ -44,15 +58,13 @@ IGBT=1; wait_ms(p2); IGBT=0; - wait(3); -} -} + } //..............................INICIA EL PROGRAMA....................................................... int main() { //...............PANTALLA INICIAL........................................... -inicio1: + button.fall(&flip); IGBT1=0; //apaga el igbt de carga lcd.cls(); @@ -61,6 +73,7 @@ lcd.locate(3,1); //se posiciona en col 3 y fila 0 lcd.printf("DUAL PULSE"); //primer mensaje wait(3); //espera 3 seg + lcd.cls(); //borra pantalla lcd.locate(0,0); //se posiciona en col 8 y fila 0 lcd.printf("P1="); //se marca una variable @@ -73,51 +86,71 @@ //..............................FIN PANTALLA INICIAL..................................... //.............programa ciclico.......................................................... while(1){ - if(i==0){ lcd.locate(3,0); -lcd.printf(" "); -p1=wheel.getPulses(); +lcd.printf(" "); +p1=p1+wheel.getPulses(); if(p1<0){ p1=0; } +if(p1>999){ + p1=999; + } lcd.locate(3,0); lcd.printf("%d",p1); -wait_ms(60); +wheel.reset(); +wait_ms(5); +if(fire==0){ + weld(); + } } if(i==1){ lcd.locate(11,0); -lcd.printf(" "); -p2=wheel.getPulses(); +lcd.printf(" "); +p2=p2+wheel.getPulses(); if(p2<0){ p2=0; } +if(p2>999){ + p2=999; + } lcd.locate(11,0); lcd.printf("%d",p2); -wait_ms(60); - - +wheel.reset(); +wait_ms(5); +if(fire==0){ + weld(); + } } if(i==2){ lcd.locate(4,1); -lcd.printf(" "); -espera=wheel.getPulses(); +lcd.printf(" "); +espera=espera+wheel.getPulses(); if(espera<0){ espera=0; } +if(espera>999){ + espera=999; + } lcd.locate(4,1); lcd.printf("%d",espera); -wait_ms(60); +wheel.reset(); +wait_ms(5); +if(fire==0){ + weld(); + } } if(fire==0){ weld(); -/* lcd.cls(); + } +/* + lcd.cls(); lcd.printf("WELD-OK"); - wait(2); - goto inicio1; -*/ - } + wait(3); + goto inicio; + */ + }//while }//main \ No newline at end of file