Guest User

Untitled

a guest
Apr 27th, 2016
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <LiquidCrystal_I2C.h>
  2. #include <Wire.h>
  3. #include<Servo.h>  
  4. #include<Ultrasonic.h>
  5.  
  6. //declaramos un objeto ultrasonic de la la librería Ultrasonic para referirnos a ella.  
  7. Ultrasonic jaime(7/*trig*/,A0);  
  8. Ultrasonic kike (8/*trig*/,A1);  
  9. LiquidCrystal_I2C lcd(0x27,16,2);
  10. int cinta = 12;
  11. int cont = 0;
  12. int entrada=0;
  13. int fincarrera = 9;
  14. int value = 0;  
  15. //declaramos un objeto miservo de la la libreria Servo para referirnos a ella.  
  16. Servo miservov;
  17. Servo miservor;    
  18. int Distancia_kike;
  19. int Distancia_jaime;
  20. char entrada1;
  21. //iniciamos la pantalla con los pines correspondientes
  22.  
  23.  
  24. void setup(){  
  25.    Serial.begin(9600);
  26.    pinMode(fincarrera, INPUT);
  27.    pinMode(cinta,OUTPUT);
  28.    digitalWrite(cinta,HIGH);
  29.     //definimos el pin para controlar el servo  
  30.     miservov.attach(3);  
  31.     miservor.attach(4);
  32.     // coloca el servo en su posición central  
  33.     miservov.write(90);
  34.  
  35.     //inicializar lcd
  36.     lcd.init();
  37.     lcd.backlight();
  38.     lcd.setCursor(3,0);
  39.     lcd.print("Bienvenido");
  40.    
  41.  
  42. }
  43.  
  44. void moverCinta(){
  45.         digitalWrite(cinta, HIGH);   // cinta parada
  46.         delay(1000);               // wait for a second
  47.         digitalWrite(cinta, LOW);    // cinta funcionando
  48.         delay(103);
  49.  
  50. }
  51.  
  52. void moverCinta1(){
  53.         digitalWrite(cinta, HIGH);   // cinta parada
  54.         delay(1000);               // wait for a second
  55.         digitalWrite(cinta, LOW);    // cinta funcionando
  56.         delay(220);
  57.  
  58. }
  59.  
  60. void moverCinta2(){
  61.         digitalWrite(cinta, HIGH);   // cinta parada
  62.         delay(1000);               // wait for a second
  63.         digitalWrite(cinta, LOW);    // cinta funcionando
  64.         delay(180);
  65.  
  66. }
  67.  
  68. void presionarGrifo1(){
  69.         miservov.write(180);
  70.         delay(3000);
  71.         miservov.write(90);
  72.         delay(2000);
  73. }
  74.  
  75. void presionarGrifo2(){
  76.         miservor.write(180);
  77.         delay(3000);
  78.         miservor.write(90);
  79.         delay(2000);
  80. }
  81.  
  82.  
  83.  
  84. void loop(){  
  85.  
  86.   if(Serial.available()>0){  
  87. //declaramos la entrada que recibira la señal del bluetooth
  88.    
  89.     char entrada= Serial.read();
  90.     while (entrada == 'E'){  
  91.       value = digitalRead(fincarrera);
  92.       if ( value == HIGH){ //si el fin de carrera no esta pulsado
  93.        
  94.              
  95.       //leemos el sensor de ultrasonidos y guardamos el valor en una variable  
  96.           Distancia_kike = kike.Ranging(CM);    
  97.           //si el sensor detecta la botella
  98.           if(Distancia_kike <= 30){
  99.               lcd.clear();
  100.               lcd.setCursor(3,0);
  101.               lcd.print("Sirviendo...");
  102.               lcd.setCursor(3,1);
  103.               lcd.print("CocaCola");
  104.               // en la cinta el high es apagado asique para la cinta
  105.               digitalWrite(cinta,HIGH);
  106.               delay(2000);
  107.               presionarGrifo1();//metodo que acciona el primer grifo
  108.               moverCinta1();//avanza la cinta para que salga del detector
  109.                        
  110.           } else {  
  111.              
  112.             lcd.clear();
  113.             lcd.setCursor(3,0);
  114.             lcd.print("En Proceso");
  115.             moverCinta();
  116.             entrada1 = Serial.read();
  117.             if(entrada1=='A'){
  118.             break;
  119.           }
  120.          }
  121.            Distancia_jaime = jaime.Ranging(CM);
  122.            if(Distancia_jaime <= 30){
  123.               lcd.clear();
  124.               lcd.setCursor(3,0);
  125.               lcd.print("Sirviendo...");
  126.               lcd.setCursor(3,1);
  127.               lcd.print("Naranja");
  128.               // en la cinta el high es apagado asique para la cinta
  129.               digitalWrite(cinta,HIGH);
  130.               // en la cinta el high es apagado
  131.               digitalWrite(cinta,HIGH);
  132.               delay(2000);
  133.               presionarGrifo2();//metodo que acciona el segundo grifo
  134.               moverCinta2();              
  135.           } else {
  136.            
  137.             moverCinta();
  138.             lcd.clear();
  139.             lcd.setCursor(3,0);
  140.             lcd.print("En Proceso");
  141.             entrada1 = Serial.read();
  142.             if(entrada1=='A'){
  143.             break;
  144.           }
  145.          }  
  146.       }else {//si llega al final de la cinta se para y acaba la ejecución
  147.       digitalWrite(cinta,HIGH);
  148.       delay(100000000000000000000000);
  149.     }
  150.         }//FIN DE IF ENTRADA=E
  151.        //SI HEMOS
  152.        digitalWrite(cinta,HIGH);
  153.        //PULSADO LA X
  154.       while(entrada=='C'){
  155.           Distancia_kike = kike.Ranging(CM);    
  156.           //si el sensor detecta la botella
  157.           if(Distancia_kike <= 30){
  158.               lcd.clear();
  159.               lcd.setCursor(3,0);
  160.               lcd.print("Sirviendo...");
  161.               lcd.setCursor(3,1);
  162.               lcd.print("CocaCola");
  163.               // en la cinta el high es apagado asique para la cinta
  164.               digitalWrite(cinta,HIGH);
  165.               delay(2000);
  166.               presionarGrifo1();//metodo que acciona el primer grifo
  167.               moverCinta1();//avanza la cinta para que salga del detector
  168.               lcd.clear();
  169.               lcd.setCursor(3,0);
  170.               lcd.print("Servido!");
  171.           } else {
  172.             lcd.clear();
  173.             lcd.setCursor(3,0);
  174.             lcd.print("En Proceso");
  175.             moverCinta();
  176.           }
  177.        
  178.       }
  179.       while (entrada=='F'){
  180.         Distancia_jaime = jaime.Ranging(CM);
  181.            if(Distancia_jaime <= 30){
  182.               lcd.clear();
  183.               lcd.setCursor(3,0);
  184.               lcd.print("Sirviendo...");
  185.               lcd.setCursor(3,1);
  186.               lcd.print("Naranja");
  187.               // en la cinta el high es apagado asique para la cinta
  188.               digitalWrite(cinta,HIGH);
  189.               // en la cinta el high es apagado
  190.               digitalWrite(cinta,HIGH);
  191.               delay(2000);
  192.               presionarGrifo2();//metodo que acciona el segundo grifo
  193.               moverCinta2();              
  194.           } else {
  195.            
  196.             moverCinta();
  197.             lcd.clear();
  198.             lcd.setCursor(3,0);
  199.             lcd.print("En Proceso");
  200.           }
  201.        
  202.       }
  203.       while (entrada=='M'){
  204.         value = digitalRead(fincarrera);
  205.       if ( value == HIGH){ //si el fin de carrera no esta pulsado
  206.        
  207.              
  208.       //leemos el sensor de ultrasonidos y guardamos el valor en una variable  
  209.           Distancia_kike = kike.Ranging(CM);    
  210.           //si el sensor detecta la botella
  211.           if(Distancia_kike <= 30){
  212.               lcd.clear();
  213.               lcd.setCursor(3,0);
  214.               lcd.print("Sirviendo...");
  215.               lcd.setCursor(3,1);
  216.               lcd.print("CocaCola");
  217.               // en la cinta el high es apagado asique para la cinta
  218.               digitalWrite(cinta,HIGH);
  219.               delay(2000);
  220.               presionarGrifo1();//metodo que acciona el primer grifo
  221.               moverCinta1();//avanza la cinta para que salga del detector
  222.                        
  223.           } else {
  224.             lcd.clear();
  225.             lcd.setCursor(3,0);
  226.             lcd.print("En Proceso");
  227.             moverCinta();
  228.           }
  229.            Distancia_jaime = jaime.Ranging(CM);
  230.            if(Distancia_jaime <= 30){
  231.               lcd.clear();
  232.               lcd.setCursor(3,0);
  233.               lcd.print("Sirviendo...");
  234.               lcd.setCursor(3,1);
  235.               lcd.print("Naranja");
  236.               // en la cinta el high es apagado asique para la cinta
  237.               digitalWrite(cinta,HIGH);
  238.               // en la cinta el high es apagado
  239.               digitalWrite(cinta,HIGH);
  240.               delay(2000);
  241.               presionarGrifo2();//metodo que acciona el segundo grifo
  242.               moverCinta2();              
  243.           } else {
  244.            
  245.             moverCinta();
  246.             lcd.clear();
  247.             lcd.setCursor(3,0);
  248.             lcd.print("En Proceso");
  249.           }
  250.          
  251.       }else {//si llega al final de la cinta se para y acaba la ejecución
  252.       digitalWrite(cinta,HIGH);
  253.       lcd.clear();
  254.       lcd.setCursor(3,0);
  255.       lcd.print("Servido!");
  256.      
  257.       delay(100000000000000000000000);
  258.     }
  259.      
  260.   }//cierre available  
  261. }
Advertisement
Add Comment
Please, Sign In to add comment