You are on page 1of 9

Maquina Dispensadora de jugo y café

Al llevar a cabo el desarrollo de una máquina que suministraba líquidos
(jugo y café) se utilizaron diferentes materiales y componentes
electrónicos, por mencionar algunos una caja hecha completamente de
madera (material reciclado del proyecto #2). Su función es simple
dispensar el líquido requerido por el usuario en una forma apropiada
dependiendo de cuál sea la elección. Para ello se dispuso de un material
suministrado por el profesor para llevar a cabo el mismo, siendo este
una guía apropiada para facilitar la implementación del proyecto.
Pruebas de bombas con diodos para así regular la presión del líquido
fueron hechas e implementadas eficientemente. También algunos
ensayos en protoboard del circuito funcional tomando en cuenta que las
bombas fueron remplazadas por Leds para facilitar el funcionamiento en
la placa de pruebas. Ya hechas todas las pruebas pertinentes se llevo a
cabo el montaje físico del circuito en la caja antes mencionada para La
Máquina Dispensadora de jugo y café. Sin dejar atrás la programación la
cual estará completamente detallada en el siguiente punto.

Programación de la Maquina Dispensadora de jugo y café
/*
File Name: Jugo_o_Cafe_01e - Rev. 16a 06 15
Recursos: Push_Botton #1 (PB_J) - Jugo = DIO 7 + R = 10K ( Conectado
al Negativo de la fuente )
Push_Botton #2 (PB_C) - Cafe = DIO 8 + R = 10K ( Conectado al "-" )
LED #1 (LED_J) - Jugo = DIO 5 (PWM) + R = 1K ( Conectado al "-" )
LED #2 (LED_C) - Cafe = DIO 6 (PWM) + R = 1K ( Conectado al "-" )
FotoResistencia (FR_V) - Vaso - AIN 5 + R = 3.3K ( Conectado al "+" )
LED #3 (LED_V) - Vaso - DIO 13 + R = 1K ( Conectado al "-" )
Prueba #01d - Verificación de los Botones (PB) y LEDs (LED)
- Uso de una señal análoga - Fija - con el LED_J & LED_C

Must be PWM pin.6 with 1K current lim. // # of the pushbutton pin . .8. // constants won't change. Button .h> LiquidCrystal_I2C lcd(0x27. The circuit: * LED attached from pin 5.J=Jugo const int button_C = 8..Incluye el uso del Monitor Serial. // # of the LED pin . =========================================== ====================== */ #include <Wire.. // # of the pushbutton pin . goes to motor (gate) .8 from +5V * 10K resistor attached to pin 7.Jugo(7) o Cafe(8) Turns on (PWM) and off a light emitting diode(LED) connected to digital pin (PWM) 5. res.C=Cafe const int M1Pin_J = 9.2).. They're used here to // set pin numbers: const int button_J = 7.J=Jugo . to ground * pushbutton attached to pin 7.Verifica el valor análogo de la FR_V + Si hay vaso enciende LED_V .8 from ground =========================================== ====================== Pump Motor Control using PWM Adapted from Basic/Fade example.Prueba los botones ...No activa la señal análoga. si no está presente el vaso.h> #include <LiquidCrystal_I2C.6. when pressing a pushbutton attached to pin 7.20.

// variable for reading Led_V status int intensity = 51*2.. 5. 9.Actual w/ BJT.Must be PWM pin. // Output Volt: 51*1 = 1 voltio. // variable for reading the pushbutton status int ledState_V = 0.3.7.6. . goes to motor (gate) const int ledPin_V = 13.Calculado. // # of the LED pin . 51*3 = 3 Voltios // Actual tension: 12 -12*(255-intensity)/255 // Output Volt / Actual Tension: // 0.backlight(). 7. // variable for reading the pushbutton status int buttonState_C = 0. // # of the LED pin .4. 2.C=Cafe . pinMode(ledPin_C.4.4.init (). int photoresistor=0.2. lcd.3.V=Vaso // variables will change: int buttonState_J = 0.1.print("Y Cafe"). lcd. // # of the LED pin .setCursor(5. OUTPUT). 9. //(0.1. goes to motor (gate) const int ledPin_J = 3.6.. goes to motor (gate) const int ledPin_C = 5. lcd. pinMode(ledPin_J.5 / 0. 0). //this is where our photoresistor Analog Voltage Digital Value will be stored void setup() { // initialize the LED pin as an output: lcd. 3.2. lcd. 1).9..4..5 / 0. 4. // # of the LED pin . 12 ) .print("Maquina de Jugo"). 7. OUTPUT). 12 .setCursor(0.2.J=Jugo Must be PWM pin.C=Cafe . lcd.Must be PWM pin.const int M2Pin_C = 10.8.

. lcd. pinMode(M2Pin_C.begin(9600). delay(1000). INPUT). // initialize the pushbutton pin as an input: pinMode(button_J.clear(). OUTPUT). } void loop(){lcd. lcd.pinMode(ledPin_V. x++ ) { // delay = 30*100 = 3000 ms = 3 Segundos. Making this too small can damage the motor photoresistor = analogRead(A0). 1).. if (buttonState_J == HIGH && buttonState_C == LOW ) { for ( int x=1. ledState_V = digitalRead(ledPin_V). // Read Analog Input #5 ( ATmega328 Pin# 28 ) . // check if pushbutton_J is pressed. pinMode(button_C. buttonState_C = digitalRead(button_C). photoresistor = analogRead(A0). // initialize serial communication at 9600 bits per second: Serial. OUTPUT).print(" Inserte el vaso"). // Imprime "Hola". x<=100. pinMode(M1Pin_J. lcd. OUTPUT).setCursor(0. // Read Analog Input #5 ( ATmega328 Pin# 28 ) // read the state of the pushbutton value: buttonState_J = digitalRead(button_J). INPUT).print(" Bienvenido").

// Turn OFF analog output ( JUGO ) analogWrite(M1Pin_J. intensity).print("Inserte vaso Cafe"). // Turn ON ledPin_V.clear().photoresistor = "No hay Vaso.3 second analogWrite(ledPin_J. lcd.. LOW). //Writes PWM to the motor digitalWrite(ledPin_V. y<=100. intensity). Making this too small can damage the motor . photoresistor = analogRead(A0). lcd.clear(). Hay Vaso.print("Sirviendo Cafe").while ( photoresistor < 700 ) { // Wait. y++ ) { // Total Delay = 30*100 = 3000 ms = 3 Segundos. } delay(30). HIGH). // Read Analog Input #5 ( ATmega328 Pin# 28 ) lcd.. 0). while .. // Writes PWM to the motor analogWrite(M1Pin_J. // ledPin_V = OFF...!" analogWrite(ledPin_J. } } // check if pushbutton_C is pressed. // Despliega la DATA en el Monitor Serial delay(5). //Writes PWM to the motor digitalWrite(ledPin_V. // Despliega la DATA en el Monitor Serial *** Comment / Delete this line to reduce Delay Overhead. if (buttonState_J == LOW && buttonState_C == HIGH) { for ( int y=1. 0). No hay Vaso. delay(5). lcd. // wait for 0.

. // Turn ON ledPin_V. analogWrite(ledPin_C. // Turn OFF analog output ..print("Inserte el vaso Jugo"). delay(5). photoresistor = analogRead(A0). //Writes PWM to the motor< digitalWrite(ledPin_V. lcd.!" analogWrite(ledPin_C. while . 0).clear(). lcd. 0). // Read Analog Input #5 ( ATmega328 Pin# 28 ) lcd..3 second Delay... 0).. No hay Vaso.print("Sirviendo Jugo"). 0). intensity).Jugo analogWrite(M1Pin_J. LOW)..clear(). //Writes PWM to the motor . //Writes PWM to the motor analogWrite (ledPin_C.Cafe analogWrite(M2Pin_C. } } analogWrite (ledPin_J. intensity). 0). // Turn OFF analog output . // Continue. // Despliega la DATA en el Monitor Serial *** Comment / Delete this line to reduce Delay Overhead. Hay Vaso. } delay(30). lcd.. HIGH). //Writes PWM to the motor digitalWrite(ledPin_V. // Writes PWM to the motor analogWrite(M2Pin_C. // Turn OFF analog output ( JUGO ) analogWrite(M2Pin_C..photoresistor = analogRead(A0). 0.. 0). // Read Analog Input #5 ( ATmega328 Pin# 28 ) while ( photoresistor < 700 ) { // Wait. // ledPin_V = OFF.photoresistor = "No hay Vaso. // Despliega la DATA en el Monitor Serial delay(5).

lcd... // Output Voltage.. // Output Voltage. lcd.print("Btn_J = ")... // Text. // Text. // Text.println("Btn_C = "). // Text. lcd..print(buttonState_J). lcd.Vaso DisplayDATA ().. lcd.. // Despliega la DATA en el Monitor Serial } // Despliega la DATA en el Monitor Serial void DisplayDATA (void) { /* ledState_V = digitalRead digitalRead(ledPin_V)... lcd. 0). lcd. lcd. lcd. // Text. // Text...digitalWrite(ledPin_V.print(5*buttonState_J*intensity/255).. lcd..print(photoresistor). lcd.print(buttonState_J).. */ Serial....print("Btn_J = ").print("Fr_V= ").. Serial.. // Button_J State. .println(ledState_V). // Photoresistor Value. lcd. // Button_C State..print("/Led_C = "). // Text. // Turn OFF ledPin_V .. // Button_J State.setCursor(0. lcd. // Led_V State. lcd.print("/Led_V= ").. lcd..print(" ").print("/Led_J = "). LOW).print(buttonState_C).print(5*buttonState_C*intensity/255)...clear()..

// Text.materiales de la Máquina Expendedora de jugo y café Cantidad 1 2 1 2 3 1 2 3 2 Materiales Fotoresistor Diodos Arduino Uno Darlington Tip 120 Resistores de 10kΩ Pantalla LCD Bombas de 12 V @ 1 A LED Botones Observaciones: En las tabla #4 solo se hace mención a los componentes electrónicos...println(ledState_V).print(" / Led_C = ")... . } Tabla # . Serial. // Text. Serial...print(" / Led_V = "). Serial.print(" / Led_J = "). // Photoresistor Value... Serial.print(5*buttonState_C*intensity/255).. Serial. Serial.. // Button_C State.print(photoresistor). Serial.....print(buttonState_C). // Output Voltage. // Text.. Serial.. // Text.. // Output Voltage. // Led_V State. // Text.print(" Btn_C = ")..print(5*buttonState_J*intensity/255). Serial..Serial. sin embargo en en el desarrollo del proyecto se utilizaron otros componentes como lo fueron madera y tubería (manguera).print(" Fr_V = ")..

Anexos .