Advertisement
Guest User

Untitled

a guest
Oct 27th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.61 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2. int contCargas=0;
  3. int actuadorCarga = 3;
  4. int rodilloImpresionCarga = 4;
  5. int rodilloImpresion = 5;
  6. int y = 0;
  7. int i = 1;
  8. int numero = '2';
  9. int cantImpre = 0;
  10. int estado = 0;
  11. int j2 = 0;
  12.  
  13. void setup()
  14. {
  15.   pinMode(actuadorCarga, 1);
  16.   pinMode(rodilloImpresionCarga, 1);
  17.   pinMode(rodilloImpresion, 1);
  18.   Serial.begin(9600);
  19.   /*digitalWrite(rodilloImpresionCarga, 1); //cuando se coloca en NORMALMENTE CERRADO
  20.   digitalWrite(rodilloImpresion, 1);
  21.   digitalWrite(carga, 1);*/
  22. }
  23.  
  24. void loop()
  25. {
  26.   if (Serial.available() > 0) {
  27.     i = Serial.read();
  28.     switch (i)    
  29.     {
  30.  
  31. //      if(i=4){
  32. //        break;
  33. //      }
  34. //      i++;
  35.      
  36.       case '1':      
  37.        // estado = 1;
  38.         cantImpre = Serial.parseInt();
  39.         carga();
  40.         imprime();
  41.         Serialflush();
  42.         contCargas=0;
  43.         cantImpre=0;
  44.         //estado = 0;
  45.         //Serial.println("101");
  46.       break;
  47.  
  48.       case '2':
  49.       contadorCargas();
  50.         break;        
  51.        
  52.       case '3':
  53.         imprime();
  54.         Serialflush();
  55.         contCargas=0;
  56.         break;
  57.  
  58.       case '4':
  59.        //if (estado == 1){
  60.        // estado=0;
  61.        fin();
  62.         Serialflush();
  63.        //}
  64. //  
  65. //        fin();
  66. //        contCargas=0;
  67. //exit(0);
  68.         break;
  69.     }
  70.   }
  71. }
  72. /*contCargas=contCargas++;
  73.         if (contCargas >1){
  74.         Serial.println("e");}*/
  75.  
  76. void contadorCargas(){
  77.   if(contCargas>=2){
  78.         Serial.println("Ya haz cargado tinta");
  79.         contCargas++;
  80.         //Serialflush();
  81.         } else
  82.         if (contCargas<2)
  83.         {carga();
  84.         contCargas++;
  85.         }
  86.   }
  87.  
  88. void Serialflush(){
  89. while(Serial.available()>0){
  90.   char i = Serial.read();
  91.   }
  92. }
  93.  
  94. void metodo(){
  95.   if (Serial.available() > 0)
  96.    {
  97.     int j = Serial.read();
  98.     if (j=='1'){
  99.     Serial.println("Se esta ejecutando Automatico - metodo()");
  100.     }
  101.     if (j=='2' || j=='3'){
  102.     Serial.println("Espera que finalice - metodo()");
  103.     }
  104.     if (j=='4'){
  105.       j2 = '4';
  106.     //fin();
  107.     digitalWrite(rodilloImpresion, 0);
  108.     delay(200);
  109.     Serial.println("Se ha cancelado la impresión - metodo()");
  110.     //Codigo de daniel :v
  111.     //delay(300);
  112.     //exit(0);
  113.  
  114.     //Codigo de daniel :v
  115.     }
  116.  
  117.    }
  118.   }
  119.  
  120. void metodo2(){
  121.   if (Serial.available() > 0)
  122.    {
  123.     int j = Serial.read();
  124.     if (j=='1'){
  125.     Serial.println("Espera que finalice automatico");
  126.     }
  127.     if (j=='4'){
  128.     Serial.println("Falta poco para finalizar");
  129.     }
  130.    }
  131.   }
  132.  
  133.   void metodo3(){
  134.   if (Serial.available() > 0)
  135.    {
  136.     int j = Serial.read();
  137.     if (j=='1'){
  138.     Serial.println("Finalizar la impresión manual para ir a Automático");
  139.     }
  140.     if (j=='3'){
  141.       Serial.println("Se esta ejecutando");
  142.     }
  143.    }
  144.   }
  145.  
  146. void metodo4(){
  147. //  if (Serial.available() > 0)
  148. //   {
  149. //    int j = Serial.read();
  150. //    if (j=='4'){
  151. //    Serial.println("Se esta ejecutando...del metodo4");
  152. //    }
  153. //   }
  154. Serial.println("Entro a metodo4");
  155. delay(1000);
  156.  
  157. exit(0);
  158.   }
  159.  
  160. void carga() {//carga para automático
  161.   if(i=='1'){
  162.   digitalWrite(rodilloImpresion, 0);
  163.   metodo();
  164.   delay(500);
  165.   metodo();
  166.   delay(500);
  167.   metodo();
  168.   digitalWrite(actuadorCarga, 1);
  169.   metodo();
  170.   delay(500);
  171.   metodo();
  172.   delay(500);
  173.   metodo();
  174.   digitalWrite(rodilloImpresionCarga, 1); //se activa rodillo de carga
  175.   trc();
  176.   metodo();
  177.   digitalWrite(rodilloImpresionCarga, 0); // desactiva rodillo de carga
  178.   metodo();
  179.   delay(500);
  180.   metodo();
  181.   delay(500);
  182.   metodo();
  183.   digitalWrite(actuadorCarga, 0); //descactiva actuadorCarga
  184.   metodo();
  185.   delay(500);
  186.   metodo();
  187.   delay(500);
  188.   metodo();
  189. }
  190. else{
  191.   digitalWrite(rodilloImpresion, 0);
  192.   metodo2();
  193.   delay(500);
  194.   metodo2();
  195.   delay(500);
  196.   metodo2();
  197.   digitalWrite(actuadorCarga, 1);
  198.   delay(500);
  199.   metodo2();
  200.   delay(500);
  201.   metodo2();
  202.   digitalWrite(rodilloImpresionCarga, 1);
  203.   trc2();
  204.   metodo2();
  205.   digitalWrite(rodilloImpresionCarga, 0);
  206.   delay(500);
  207.   metodo2();
  208.   delay(500);
  209.   metodo2();
  210.   digitalWrite(actuadorCarga, 0);
  211.   delay(500);
  212.   metodo2();
  213.   Serial.println("Carga completa");
  214.   delay(500);
  215.   metodo2();
  216.   }
  217. }
  218.  
  219. void trc(){// tiempo rodillo carga para caso 1
  220.   //delay(5217); //5217/3=1739
  221.   int trc=1739; //tiempo de 1 giro del rodillo de carga
  222.   int tc=3*trc; //tiempo para completar carga de tinta
  223.   int numfor=tc/500;
  224.   for(int i=0; i<numfor+1; i++){
  225.     metodo();
  226.     delay(500);
  227.   }
  228. }
  229.  
  230. void trc2(){ //tiempo rodillo de carga para caso 2
  231.   //delay(5217); //5217/3=1739
  232.   int trc=1739; //tiempo de rodillo de carga TRC
  233.   int tc=3*trc; //tiempo de carga
  234.   int numfor=tc/500;
  235.   for(int i=0; i<numfor+1; i++){
  236.     metodo2();
  237.     delay(500);
  238.   }
  239. }
  240.  
  241. void imprime() {
  242.   digitalWrite(rodilloImpresion, 1);//activa rodillo de impresión
  243.   metodo();
  244.   delay(500);
  245.   metodo();
  246.   if (i == '1') {
  247.     if (j2 == '4')
  248.     {
  249.       Serial.println("Adios");
  250.       j2 = '0';
  251.       //break;
  252.     }
  253.     else
  254.     {
  255.       tri();
  256.       metodo();
  257.       digitalWrite(rodilloImpresion, 0);
  258.       delay(200);
  259.       metodo();
  260.       delay(200);
  261.       metodo();
  262.     }
  263.   }
  264.   else {
  265.     digitalWrite(rodilloImpresion, 1);
  266.     Serial.println("hola, el punto de ejecución esta en el metodo imprime()");
  267.     metodo3();
  268.     delay(200);
  269.     metodo3();
  270.     delay(200);
  271.   }
  272. }
  273.  
  274. void tri(){ //tiempo rodillo de impresión
  275.   //delay(total); //1447 es igual a una vuelta de impresión
  276.   int t = 1447; //duración de una vuelta en milisegundos del rod de impr
  277.   //Serial.println(y);
  278.   int total = t * cantImpre; //total de tiempo en realizar las vueltas de impresión
  279.   int numtotal = total/500;  
  280.     for(int i=0; i<numtotal+1; i++){
  281.     metodo();
  282.     delay(500);
  283.   } //Serial.println(cantImpre);
  284. }
  285.  
  286. /*void imprimeCancelar() {
  287.   if (i == '1') {
  288.     triCancelar();
  289.     metodo();
  290.     digitalWrite(rodilloImpresion, 0);
  291.     delay(200);
  292.     metodo();
  293.   }
  294. }
  295.  
  296. void triCancelar(){ //tiempo rodillo de impresión cancelar
  297.   //delay(total); //1447 es igual a una vuelta de impresión
  298.   int t = 1447; //duración de una vuelta en milisegundos del rod de impr
  299.   cantImpre=0;
  300.   int total = t * cantImpre; //total de tiempo en realizar las vueltas de impresión
  301.   int numtotal = total/500;  
  302.     for(int i=0; i<numtotal+1; i++){
  303.     metodo();
  304.     delay(500);
  305.   }
  306. }*/
  307.  
  308. void fin() {
  309.   //Serial.println("Se ha cancelado la impresión");
  310.   //triCancelar();
  311.   digitalWrite(actuadorCarga,0);
  312.   metodo4();
  313.   delay(200);
  314.   digitalWrite(rodilloImpresionCarga,0);
  315.   metodo4();
  316.   delay(200);
  317.   digitalWrite(rodilloImpresion, 0);
  318.   metodo4();
  319.   delay(200);
  320.   metodo4();
  321. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement