Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Dispensador de Dulces DIY con Arduino: Construye una Máquina de Snacks Inteligente

Componentes y materiales

Herramientas necesarias

Aplicaciones y servicios online

Sobre el proyecto

El proyecto

Un dispensador de dulces sencillo que usa un sensor IR, un servo y un pulsador. Pasos principales:

  1. Montaje del Arduino UNO R3
  2. Programación y configuración
  3. Construcción de la carcasa y partes mecánicas
  4. Instalación de la electrónica
  5. Pruebas y uso

Versión simplificada inspirada en este proyecto con Google Assistant.

Construcción de la caja y partes mecánicas

Paso 1: Distribución de componentes

Coloca todos los componentes sobre cartón para probar conexiones y organizar el cableado (usa colores distintos para identificar cada línea).

Paso 2: Diseño de la caja

Dibuja planos técnicos. Materiales: cartón (laterales, frente, base) y acrílico (trasera). Medidas:

Paso 3: Ensamblaje y recortes

Une las piezas con cinta de enmascarar. Recorta huecos para:

Diseña el conducto de dulces en escalones para que no caigan de golpe.

Paso 4: Montaje de electrónica

Protoboard y Arduino uno detrás de otro, fijados con acrílico para ahorrar espacio.

Paso 5: Instalación de componentes

Coloca LCD, botones, servo y cableado. Añade el interruptor de encendido en la parte trasera.

Paso 6: Acabado final

Cierra la caja y verifica el funcionamiento.

Código

Candy Dispenser.ino

//------LIBRERÍAS------
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>

//------CONFIGURACIÓN------
LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección I2C 0x27, 16 cols, 2 filas
Servo myservo;
int pos = 90;                 // Posición inicial del servo
int buttonCLK = 7;            // Botón "poco dulce"
int buttonAntiCLK = 6;        // Botón "mucho dulce"
int avoidPin = 5;             // Sensor IR (obstáculo)
int set = 0;                  // Estado de selección

void setup() {
  lcd.begin();
  lcd.clear();
  myservo.attach(9);
  pinMode(buttonCLK, INPUT);
  pinMode(buttonAntiCLK, INPUT);
  pinMode(avoidPin, INPUT);
  Serial.begin(9600);
  lcd.backlight();
  lcd.setCursor(3,0); lcd.print("Bienvenido a");
  lcd.setCursor(3,1); lcd.print("Dulce Landia");
  delay(2000);
  lcd.clear();
  lcd.setCursor(0,0); lcd.print("Cuanto dulce?");
  lcd.setCursor(0,1); lcd.print("Poco   Mucho");
  delay(5000);
}

void loop() {
  // Botón "poco"
  if (digitalRead(buttonCLK) == HIGH) {
    lcd.clear(); lcd.print("Coloque vaso"); delay(2000); lcd.clear();
    set = 1;
  }
  // Botón "mucho"
  if (digitalRead(buttonAntiCLK) == HIGH) {
    lcd.clear(); lcd.print("Coloque vaso"); delay(2000); lcd.clear();
    set = 2;
  }
  // Ejecutar según selección
  if (set == 1) IRCLK();
  if (set == 2) IRAntiCLK();
}

void TurnClockwise() {
  Serial.println("Dulce tipo 1 dispensado");
  CandyText1();
  for (pos = 90; pos < 180; pos += 1) { myservo.write(pos); delay(15); }
  if (pos == 180) { delay(2000); ThankYouText(); }
}

void TurnAntiClockwise() {
  Serial.println("Dulce tipo 2 dispensado");
  CandyText2();
  for (pos = 90; pos < 180; pos += 1) { myservo.write(pos); delay(20); }
  if (pos == 180) { delay(3000); ThankYouText(); }
}

void IRCLK() {
  delay(1000);
  boolean avoidVal = digitalRead(avoidPin);
  lcd.setCursor(0,0); lcd.print("Detectando vaso");
  lcd.setCursor(0,14); lcd.print("...");
  if (avoidVal == LOW) { lcd.clear(); lcd.print("Vaso detectado"); delay(2000); TurnClockwise(); }
}

void IRAntiCLK() {
  delay(1000);
  boolean avoidVal = digitalRead(avoidPin);
  lcd.setCursor(0,0); lcd.print("Detectando vaso");
  lcd.setCursor(0,14); lcd.print("...");
  if (avoidVal == LOW) { lcd.clear(); lcd.print("Vaso detectado"); delay(2000); TurnAntiClockwise(); }
}

void CandyText1() { lcd.clear(); lcd.setCursor(4,0); lcd.print("Sirviendo"); lcd.setCursor(1,1); lcd.print("Poco Dulce"); }
void CandyText2() { lcd.clear(); lcd.setCursor(4,0); lcd.print("Sirviendo"); lcd.setCursor(3,1); lcd.print("Mucho Dulce"); }

void ThankYouText() {
  lcd.clear(); lcd.setCursor(5,0); lcd.print("Gracias");
  lcd.setCursor(6,1); lcd.print("Por venir");
  delay(15);
  software_Reset();
}

void software_Reset() { asm volatile ("jmp 0"); } // Reinicio software

Esquemas

Sigue el cableado según el código de colores en la imagen del esquema.

Proceso de manufactura

  1. Bastones de caramelo: historia, producción y la dulce ciencia detrás del clásico navideño
  2. El candy corn: de la tradición a la producción moderna
  3. Rompecabezas (Jawbreaker): Historia, Ingredientes y Elaboración de un Caramelo Duro Clásico
  4. Algodón de Azúcar: Del Clásico Dulce a la Tecnología de Producción Moderna
  5. La Dulce Ciencia de las Gominolas: De la Historia a la Producción Moderna
  6. Caramelos M&M®: De la Invención a la Producción Moderna
  7. Panel de interruptores y LEDs para Microsoft Flight Simulator 2020 con Arduino
  8. Construye un Spybot controlado por Bluetooth con Arduino
  9. FlickMote: Mando IR por gestos para Smart Home
  10. TV‑B‑Gone DIY con Arduino: Mando universal para apagar cualquier TV
  11. Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros