Medidor de Chug (St. Patrick's Day) – Dispositivo para Medir Velocidad de Beber con Circuito.io
Componentes y Suministros
| Resistor Fuerza Sensible (FSR) 0.5" SparkFun | × | 1 |
| Pulsador Mini SparkFun | × | 1 |
| Arduino UNO | × | 1 |
| Display Serial 7 Segmentos SparkFun (Rojo) | × | 1 |
| Mini Altavoz Piezo 12mm 2.048kHz SparkFun | × | 1 |
Aplicaciones y Servicios Online
- circuito.io (generador automático de circuitos)
- Arduino IDE
Sobre este Proyecto
Ideación
¿Quién bebe más rápido? ¡Resolvámoslo de una vez! Para el Día de San Patricio, creamos el Chug Meter. *Bebe con responsabilidad.*
Primero construye el contador, luego empieza a beber.
Montaje del Circuito
Circuito simple: FSR, Pulsador, Piezo, Display 7 segmentos. Usa el enlace mágico a circuito.io con componentes pre-seleccionados.
Tras clicar Generar, revisa: Lista de materiales (BoM), Guía de cableado paso a paso y Código. Sigue las instrucciones.
Modificaciones Posibles
- Cambiar display 7 segmentos por LCD.
- Sustituir FSR por diodo IR.
- Añadir LED RGB.
Pasos Finales
- Reemplaza el código de ejemplo de circuito.io por el código adjunto (pega en pestaña Firmware).
- Pega el FSR bajo el posavasos. Al levantar la pinta (fuerza liberada) empieza el cronómetro; al posarla se para. Reinicia con el pulsador.
- Imprime en 3D la carcasa del display.
- ¡A beber (responsablemente)!
Código
int start_flag = 0; bool glassState = 0; long finalTime, time0; int timer;
void setup() {
Serial.begin(9600); Serial.println("start");
pushButton.init();
s7s.clearDisplay(); s7s.setBrightness(255);
s7s.setDecimals(0b00010000); // dos puntos
s7s.writeInt(0);
}
void loop() {
float fsrForce = fsr.getForce(); // en gramos
Serial.print("Force: "); Serial.print(fsrForce); Serial.println(" [g]");
bool pushButtonVal = pushButton.onPress();
if (pushButtonVal == 1) { // Reset
start_flag = 0; glassState = 0;
s7s.writeInt(0); time0 = millis();
}
if (start_flag == 0) {
if (fsrForce > 50) { // Vaso puesto
glassState = 1; s7s.writeInt(0); time0 = millis();
} else if (fsrForce < 50 && glassState) { // Vaso levantado
finalTime = millis() - time0; start_flag = 1;
}
} else if (start_flag == 1) { // Bebiendo
if (fsrForce < 100) {
finalTime = (millis() - time0) / 10; // centisegundos
s7s.writeInt(finalTime);
} else { // Vaso posado -> fin
start_flag = 2;
finalTime = (millis() - time0) / 10;
s7s.writeInt(finalTime);
piezoSpeaker.playMelody(piezoSpeakerHoorayLength, piezoSpeakerHoorayMelody, piezoSpeakerHoorayNoteDurations);
delay(500);
}
} else { // Mostrar tiempo final hasta reset
s7s.writeInt(finalTime);
}
}
Esquemáticos
Generados automáticamente por circuito.io. Ver enlace en tutorial original.
Proceso de manufactura
- Honrando a Quienes Dieron su Vida por Nuestra Libertad
- Diseño para Fabricabilidad (DFM): Guía Práctica para Ingenieros y Diseñadores
- SIGHT: Gafas Inteligentes para Capacitar a Personas Ciegas
- Mando USB para juegos DIY con Arduino – Construye tu propio gamepad de alto rendimiento
- Disfraz de nube DIY: Tira LED, Arduino Nano y componentes SparkFun
- Robot industrial seguidor de línea para transporte de materiales
- Botella de agua inteligente con Arduino: Monitorización en tiempo real y alertas
- Prepárese para el Día de la Manufactura 2018: Celebre la Innovación y Oportunidades Profesionales
- Día de la Manufactura 2021: Tu Invitación a Explorar el Evento Principal del Sector
- Cómo elegir el medidor de flujo adecuado: Guía práctica y definitiva
- Isabellenhütte presenta IEM-DCC: Medidor DC calibrado para facturación precisa de carga rápida EV