Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal_I2C.h>
- #include <Wire.h>
- #include<Servo.h>
- #include<Ultrasonic.h>
- //declaramos un objeto ultrasonic de la la librerÃa Ultrasonic para referirnos a ella.
- Ultrasonic jaime(7/*trig*/,A0);
- Ultrasonic kike (8/*trig*/,A1);
- LiquidCrystal_I2C lcd(0x27,16,2);
- int cinta = 12;
- int cont = 0;
- int entrada=0;
- int fincarrera = 9;
- int value = 0;
- //declaramos un objeto miservo de la la libreria Servo para referirnos a ella.
- Servo miservov;
- Servo miservor;
- int Distancia_kike;
- int Distancia_jaime;
- char entrada1;
- //iniciamos la pantalla con los pines correspondientes
- void setup(){
- Serial.begin(9600);
- pinMode(fincarrera, INPUT);
- pinMode(cinta,OUTPUT);
- digitalWrite(cinta,HIGH);
- //definimos el pin para controlar el servo
- miservov.attach(3);
- miservor.attach(4);
- // coloca el servo en su posición central
- miservov.write(90);
- //inicializar lcd
- lcd.init();
- lcd.backlight();
- lcd.setCursor(3,0);
- lcd.print("Bienvenido");
- }
- void moverCinta(){
- digitalWrite(cinta, HIGH); // cinta parada
- delay(1000); // wait for a second
- digitalWrite(cinta, LOW); // cinta funcionando
- delay(103);
- }
- void moverCinta1(){
- digitalWrite(cinta, HIGH); // cinta parada
- delay(1000); // wait for a second
- digitalWrite(cinta, LOW); // cinta funcionando
- delay(220);
- }
- void moverCinta2(){
- digitalWrite(cinta, HIGH); // cinta parada
- delay(1000); // wait for a second
- digitalWrite(cinta, LOW); // cinta funcionando
- delay(180);
- }
- void presionarGrifo1(){
- miservov.write(180);
- delay(3000);
- miservov.write(90);
- delay(2000);
- }
- void presionarGrifo2(){
- miservor.write(180);
- delay(3000);
- miservor.write(90);
- delay(2000);
- }
- void loop(){
- if(Serial.available()>0){
- //declaramos la entrada que recibira la señal del bluetooth
- char entrada= Serial.read();
- while (entrada == 'E'){
- value = digitalRead(fincarrera);
- if ( value == HIGH){ //si el fin de carrera no esta pulsado
- //leemos el sensor de ultrasonidos y guardamos el valor en una variable
- Distancia_kike = kike.Ranging(CM);
- //si el sensor detecta la botella
- if(Distancia_kike <= 30){
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("Sirviendo...");
- lcd.setCursor(3,1);
- lcd.print("CocaCola");
- // en la cinta el high es apagado asique para la cinta
- digitalWrite(cinta,HIGH);
- delay(2000);
- presionarGrifo1();//metodo que acciona el primer grifo
- moverCinta1();//avanza la cinta para que salga del detector
- } else {
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("En Proceso");
- moverCinta();
- entrada1 = Serial.read();
- if(entrada1=='A'){
- break;
- }
- }
- Distancia_jaime = jaime.Ranging(CM);
- if(Distancia_jaime <= 30){
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("Sirviendo...");
- lcd.setCursor(3,1);
- lcd.print("Naranja");
- // en la cinta el high es apagado asique para la cinta
- digitalWrite(cinta,HIGH);
- // en la cinta el high es apagado
- digitalWrite(cinta,HIGH);
- delay(2000);
- presionarGrifo2();//metodo que acciona el segundo grifo
- moverCinta2();
- } else {
- moverCinta();
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("En Proceso");
- entrada1 = Serial.read();
- if(entrada1=='A'){
- break;
- }
- }
- }else {//si llega al final de la cinta se para y acaba la ejecución
- digitalWrite(cinta,HIGH);
- delay(100000000000000000000000);
- }
- }//FIN DE IF ENTRADA=E
- //SI HEMOS
- digitalWrite(cinta,HIGH);
- //PULSADO LA X
- while(entrada=='C'){
- Distancia_kike = kike.Ranging(CM);
- //si el sensor detecta la botella
- if(Distancia_kike <= 30){
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("Sirviendo...");
- lcd.setCursor(3,1);
- lcd.print("CocaCola");
- // en la cinta el high es apagado asique para la cinta
- digitalWrite(cinta,HIGH);
- delay(2000);
- presionarGrifo1();//metodo que acciona el primer grifo
- moverCinta1();//avanza la cinta para que salga del detector
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("Servido!");
- } else {
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("En Proceso");
- moverCinta();
- }
- }
- while (entrada=='F'){
- Distancia_jaime = jaime.Ranging(CM);
- if(Distancia_jaime <= 30){
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("Sirviendo...");
- lcd.setCursor(3,1);
- lcd.print("Naranja");
- // en la cinta el high es apagado asique para la cinta
- digitalWrite(cinta,HIGH);
- // en la cinta el high es apagado
- digitalWrite(cinta,HIGH);
- delay(2000);
- presionarGrifo2();//metodo que acciona el segundo grifo
- moverCinta2();
- } else {
- moverCinta();
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("En Proceso");
- }
- }
- while (entrada=='M'){
- value = digitalRead(fincarrera);
- if ( value == HIGH){ //si el fin de carrera no esta pulsado
- //leemos el sensor de ultrasonidos y guardamos el valor en una variable
- Distancia_kike = kike.Ranging(CM);
- //si el sensor detecta la botella
- if(Distancia_kike <= 30){
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("Sirviendo...");
- lcd.setCursor(3,1);
- lcd.print("CocaCola");
- // en la cinta el high es apagado asique para la cinta
- digitalWrite(cinta,HIGH);
- delay(2000);
- presionarGrifo1();//metodo que acciona el primer grifo
- moverCinta1();//avanza la cinta para que salga del detector
- } else {
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("En Proceso");
- moverCinta();
- }
- Distancia_jaime = jaime.Ranging(CM);
- if(Distancia_jaime <= 30){
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("Sirviendo...");
- lcd.setCursor(3,1);
- lcd.print("Naranja");
- // en la cinta el high es apagado asique para la cinta
- digitalWrite(cinta,HIGH);
- // en la cinta el high es apagado
- digitalWrite(cinta,HIGH);
- delay(2000);
- presionarGrifo2();//metodo que acciona el segundo grifo
- moverCinta2();
- } else {
- moverCinta();
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("En Proceso");
- }
- }else {//si llega al final de la cinta se para y acaba la ejecución
- digitalWrite(cinta,HIGH);
- lcd.clear();
- lcd.setCursor(3,0);
- lcd.print("Servido!");
- delay(100000000000000000000000);
- }
- }//cierre available
- }
Advertisement
Add Comment
Please, Sign In to add comment