El Pomoduino hace un temporizador Pomodoro alimentado por Arduino

El Pomoduino hace un temporizador Pomodoro alimentado por Arduino / Bricolaje

La técnica pomodoro cortó a través de la dilación con estas aplicaciones de la técnica Pomodoro y el software demoró con estas aplicaciones de la técnica Pomodoro y la dilación del software es una enfermedad que invade a estudiantes y trabajadores en todos los rincones del mundo e infecta a aficionados y profesionales por igual. Como escritor, sufro de dilación a diario. Algunas personas ... Leer más es un sistema de administración de tiempo popular que consiste en dividir el trabajo en fragmentos de 25 minutos con un descanso de 5 minutos. Existe una variedad de software para ayudar con esto, pero ¿qué sucede si desea utilizar el sistema pomodoro mientras está trabajando lejos de su computadora, o mientras está en su mesa de trabajo? Hacer un temporizador pomodoro con Arduino es un gran proyecto introductorio. 15 Grandes proyectos de Arduino para principiantes. 15 Grandes proyectos de Arduino para principiantes. ¿Interesado en Arduino pero no sabe por dónde empezar? ¡Aquí están algunos de nuestros mejores proyectos de Arduino para que comiencen los principiantes! Lee más para ayudarte a aprender a manejar un Arduino, y en realidad resultará en algo útil.

La meta

En caso de que desee intentar averiguar cómo configurar esto antes de mirar hacia adelante, esto es lo que estamos tratando de hacer. Tendremos tres luces; uno para “trabajo,” uno para “descanso,” y una luz de advertencia. La luz de trabajo permanecerá encendida durante 25 minutos, y la luz de advertencia también estará encendida durante los últimos dos minutos de ese intervalo. Después de 25 minutos, las luces de trabajo y de advertencia se apagarán y la luz de interrupción se encenderá durante 5 minutos (la luz de advertencia volverá a encenderse durante los últimos dos minutos).

También se incluirá un botón que demorará el cambio de luces durante dos minutos para darle un poco más de tiempo de trabajo o descanso..

Que necesitas

Para este proyecto, usaremos las siguientes partes, todas las cuales debería tener en su kit de inicio.

  • Microcontrolador Arduino (usamos un Mega, pero Uno también funcionaría bien)
  • Tablero de circuitos
  • cable USB
  • 6 cables
  • 3 x 330 ohmios de resistencia
  • 3 x LED (hemos usado verde, amarillo y azul)
  • 1 pulsador

Paso 1: Preparando todo

Coloque cada uno de los LED en una columna diferente en el tablero (es más fácil si están separados un poco), y coloque el botón un poco más abajo. Asegúrese de que el botón esté orientado en la dirección correcta; hay dos conjuntos de dos clavijas en un solo lado del botón, y esas clavijas deben estar en la misma fila.

Pase los cables de los pines 5, 7 y 13 a la columna que contiene la pata negativa de los LED azul, amarillo y verde (la pata negativa es la más corta de las dos). A continuación, coloque un resistor en la misma columna que cada pata positiva y conéctelos al riel negativo en el lado de la placa de pruebas (el azul, aunque el color no importa realmente, solo es una convención usar el azul para mayor claridad).

También pase un cable desde el riel azul de la placa de pruebas hasta una de las patas del botón, y otro cable desde la otra pierna (en el mismo lado) hasta el pin 2 en el Arduino. A continuación, conecte a tierra el riel azul en el pin GND en el Arduino.

Aquí hay un diagrama que debería aclarar cualquier confusión:

¡Eso es! Ahora a la programación.

Programando tu Arduino

A continuación se muestra el código del temporizador Pomoduino: lea los comentarios en línea, ya que explican lo que hace cada paso del código..

 int verde = 13; int amarillo = 7; int azul = 5; int ledStateGreen = LOW; int ledStateBlue = LOW; larga previaMillis = 0; intervalo largo int buttonPin = 2; int buttonState = 1; bool presionado = 0; long press time = 0; fase int = 0; configuración de nulos () pinMode (verde, SALIDA); pinMode (amarillo, SALIDA); modo de pin (azul, SALIDA); pinMode (buttonPin, INPUT_PULLUP); digitalWrite (buttonPin, HIGH);  void loop () // actualizar la hora actual y el estado del botón long sin signo currentMillis = millis (); int buttonState = digitalRead (buttonPin); // medir el tiempo desde el último botón presionando long progress = currentMillis - previousMillis; // verifique si se presionó el botón // durante más de 2 segundos desde la última vez que presionó // (para evitar que se registren varias pulsaciones) si ((pressTime - currentMillis)> 2000) if (buttonState == 0) presionado = 1; pressTime = currentMillis; else presionado = 0; // fase 0 es "trabajo" fase // si se presionó el botón, agregue 2 minutos al temporizador de trabajo si (fase == 0) si (presionado == 1 ) intervalo = 1620000; // si se termina el intervalo, registre // el tiempo actual para medir el siguiente intervalo si (currentMillis - previousMillis> interval) previousMillis = currentMillis; // establece los estados LED verde y azul si (ledStateGreen == LOW) ledStateGreen = HIGH; ledStateBlue = LOW; else ledStateGreen = LOW; // aplica los estados de los LED a los LED // intervalo de reinicio y cambia a la fase "break" digitalWrite (verde, ledStateGreen); digitalWrite (azul, ledStateBlue); intervalo = 1500000; buttonState = 1; fase = 1;  else else // si se presionó el botón, agregue 2 minutos para interrumpir el temporizador si (presionó == 1) intervalo = 420000; // si el intervalo ha terminado, registre el tiempo actual // para medir el siguiente intervalo si (currentMillis - previousMillis> intervalo) previousMillis = currentMillis; // establece los estados del LED azul y verde if (ledStateBlue == HIGH) ; ledStateBlue = LOW;  else ledStateBlue = HIGH; ledStateGreen = LOW; // aplica los estados de los LED a los LED // restablece el intervalo y configura en la fase de "trabajo" digitalWrite (verde, ledStateGreen); digitalWrite (azul, ledStateBlue); intervalo = 300000; buttonState = 1; fase = 0;  // calcular el tiempo restante en el intervalo sin firmar largo tiempo Izquierda = (intervalo - progreso); // si quedan menos de dos minutos, encienda el LED amarillo si (timeLeft) < 120000)  digitalWrite(yellow, HIGH);  else  digitalWrite(yellow, LOW);  // reset pressed variable pressed = 0; 

Nota: cuando esté probando esto, es probable que no desee esperar 25 minutos para ver si funciona. En el video a continuación, tengo los intervalos establecidos en 5 segundos para verde, 2 segundos para azul y 1 segundo para amarillo. Use un intervalo más corto para asegurarse de que todo funcione correctamente antes de usarlo para mantener un registro del tiempo!

Una vez que tenga todo conectado y el código ingresado en el IDE, ¡estará listo para comenzar! Sube el boceto y tendrás un temporizador de pomodoro en funcionamiento con un botón de retraso de 2 minutos. Si la luz de advertencia se enciende y necesita más tiempo, simplemente presione el botón.

Puede notar que el botón está conectado directamente al pin de entrada de Arduino. Al usar una de las resistencias pullup integradas en el Arduino, no necesita conectar un cable desde el puerto de 5V al botón o usar una resistencia en línea con él. Puede obtener más información sobre la referencia de Arduino para pines digitales..

Desafíos más avanzados

Si has hecho tu Pomoduino y estás buscando algo más avanzado, puedes probar lo siguiente:

  • Agregue una secuencia de LED que se enciendan y sirvan como contador del número de sesiones de trabajo completadas
  • Haga que el botón agregue dos minutos al temporizador cada vez que lo presione.
  • Agregue un altavoz y escuche un sonido cuando llegue el momento de volver al trabajo
  • Usa una batería de 9V para que sea portátil.
  • En lugar de usar una luz de advertencia, parpadea la luz verde o azul durante unos minutos antes de cambiar
  • Mostrar una cuenta atrás en una pantalla LED

Otros grandes proyectos para principiantes

Si eres nuevo en Arduino, tenemos muchos tutoriales divertidos para que los tomes. Pruebe un controlador de semáforo Arduino Programación para principiantes: El controlador de semáforo Arduino Programación para principiantes: El controlador de semáforo La semana pasada, aprendimos sobre la estructura básica de un programa Arduino y observamos de cerca el ejemplo de "parpadeo". Esperemos que haya aprovechado la oportunidad para experimentar con el código, ajustando los tiempos. Esta vez,… Leer más, un cubo de LED futurista Cómo hacer que un cubo de Arduino LED pulsante que parece que viene del futuro Cómo hacer un cubo de Arduino LED que pulsa que parece que viene del futuro Si has incursionado con algunos El principiante Arduino proyecta, pero está buscando algo un poco permanente y en otro nivel de asombroso, luego el humilde cubo de 4 x 4 x 4 LED es… Leer más, una alarma de amanecer Arduino Night Light y Sunrise Alarm Proyecto Arduino Night Light y Proyecto de alarma de amanecer Hoy, haremos un reloj de alarma de amanecer, que lo despertará suave y lentamente sin recurrir a una máquina ofensiva para hacer ruido. Leer más, o un sistema de alarma Cómo hacer un sistema de alarma Arduino simple Cómo hacer un sistema de alarma Arduino simple Detectar el movimiento, luego asustar a un intruso con sonidos de alarma agudos y luces parpadeantes. ¿Suena divertido? Claro que lo hace. Ese es el objetivo del proyecto Arduino de hoy, adecuado ... Leer más. Si decide enfrentarse a uno de los desafíos más avanzados enumerados anteriormente, háganos saber cómo le va.!

Explorar más acerca de: Arduino, gestión del tiempo, software de temporizador.