Cómo mantener las señales en los pines de un Arduino al reiniciar el software

1

Tengo una placa Arduino, conectada a un relé. Cuando el pin digital en el tablero está configurado en ALTO, el relé se cierra. Si el pin digital está BAJO, el relé se abre.

Ahora que de vez en cuando, tendré que (el software) reiniciar el Arduino. La actualización del pin digital, y por lo tanto si el relé está cerrado, rebotará abierto. Hasta que la placa Arduino vuelva a enviar una señal.

¿Debo agregar un interruptor / otros componentes eléctricos antes del relé? ¿De tal manera que la señal podría ser "memorizada"?

He pensado en usar un relé de retardo de tiempo. Pero una vez que se invoca, tendrás que esperar hasta que pase el tiempo de retardo para apagarlo ...

    
pregunta MW_hk

2 respuestas

1

Voy a suponer que el controlador AVR en la placa Arduino es similar a la familia de PIC de Microchip, ya que los pines están predeterminados en ENTRADA al reiniciar.

Si esa suposición es correcta, todo lo que necesita es un circuito de muestreo y retención realmente simple para el controlador de relé. También requiere que piense en cómo ha estructurado su software.

Primero, te mostraré el circuito. Luego hablaré sobre las implicaciones del software.

simular este circuito : esquema creado usando CircuitLab

El software es realmente fácil.

1) El controlador acaba de salir del reinicio. Los pines del puerto están configurados actualmente como entrada.

2) Establezca el pin del puerto en el nivel deseado (Hi o Lo)

3) Cambie los pin (s) de puerto DDR a Salida

Tenga en cuenta que el orden anterior es importante si desea evitar fallos. Si establece el pin en Salida primero, luego establezca el nivel, puede haber un problema técnico.

También tenga en cuenta que el circuito introduce un retraso de aproximadamente 1 ms. Supongo que es completamente intrascendente si está conduciendo un relé.

Debes elegir un condensador de baja fuga para C1, pero eso es fácil. El tantalio funciona bastante bien.

    
respondido por el Dwayne Reid
0

Utilice la biblioteca EEPROM, guarde el estado cuando cambie y luego, al encender, lea el estado antes de configurar la salida. Siempre que esta lectura / salida se realice primero en el encendido y luego, durante un reinicio, el período de apagado debe ser lo suficientemente corto como para que no rebote el relé. Si hay algún rebote, puede intentar colocar un condensador a través de la bobina del relé para transportar el relé durante el período de reinicio.

    
respondido por el pwdixon

Lea otras preguntas en las etiquetas