SOLDADOR DE DOBLE PULSO CON BLUEPILL STM32F103

Dependencies:   mbed QEI Debounced TextLCD

Files at this revision

API Documentation at this revision

Comitter:
tony63
Date:
Thu Jun 20 02:45:52 2019 +0000
Parent:
2:75153c8d2ef0
Commit message:
version2

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 75153c8d2ef0 -r f3e7caa1d402 main.cpp
--- 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