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

2

Para un "circuito de riego de plantas", me gustaría agregar una función de seguridad que evite el riego por más de 3 minutos, y retrasa que el próximo riego ocurra por aproximadamente 12 horas.

Actualmente, el circuito está revisando constantemente el nivel del agua para ver si se debe agregar agua. Por lo tanto, parece que si pudiera crear una onda cuadrada alta durante ~ 12 horas (circuito "apagado" durante este tiempo) y baja durante ~ 3 minutos (circuito "encendido" durante este tiempo), entonces podría usar alguna lógica simple para lograr mi objetivo, excepto que no sé cómo crear esta ola.

Los chips de temporización como el 555 requerirían resistencias y tamaños de condensador difíciles de manejar, por lo que parece que esos por sí mismos no son adecuados.

Estoy considerando el uso de 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 33%, etc.) que no quiero. Más bien, la onda cuadrada que describí anteriormente tiene un ciclo de trabajo de aproximadamente .0042.

¿Alguna sugerencia? Gracias.

    
pregunta Ben

3 respuestas

4

No voy a responder tu pregunta, en cambio, responderé una pregunta que no hiciste :)

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

  • Más barato de construir (sé que parece una locura pero es cierto)
  • Más flexible en la lógica: puede cambiar la lógica con unos pocos clics del mouse
  • Más compatible: para muchas personas 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 : comienza en aproximadamente $ 11 para Arduino Nano en ebay / DealExtreme , programable a través del puerto USB, más entradas y salidas de las que sabrá qué hacer con ellas. Programado en C / C ++
  • AVR puro: alrededor de $ 2 para el chip mínimo, pero requiere una inversión de aproximadamente $ 20 para un programador de ISP. Programado en C / C ++ o Asamblea.
  • PICAXE . ¿Ya los hacen? Programado en BASIC o Flowchart. Alrededor 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 contra PC de hace unos años. Soy una persona AVR, pero hay un número de personas PIC en este foro, así que si sigues esta ruta también hay mucha ayuda.

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 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 ( Cortex M , Propeller y muchos otros) pero las opciones mencionadas en las viñetas anteriores son las más fáciles de comenzar, IMHO.

* Esto solo es cierto en un 99.9% porque algunos Arduino's usan chips Atmel que no son AVR.

Por cierto, no estoy sugiriendo que abandone sus circuitos existentes y use un microcontrolador para todo (ya sea una buena idea o no, no es relevante para su pregunta). Puede usar un microcontrolador con el fin de no inundar su casa o regar sus planes como se indica en sus objetivos de diseño. Así es como se vería su solución en el pseudocódigo de 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 sofisticación que puede agregar, como la suspensión, la implementación del temporizador de despertar 12 como una interrupción, etc.

    
respondido por el angelatlarge
0

¿Qué hay de usar un contador para implementar una función similar (no está calibrada durante 12 h, pero puedes tener una idea)?

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

Puede afirmar que la salida es alta cuando tanto el bit "grande" es verdadero, y cuando todos, salvo los pocos bits más bajos, son cero. Esto le dará un pulso corto después de que el bit alto cambie (después de 12 horas), y luego vuelva a caer relativamente rápido a cero (después de unos minutos). Podría hacerse con un contador y un puñado de AND gates.

    
respondido por el Tim
0

Ya que indica que es un proyecto y, por lo tanto, no es posible tomar las soluciones fáciles y obvias ( solo compre un enchufe del temporizador de alimentación por $ 5 o use un micro y enrolle el suyo ) puede usar un contador Lógica combinada o de chip (registro de desplazamiento) que se ejecuta desde un pulso de reloj muy lento (~ 1Hz o menos).

Su ciclo de trabajo de ~ 0.0042 significa que un contador de 8 bits cronometrado en tics de 3 minutos le daría el resultado deseado. Le dejaré los detalles de la creación de la condición de activación y salida de 3 minutos para usted, de lo contrario no sería un proyecto;)

    
respondido por el John U

Lea otras preguntas en las etiquetas