RC Delay Ciruit para encendido de Pi

0

Estoy un poco desafiado electrónicamente y necesito mantener un pin de entrada alto durante unos 8-10 segundos. Estoy implementando esta solución: enlace , que funciona bien, pero tengo que mantener la encienda el interruptor durante 10 segundos antes de que el Pi establezca el pin UART alto (y lo mantenga alto). Miré una explicación de los circuitos RC, y parece que todos tienen el mismo retardo de carga que el retardo de descarga. Tal vez necesito un diodo en alguna parte? Básicamente, me gustaría que el condensador se cargue rápidamente y que se descargue lentamente a través de la resistencia.

SiguiendolasugerenciadeFlàvio,¿puedealguiendecirmesiusaruntransistorparaelaislamientofuncionará,algocomoesto?Elresultadoesperadoes:

  • presionarelinterruptor
  • Cargasdelcondensador
  • Cuandosesueltaelinterruptor,elcapacitormantienelabasedeltransistorenaltohastaqueGPIO14seponeenaltodebidoalencendidodelaRaspberryPi.
  • Enelmomentoenqueelcondensadortendríadescargado,GPIO14asumeelcontroldelconductordeltransistor,yENsiguesiendoalto.
  • Paraapagar,cuandosepresionanuevamenteelinterruptor,elRaspberryPileeGPIO18yunasecuenciadecomandosleindicaaPiquefuncioneabajo
  • Despuésdelapagado,GPIObaja,elcondensadorsedescargayelpowerboostcortaelpoderalaPi.

(orientación fija del transistor)

    
pregunta svenyonson

4 respuestas

0

Gracias a todos por vuestras sugerencias. He encontrado una solución simple como se muestra a continuación. Desde el principio tuve una solución similar, pero los valores de RC eran tales que la resistencia (2M) era un valor demasiado alto para funcionar como un menú desplegable, por lo que la EN siempre era alta, lo que mantenía el Pi encendido. Gracias a Douwe66 por darme la idea de usar un condensador de valor más alto (100uf), que me permite usar el desplegable de 100K existente para completar la red RC. Y el uso de un divisor de voltaje en lugar de dos diodos en serie para reducir el voltaje para GPIO 18 en realidad redujo el conteo de componentes. La solución de Wesley pudo haber funcionado, pero el recuento de componentes era demasiado alto.

Habría aceptado la primera solución de Dowwe66, excepto que dejó a GPIO 18 alto todo el tiempo (lo que provocaría que Pi se cerrara inmediatamente después de que el daemon del monitor de apagado se activara) y también que el UART TX no se puede usar como un camino a tierra para el pulldown EN (la resistencia interna mientras está apagado es de aproximadamente 27M).

En general, aprendí mucho y ahora tengo una solución funcional. Gracias!

    
respondido por el svenyonson
1

Al agregar el condensador C1 puede lograrlo. Tenga en cuenta que el tiempo que tarda en vaciarse el condensador es aproximadamente R * C, en mi ejemplo a continuación, aproximadamente 10 s.

La desventaja de usar este enfoque es que también tomará tanto tiempo apagar el circuito como sea necesario el mismo tiempo RC.

Una nota sobre su esquema original: los dos diodos en serie son una forma muy sucia de disminuir el voltaje (si es que baja el voltaje), puede usar mejor el divisor resistivo (R2 y R3) que se muestra en mi esquema , con los valores correctos en función de su batería.

simular este circuito : esquema creado usando CircuitLab

Editar: Personalmente, usaría el pin UART para encender el circuito y otro para apagar el circuito. Podrías usar GPIO18 para apagar el circuito en realidad. Al configurarlo como entrada por defecto, y solo usarlo como salida cuando se desea apagar el circuito. Su circuito se reduciría al siguiente, con un tiempo de apagado rápido (R2 * C1 = 2s).

simular este circuito

    
respondido por el Douwe66
0

simular este circuito : esquema creado usando CircuitLab

Puede usar este circuito para tener una carga rápida y calcular R para hacer que la descarga sea tan lenta como lo desee activando Q2 desde un pin del microcontrolador o cualquier señal digital.

EDITAR: Vout es el voltaje en C1.

    
respondido por el Flávio Alegretti
0

Hmm, tu transistor está al revés. No he comprobado el resto del funcionamiento de su circuito.

¿Puede conducir un GPIO bajo a la derecha antes de apagarse? ¿Por qué no intentas esto?

simular este circuito : esquema creado usando CircuitLab

R3 mantiene apagado M1.

Cuando alguien presiona SW, activa M1, lo que mantiene M2 activado (que mantiene M1 activado después de que se libera SW).

D1 evita que M2 tire del botón de lectura baja, por lo que R1 tira del botón de lectura alta Cuando alguien presiona SW de nuevo, lees un "Bajo".

A continuación, puede conducir bajo "Apagado". M2 se apaga, R3 apaga M1. Habilitar luego baja.

p.s .: No he comprobado cómo funciona el desglose de Adafruit, por lo que supongo que esto es algo cercano a lo que necesitas.

    
respondido por el Wesley Lee

Lea otras preguntas en las etiquetas