TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: Agustina en 27 de Agosto de 2007, 13:46:37
-
Hola! como andan! queria saber si alguno de ustedes tiene idea de como hacer un Pushbutton ON/OFF, es decir, necesito que con un pulsador pueda encender un circuito con un 18f252 y por software poder apagarlo nuevamente. Alguien tiene alguna idea? no puedo usar la instruccion SLEEP.
Se me han ocurrido varias cosas, pero probandolas no funcionan :(
gracias!
-
Hola Agustina, eso es algo de lo más sencillo que hay para hacer!!
Primero deberás saber que tipo de carga u elemento es el que deseas conmutar, luego como el encendido es manual necesitas saber de que forma o por que motivo se produce su apagado (temporizado, una señal externa, etc.)
También es siempre interesante saber si tienes algún tipo de limitación en tamaño para la PCB y sus accesorios.
Con esos datos anteriores ya puedes encarar el diseño de un circuito y de la PCB, ya teniendo estos podrás realizar el programa adecuado para que el PIC que desees utilizar (el 18F252 lo veo exagerado para esa sencilla función, yo te recomendaría un 12FXXX)
Un saludo.
Atte. CARLOS.
-
Gracias charly por la respuesta! :o pero creo que me he expresado mal. Ya he trabajado mucho con pics, he ideado un sistema bastante complejo que utiliza mas del 80% del 18F252, no lo voy a utilizar solo para conmutar una carga. Lo que quiero es conmutar el mismo circuito del 252.
Es decir, el circuito ya esta armado y funcionando perfectamente, el mismo se prende con un switch (llave corredera) pero quisiera que el mismo se prenda como si fuese un celular, es decir, presionando una tecla durante un segundo y que permanezca prendido. Luego para apagarlo se haria por soft. Lo que necesito es solo cambiar la forma en que se prende el circuito del F252.
Ya hice un par de pruebas pero no funcionaron, la que el switch debe estar entre un 7805 y el pic:
7805--------o__o------------PIC
|
intente con un 2n2222 haciendo eto: coloque un 2n2222 como llave de conmutacion, y un pulsador en paralelo, entonces cuando presiono el pulsador, el circuito comienza a alimentarse y el pic comienza a funcionar, entonces el mismo envia una señal al 2n2222 para conmutar y asi cuando deje de presionar el switch el circuito no se apaga... peeeero, el problema esta en que el 2n2222 tiene una caida de tension algo grande para esta aplicacion, lo que causa que el pic se resetee continuamente o se apague.
El switch si o si debe estar luego del 7805.... ya que este alimenta otros componentes que deben estar siempre alimentados.
gracias!
-
Que tal Agustina,
Pues veo que tienes la idea clara de loq ue queires hacer y la solucion a tu probelma es que ese interruptor que quieres hacer es una combinacion de un interruptor y un transistor PNP y no un NPN como lo intentas hacer. TAmbien necesitaras un pin del micro para enclavar el circuito, es decir para dejar encendido el transistor PNP.
Seria algo asi:
7808-----------o__o--------Circuito
| _E_PNP(B)_C_| "Lo que intento exponer aqui es la conexion del transistor PNP en paralelo con el boton, enonde el emisor va conectado a la salida del regulador 7805 y el colector a tu circuito.
Como puedes ver el interrruptor push boton esta en paralelo con las terminales del emisor y del colector, y la base del transistor le conectas una resistencia en serie hacia un pin del microcontrolador. Esta resistencia la deberas calcular dependiendo de la corriente de colector en saturacion qeu necesitaras para el circuito.
Entonces la operacion quedaria asi;
Cuando presionas el interruptor, la corriente es suminstrada directamente al microcontrolador, este se enciende y cominza a ejecutar el codigo, en el cual tu colocas un cero en el pin que controla la base del transistor para llevarlo a saturacion y por lo tanto este se quedara encendido, asi una vez que liberes el push boton el microcontrolador y tu circuito seguiran funcionando ya que se ha producido un enclave. Para apagar el circuito simplemente haces que el pin se vaya a uno y entonces el transistor se ira a corte (se apaga) y por lo tanto el micro y tu circuiteria se apagara.
Espero que esta sea lo que estas buscando.
Saludos.
Elreypic.
-
elreypic2 muchas gracias por tu respuesta, voy a intentar con un PNP. Tenes alguna idea de cual pueda usar?
Y otra pregunta... el transistor no me causara una caida de tension sobre VCC al pic? es decir... con el 7805 la alimentacion es de 5v, pero si uso un interruptor como un transistor pnp, este no provocaria una caida de tension en VCC por ejemplo de 4,5v?
te pregunto esto ya que el circuito tambien tiene un LCD, que no funciona con tensiones menores a 4,6v.
Otra de las claves del circuito es el consumo, el circuito inicialmente consumia algo de 25mA, lo que con mucho trabajo logre bajar a 8mA, ya que es una aplicacion que funciona a baterias y tiene que funcionar muchos dias sin que esta se agote. Supongo que el transistor agregara un consumo de corriente de unos cuantos mA no?
muchas gracias! :g)
un beso!
-
¿Y no podrías mantener al micro "reseteado" bajando a 0 la señal MCLR hasta que una pulsación lo suba a 1?.
En este caso, para apagar, el micro tendría que bajar a 0 ese pin.
-
Que tal Agustina,
En base a los datos que me proporcionas, puedes usar cualquiera de los siguientes transistores: BC557, BC558, MPS2907A, 2N3906.
En cuanto a la caida de tension, cualqueir transistor que uses siempre tendra una caida de tension entre colector y emisor que se conoce como Vce(sat) y segun las hojas de datos para el transistor 2N3906 es de solo 0.25V para una correinte de colector de 10 mA. POr lo tanto para tu caso no es critico ya que el voltaje en el colector del transistor sera de aproximadamente: 4.7V.
Para el caso del MPS2907A su Vce(sat) es de 0.4V que tal vez ya seria critico en tu caso.
En el caso del transistor BC557 o BC558, su Vce(sat) esta entre los 90mV a 300 mV.
En base a esta informacion ya puedes decidir cual es la mejor opcion.
Ahora bien que si quieres que la caida de tension sea menor, entonces puedes ussr un transistor fet, pero nunca he usado uno para estas aplicaciones. Yo he tenido muy buenos resultados usando el BC557 o el BC558 y con sus variantes en BC557A, B o C e igualmente para el BC558A, B o C.
Lo unico que resta es calcular la resistencia de base para que el transistor se sature correctamente.
Saludos y suerte
Elreypic.
-
Bueno, retomando con esta idea, logre hacerlo con un mosfet 2n7000. El problema es que el circuito no queda TOTALMENTE apagado....
les dejo el esquema por si alguien sabe porque es :?
El GATE esta conectado a GND por medio de una R de 1M... probe tambien 1k, y 10k... pero sigue igual
5V
o
|
|
PIC pin----------------------MOSFET
|
|
PIC vcc-------------------------------
PIC GND------------------------------
|
|
GND
Gracias!! :g) :g) :g) :g)
-
Para que un mosfet conduzca tienes que polarizar correctamente el voltage entre el Gate y el Surtidor (VGS), busca la surva VGS vs ID de dicho mosfet y dale el voltaje correcto, con ello debe conducir sin problemas.
Javicho.
-
Gracias por la respuesta javicho, pero el problema es que no corta completamente. Conduce perfecto.
:g)
-
¿Y con uno canal P?
o quizás poner el mosfet que tienes entre el pic y masa, te dejo un par de links:
http://brunningsoftware.co.uk/FET.htm
http://www.electronics-tutorials.ws/transistor/tran_7.html
-
Ah claro recien veo el datasheet, debes usar uno canal P, el que usas es canal N, y el surtidor debe estar conectado con la salida del 7805 y el Drenador debe ir al VCC del pic.
Javicho.
-
pero, si uso un transistor canal P, debo poner a 0v el pin del PIC que maneja el GATE para prenderlo... y para apagar debo poner a 5v. Pero de esta manera nunca podria apagar el circuito, ya que al poner a 5v el GATE por medio de un pin del pic este cortaria la energia al pic, dando como resultado que todas los pines del pic caigan a 0v, lo que haria que el transistor conduzaca nuevamente y quedaria oscilando entre un valor y el otro.
no es asi?
gracias!
-
quizás con un mosfet y un bipolar lo soluciones.
R1 1Mohm y R2 100k, el mosfet de la figura tiene un nombre cualquiera, lo elegí por el símbolo simplemente.
saludos.
(http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=18537.0;attach=8200)
-
La solución a eso es un inversor como puso flacoclau en el diagrama, pero deberia haber una R=10K por ejemplo desde la base de Q2 a tierra para estabilizar el estado de corte de Q2 de lo contrario cuando el pic esté desactivado R2 quedaria al aire y por ahi se puede meter ruido.
Porque R1 1Mohm y R2 100k?
Javicho.
-
Si tu quieres ahorrar la mayor cantidad de corriente, te conviene poner un interruptor normal. De esa manera ahorraras componentes externos.
-
La solución a eso es un inversor como puso flacoclau en el diagrama, pero deberia haber una R=10K por ejemplo desde la base de Q2 a tierra para estabilizar el estado de corte de Q2 de lo contrario cuando el pic esté desactivado R2 quedaria al aire y por ahi se puede meter ruido.
Porque R1 1Mohm y R2 100k?
Javicho.
Cuando el pic se desactiva las salidas se ponen a masa, ya que sus mosfet de salida quedan sin polarizar, por lo tanto la base del transistor no queda al aire y cumplen esa función que tu dices de la resistencia de 10K.
R1 de 1M está bien para polarizar el mosfet, recuerda que este tiene una impedancia muy grande incluso como verás en los comentarios de Agustina ya lo viene polarizando de esta manera, aparte con una pequeña corriente en el transistor ya polariza el Gate, por eso también esa R en la base, recuerda que el circuito funciona a baterías y debe economizar el consumo al máximo.
saludos.
-
Porque no usan un flipflop?
No me acuerdo bien cual de todos es, pero hay uno que actua dando 1,0,1,0,1,0,... segun el clock que le des...
-
si pero la idea es desconectar todo el circuito y que no consuma, por lo tanto con un FF quedaría consumiendo o si se desconecta pierde el dato :ni)
saludos!!
-
Hola Agustina, creo que lo que debes hacer es mantener siempre al micro alimentado, luego "apagarlo" colocándolo en modo SLEEP y mediante un pulsador generar una interrupción que lo despierte (encienda). De esta forma el micro permanece alimentado pero con un consumo extremadamente bajo.
Si necesitas desconectar algún periférico, este sí puedes alimentarlo a traves de un transistor.
Además haciéndolo de esta manera, puedes hacer eso de presionar durante un segundo el pulsador para encenderlo (de las formas anteriores se encendería instantáneamente).
Saludos
Sergio
-
La mencion que hacen del flip flop es un tipo d y conectas la salida negada a la entrada D y el boton iria en la entrada CLK y asi cuan do presiones la primera vez te dara un "1" en la salida y la siguiente vez un "0"
-
Porque no usan un flipflop?
No me acuerdo bien cual de todos es, pero hay uno que actua dando 1,0,1,0,1,0,... segun el clock que le des...
El fliop flop es un tipo d pero el problema que siempre quedara energizado
La idea de este circuito es conectar la salida negada a la entrada "D" y por la terminal de entrada CLK conectar el push, cada vez que presionemos el boton dara un "1" y posterior un "0"
Me interesa este tema estoy haciendo algo similar y me parace la idea de dejar en modo sleep al pic
Si alguin tiene informacion muchas gracias
Saludos
-
uff tema del 2008
En si hay muchas opciones. Y todo depende de la cantidad de corriente que queres que fluya.
Si no te molesta mantenerlo en SLEEP creo que seria lo mejor.
Ahora si yo quisiera desconectar por COMPLETO el micro. lo que haria es algo aprecido al diagrama que dieron y el boton que lo prende sea un bypass del mismo. Aunque no te permita medir el segundo exacto de presionado el boton, a no ser que sea un boton con doble contacto. Y luego es controlado por el software.
-
¡Saludos al grupo!
Si quieres un push On/OFF de consumo nulo y no te importa poner un relé creo que este esquema te servirá.
Si no pulsas verás que la línea de alimentación está cortada totalmente. Al pulsar se activa el NPN a través de R2 y se mantiene el relé activado. Si en la línea de CONTROL pones un "0" el circuito se desconecta y se queda en reposo con consumo nulo.
Evidentemente en funcionamiento tendrás que añadir el consumo de la bobina del relé.