Una máquina pequeña Tea Timer (TTT) para Arduino y ATtiny (1 / 3 paso)

Paso 1: Funcionalidad diseño y programación

La idea de la funcionalidad de la escritura de Arduino puede verse en este gráfico.

  • Después de conectar la alimentación el motor servo se mueve a la posición inicial y espera a que un té
    bolsa para fijarse.
  • A continuación, pulse el botón varias veces – una vez por cada minuto de elaboración de la cerveza.
  • Cuando el botón no está pulsado más de 2 segundos el motor servo se mueve para la elaboración de la cerveza
    posición y el conteo comienza.
  • Cuando el tiempo de preparación es sobre el motor servo retrocede poner fin a posición (igual que la posición de partida) y puede ser desconectado la alimentación.

He proporcionado 2 versiones de la secuencia de comandos.

La primera se implementa para una placa Arduino estándar y estaba en uso por algún tiempo y es ideal para la fabricación de
cambios en el programa sin un programador. El otro está implementado para el uso de un procesador ATtiny85.

Comenzó como una simple versión muy similar a las secuencias de comandos de software que usted puede encontrar en los otros ejemplos. Pero resultó que tenía que haber algunas adiciones para que sea realmente útil para el uso diario se que tenía varios requisitos más a implementarse. Estas versiones mejoradas están disponibles aquí.

Una máquina de Estados pequeños

El programa siempre debe conocer la situación actual de la hora cuando se enciende, hasta que el tiempo de elaboración de la cerveza. Por lo tanto es una variable global llamada Estado que puede tomar el valor apropiado correspondiente a la situación:

Estado de uint8_t;

En la imagen superior puedes ver cómo se utilizan los Estados. Es una implementación directa excepto de la repetición cuando se pulse el botón varias veces durante la fase de programación.

Para tener una buena legibilidad de los posibles valores de estado se definen en la sección constante de la secuencia de comandos:

#define STATE_INIT 0 x 00 / / / < esperando el primer botón hacia abajo
#define STATE_DOWN 0 x 10 / / / < se presiona el botón
#define STATE_UP 0x11 / / / < soltarlo así incrementar la hora del té por uno.
#define STATE_ENTER 0x21 / / / < entrar en la preparación de la fase mostrando el número de minutos
#define STATE_BREW 0x22 / / / < entra el bolso de té y esperar hasta el final del tiempo de preparación
#define STATE_END 0x99 / / / < Preparación tiempo terminada.

Servo posiciones de bolsa de té

Las posiciones que necesitamos para el servo tienen que encontrar por ensayo y error, ya que dependen del diseño concreto del temporizador de té y el servo. Para un diseño simple 2 posiciones son suficientes (inicial y ENTER). Se definen en la sección constante de la secuencia de comandos:

#define TEABAG_INITIAL 95
#define TEABAG_ENTER 65
#define TEABAG_DIP 70
#define TEABAG_OUT 83

Estas son las posiciones para el estado inicial sujetar una bolsa de té, la posición de preparación, un pequeño movimiento que fue solicitado por algunos usuarios y la posición de fuera, no demasiado alta para que las últimas gotas pueden caer en la jarra de té. Al final se mueve el servo a la posición inicial para soltar la bolsa de té.

El servo en movimiento lentamente

La mayoría deseaba mejora desde la primera versión era hacer el servo mueve lentamente en lugar de la simple "tan rápido como sea posible" versión en primera versión. Por lo tanto, el método tbSetPosition no mueve el servo directamente pero en cambio registra la posición de destino en una variable global. Luego de vez en cuando mediante una llamada a la función tbCheckPosition la posición actual del servo es modificada por 1 en la dirección deseada. Por último, cuando el servo ha alcanzado la posición de destino se separa el servo para ahorrar energía.
Las variables tbPosition y tbPositionNext almacenan la corriente y la posición deseada.

Mover el servo bajo carga pesada

La primera versión independiente el servo inmediatamente después de la mudanza a la nueva posición. Sin embargo con carga pesada el servo no llegar a su destino de manera confiable. Esto fue solucionado mediante el uso de la variable timer específicos tbLastMove que siempre se establece en el momento actual después de mover el servo.

El servo es independiente 400 mseg. después del último movimiento.

Ver el tiempo

La forma más fácil para el control de las funciones dependientes del tiempo es utilizar la función millis() que devuelve el número de milisegundos transcurrido desde el inicio.

Utilizo esta función para obtener la "hora actual" y se compara con la última vez cuando algo interesante ha sucedido.

Cada vez que inicie la función loop(), la variable ya está definida y la duración de la fase actual se calcula utilizando las variables:

sin firmar largo ahora;
sin firmar largo comenzó;
duración largo sin firmar;

Este enfoque es por mucho mejor que usar la función delay() de aplicación general mecanismo de sincronización. Sin embargo, a veces es simplemente más fácil de usar por ejemplo delay() para encender el LED y algunos milisegundos en espera hasta que consiguió mover el servo.

Hay algunas constantes de tiempo definidos en el encabezado del boceto que se puede ajustar a sus necesidades:

#define MSECS_TO_START 2000 / / / < cuando botón no está pulsado desde 2 segundos, el inicio de elaboración de la cerveza.
#define MSECS_FOR_DROPS 10000 / / < el número de segundos que la bolsa está cerca sobre la jarra de té.
#define MSECS_TO_DETACH 400 / / / < después de 400 milisegundos de ningún movimiento del servo se separa para ahorrar energía.

El mínimo tiempo en milisegundos que una pulsación tiene que durar tomando serias está programado como 50. Sucede a menudo que un botón no cambia la señal en forma adecuada pero rebota una vez o dos veces antes de cerrar completamente. Estas pequeñas secuencias rápidas sólo se omiten.

Antes de encender el LED parpadea una vez por cada minuto de tiempo de elaboración de la cerveza.

RESET e inténtalo de nuevo

A veces sucede que los TTT no arranca correctamente porque el bolso de té salta o no le gusta ir el número de minutos programados de buceo estaba equivocado. En este caso tienes que apagar y volver a conectar.

He incluido más comentarios en el código fuente. Leer y modificar...

Artículos Relacionados

Cómo cablear una máquina CNC de 3 ejes basados en arduino

Cómo cablear una máquina CNC de 3 ejes basados en arduino

He visto una serie de tutoriales sobre cómo construir la plataforma para una fresadora CNC de 3 ejes.  No he visto a nadie abordar al complicado tema de la electrónica.Aquí ahora es mi intento de hacerlo.Paso 1: partesNecesitarás:-un arduino. Elegí d
Cómo replicar una máquina de "Trébol" en casa para baratos

Cómo replicar una máquina de "Trébol" en casa para baratos

para aquellos de ustedes que no saben, un "trébol" es una nueva máquina que crea una experiencia de café muy suave. La ventaja de un trébol real son que usted puede controlar la temperatura exacta del agua, así como durante mucho tiempo el café
Convertir una máquina de pinball de la década de 1970 en un despertador atómico sincronizado usando un gps y un arduino

Convertir una máquina de pinball de la década de 1970 en un despertador atómico sincronizado usando un gps y un arduino

Uno de los problemas más comunes enfrentados por coleccionistas de pinball es poner otro. El pensamiento vino a mí un día - ¿qué pasa si yo podría volver a propósito la máquina de pinball? Entonces podría reemplazar un dispositivo existente con el pe
7 usos para una máquina + cómo hacer uno de calentamiento por inducción

7 usos para una máquina + cómo hacer uno de calentamiento por inducción

En este instructable, les mostraré cómo hacer una máquina y 7 diferentes usos para él de calentamiento por inducción. Calentamiento por inducción tiene muchas aplicaciones prácticas y lo que uno es increíblemente simple. En primer lugar, voy a entrar
Tres pequeñas torres - una máquina de la bola de K'nex

Tres pequeñas torres - una máquina de la bola de K'nex

una máquina de la bola de k'nex pequeño, apenas para la diversión!Paso 1: El marco Paso 2: El ascensor Paso 3: El camino separador Paso 4: Ruta 1 Paso 5: Ruta 2 Paso 6: Ruta 3 Paso 7: Ruta 4 Paso 8: Últimas piezas
Rampa doble: una máquina de la bola de KVG pequeño e inútil

Rampa doble: una máquina de la bola de KVG pequeño e inútil

Bienvenidos a mi segundo instructable siempre! Esta es una versión modificada del proyecto de S para que Jollex, si estás leyendo esto, gracias por la máquina de gran bola!Paso 1: Base 1-2.Make esto.3-5.Make esto.Paso 2: Motor y cadena 1-7.Make8 hace
Cómo construir una máquina de Arcade en 4 minutos

Cómo construir una máquina de Arcade en 4 minutos

El video de arriba muestra todos los pasos descritos en este instructable así que por favor ver el video antes de leer más.Bueno, en realidad, es sólo el video que dura 4 minutos, pero la construcción tomó cerca de 200 horas. Pero si va a hacerlo, no
Extender la vida útil de una máquina de lavar

Extender la vida útil de una máquina de lavar

después de una docena de años de uso, la lavadora deja de funcionar durante lo que debería ser el ciclo de centrifugado.  El temporizador necesita recambio, pero puede dar una extensión temporal de la vida para llevarnos a través de unas cargas más h
Pequeña caja Tim Pillow

Pequeña caja Tim Pillow

Saludar a Tiny Tim de la caja, un personaje del universo de los Markiplier. Markiplier ser un bastante vamos a jugador famoso en youtube. Esencialmente esto significa que juega vídeo juegos y conversaciones, que se graba y poner en youtube para nuest
No te asustes: Bordar una toalla con una máquina de coser estándar, al igual que un Hoopy Frood

No te asustes: Bordar una toalla con una máquina de coser estándar, al igual que un Hoopy Frood

Bordar toalla de pánico no para celebrar el día de la toalla, un tributo anual al último autor Douglas Adams que se celebra cada 25 de mayo. Estas toallas pueden colgar tranquilamente en su cuarto de baño o ir en aventuras contigo. Incluso si usted n
Una máquina que escucha

Una máquina que escucha

Si lo piensas, máquinas y equipos son como nosotros en muchos aspectos, tienen cerebros (procesadores), ojos (cámaras), orejas (micrófonos), etc. La máquina sentidos es una serie de artefactos que pretenden revertir la perspectiva en la forma en que
Cómo hacer una máquina de CNC de tres ejes (barato y fácil)

Cómo hacer una máquina de CNC de tres ejes (barato y fácil)

la idea detrás de este Instructable fue cumplir con mi deseo para máquina CNC una computadora de escritorio. Aunque hubiera estado bueno comprar un fuera de la estantería la cuestión de precio como tamaño probó prohibitiva. Con esto en mente me esfor
Cómo a Hilvanar el aerosol una máquina y colcha edredón lo demasiado!

Cómo a Hilvanar el aerosol una máquina y colcha edredón lo demasiado!

Crecí con tías y una madre que amó a coser. Fawn sobre telas y patrones en reuniones familiares. Incluso en noviembre pasado, fuera vino mi tía de su cuarto de costura con un puñado de patrones que la mayoría de las mujeres en la oogled de la casa.Mi
Cómo coser (usando una máquina de coser)

Cómo coser (usando una máquina de coser)

cuando cumplí 13, mi madrastra, Cassandra, me hizo el mejor regalo de cumpleaños siempre (aún así, hoy en día, me siento), una máquina de coser! Inmediatamente enseñó a coser y en los próximos 27 años, creó todo desde pequeñas carteras poco a enormes