2 votos

cómo crear una onda cuadrada de gran duración y alto ciclo de trabajo

Para un "circuito de riego de plantas" me gustaría añadir una característica de seguridad que impida el riego durante más de ~3 minutos, y retrase el siguiente riego durante ~12 horas.

Actualmente, el circuito comprueba constantemente el nivel de agua para ver si hay que añadirla. Por lo tanto, parece que si pudiera crear una onda cuadrada que sea alta durante ~12 horas (circuito "apagado" durante este tiempo) y baja durante ~3 minutos (circuito "encendido" durante este tiempo), entonces podría utilizar algo de lógica simple para lograr mi objetivo, excepto que no sé cómo crear esta onda.

Los chips de sincronización como el 555 requerirían tamaños de resistencias y condensadores poco manejables, por lo que parece que no son adecuados por sí mismos.

Estoy considerando la posibilidad de utilizar fichas de contador, ya que podría alcanzar el período que necesito (~12 horas). Sin embargo, estos producen un ciclo de trabajo del 50% (o del 33%, etc.) que no quiero. Más bien, la onda cuadrada que he descrito anteriormente tiene un ciclo de trabajo de alrededor de 0,0042.

¿Alguna sugerencia? Gracias.

4voto

No voy a responder a tu pregunta, sino que voy a responder a una pregunta que no has hecho :)

Usted podría implementar una solución basada en un temporizador. Sin embargo, en realidad va a ser más barato y más eficaz utilizar un microcontrolador para su problema. Las ventajas de una solución con microcontrolador son:

  • Más barato de construir (sé que parece una locura pero es cierto)
  • Mayor flexibilidad en la lógica: puede cambiar la lógica con unos pocos clics del ratón
  • Más apoyable: para mucha gente es más fácil ver el código de la aplicación que entender por qué la constante de tiempo RC no se comporta como debería.

Algunas soluciones para pensar en el mundo de los microcontroladores:

  • Arduino : a partir de unos 11 dólares para el Arduino Nano en ebay / DealExtreme programable a través del puerto USB, más entradas y salidas de las que sabrás qué hacer. Programado en C/C++
  • AVR puro: alrededor de $2 for the minimum chip, but requires ~$ 20 de inversión para un programador de ISP. Programado en C/C++ o en ensamblador.
  • PICAXE . ¿Ya no los fabrican? Programado en BASIC o Diagrama de Flujo. Acerca de $3-$ 5 para empezar. Programado con nada más que un puerto serie.
  • Microprocesadores PIC. Similar a AVR, pero es una especie de Mac vs PC de hace unos años. Yo soy una persona de AVR, pero hay un número de personas PIC en este tablero, así que si usted va esta ruta hay un montón de ayuda también.

Básicamente, Arduino es un AVR más fácil de usar \$^*\$ y PICAXE es un PIC más fácil de usar. Entre Arduino<->PIXAXE, Arduiono gana en popularidad sin lugar a dudas: Arduino es extremadamente popular y está bien soportado. Entre las plataformas subyacentes (PIC/AVR), no está claro: ambas son populares. También hay otras opciones de microcontroladores( Corteza M , Hélice y muchos otros), pero las opciones mencionadas en las viñetas anteriores son las más fáciles de empezar, en mi opinión.

* Esto sólo es cierto en un 99,9% porque algunos Arduino utilizan chips Atmel que no son de AVR.

Por cierto, no estoy sugiriendo que te deshagas de tus circuitos existentes y utilices un microcontrolador para todo (si eso es una buena idea o no, no es relevante para tu pregunta). Puedes usar un microcontrolador con el propósito de que no se inunde tu casa ni se sobrecarguen tus planes como se indica en tus objetivos de diseño. Aquí está lo que su solución se vería en el pseudocódigo del microcontrolador:

loop:
   have 12 hours passed?
      yes: turn on output for 3 minutes
      no: don't do anything
   go back to loop:

Hay todo tipo de sofisticaciones que se podrían añadir, como el sueño, la implementación del golpe del temporizador wake 12 como una interrupción, etc.

0voto

user10765 Puntos 121

Qué tal si usas un contador para implementar una función algo así (no está calibrado para 12h pero te puedes hacer una idea):

out = counter[10] && counter[9:4] == 0

Se puede afirmar que la salida es alta cuando tanto el bit "grande" es verdadero, como cuando todos los bits, excepto los más bajos, son cero. Esto te dará un breve impulso después de que el bit alto cambie (después de 12 horas), y luego caerá relativamente rápido a cero de nuevo (después de unos minutos). Se podría hacer con un contador y un puñado de AND puertas.

0voto

Mario Puntos 191

Ya que afirmas que es un proyecto y por lo tanto tomar las soluciones fáciles/obvias no es posible ( sólo tienes que comprar un enchufe para el temporizador de la red por 5 dólares o utilizar un micro y rodar su propio ) podrías utilizar un chip contador o una lógica combinacional (registro de desplazamiento) que funcione a partir de un pulso de reloj muy lento (~1Hz o menos).

Tu ciclo de trabajo de ~0,0042 significa que un contador de 8 bits con una frecuencia de 3 minutos te daría el resultado deseado. Voy a dejar los detalles de la creación de la condición de activación de 3 minutos y la salida a usted, de lo contrario no sería un proyecto ;)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X