Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

24/08/2011 #1


Problema con pic y 555
Hola amigos,

Tengo un problema con un pic16f84 y un 555. Utilizo un 555 para medir un tiempo variable gracias a un potenciometro. Bien, el 555 se inicia a traves de un pulso enviado por el pic, y funciona bien. El problema es que tengo la salida del 555 conectada a un puerto configurado como entrada, y el pic no se entera de cuando varia. Si alguien me pudiera ayudar??
24/08/2011 #2

Avatar de aguevara

El PIC no es el que se debe enterar, eres tu quien le debe decir al PIC cuando leer el pin donde llego el pulso, ya sea mediante una interrupción o mediante muestreo cada cierto tiempo.
24/08/2011 #3


yo lo he programado así

ESPERA1 btfsc PORTA,2
goto ESPERA1
goto TIMER2

gracias por contestar
24/08/2011 #4

Avatar de Gudino Roberto duberlin

camino88 dijo: Ver Mensaje
Hola amigos,

Tengo un problema con un pic16f84 y un 555. Utilizo un 555 para medir un tiempo variable gracias a un potenciometro. Bien, el 555 se inicia a traves de un pulso enviado por el pic, y funciona bien. El problema es que tengo la salida del 555 conectada a un puerto configurado como entrada, y el pic no se entera de cuando varia. Si alguien me pudiera ayudar??
Amigo, sube el esquematico, para interpretar mejor lo que planteas
24/08/2011 #5


Pongo un esquematico muy general del circuito. Su funcionamiento es el que sigue:
Espero a pulsar el interruptor para mandar una señal por RB0 al 555 para que se active y cuante durante un tiempo. Mientras está contando estoy dentro del bucle que puse anteriormente. El problema es que cuando acaba de contar, el PIC no detecta el cambio de 1 a 0 que se produce en la patilla RA1.



Uploaded with ImageShack.us
24/08/2011 #6

Avatar de Gudino Roberto duberlin

camino88 dijo: Ver Mensaje
Pongo un esquematico muy general del circuito. Su funcionamiento es el que sigue:
Espero a pulsar el interruptor para mandar una señal por RB0 al 555 para que se active y cuante durante un tiempo. Mientras está contando estoy dentro del bucle que puse anteriormente. El problema es que cuando acaba de contar, el PIC no detecta el cambio de 1 a 0 que se produce en la patilla RA1.



Uploaded with ImageShack.us
Amigo, bueno, cerciorate pues en la mayoria de los PIC el puerto RA1 es analogo, si es asi, debes declararlo como DIGITAL, sino, utiliza algun otro terminal del puerto B.
Otra pregunta, por algun motivo especial utilizas el 555?, pues tienes el mismo controlador para eso...
24/08/2011 #7


Gudino Roberto duberlin dijo: Ver Mensaje
Amigo, bueno, cerciorate pues en la mayoria de los PIC el puerto RA1 es analogo, si es asi, debes declararlo como DIGITAL, sino, utiliza algun otro terminal del puerto B.
Otra pregunta, por algun motivo especial utilizas el 555?, pues tienes el mismo controlador para eso...
Utilizo el 555 para poder cambiar el tiempo variando un potenciometro, que irá conectado a una ruleta selectora...

Edito para decir que he intentado cambiar al PORTB y sigo igual.....

Gracias por la info.
24/08/2011 #8

Avatar de Gudino Roberto duberlin

camino88 dijo: Ver Mensaje
Utilizo el 555 para poder cambiar el tiempo variando un potenciometro, que irá conectado a una ruleta selectora...

Edito para decir que he intentado cambiar al PORTB y sigo igual.....

Gracias por la info.
Amigo, pues evidentemente hay un problema en el soft...
24/08/2011 #9


No creo que sea del programa en sí, será de configuración, pero yo pruebo con un pulsador y si que me detecta cuando está pulsado, pero con la salida del 555 no hay manera...
24/08/2011 #10

Avatar de aguevara

camino88 dijo: Ver Mensaje
yo lo he programado así

ESPERA1 btfsc PORTA,2
goto ESPERA1
goto TIMER2

gracias por contestar
Me parece que ese es tu error, si tienes tu circuito como en el esquematico, la salida del 555 esta en A1 y tu lees A2.
Sera mejor si agregas el programa completo y ver si no tienes un error previo a la lectura del pin.
24/08/2011 #11

Avatar de Basalto

Con un potenciometro en una entrada analógica, puedes leer el valor de este y lo haces por software. y te ahorras el 555 que ademas no es barato.
25/08/2011 #12


aguevara dijo: Ver Mensaje
Me parece que ese es tu error, si tienes tu circuito como en el esquematico, la salida del 555 esta en A1 y tu lees A2.
Sera mejor si agregas el programa completo y ver si no tienes un error previo a la lectura del pin.
El esquematico lo hice rápido y utilice esa entrada.
EL programa es el que sigue..

LIST p=16F84 ; PIC16F844 is the target processor

#include "P16F84.INC" ; Include header file

ESTADO EQU 0x03
PORTA EQU 0x05
PORTB EQU 0x06

org 0

bsf ESTADO,5
clrf PORTA
comf PORTA,1
clrf PORTB
bcf ESTADO,5
bsf PORTB,0 ;PORTB0=> disparo de 555

INICIO btfsc PORTA,0 ;espero a que se pulse el boton para arrancar 555.
goto INICIO

TIMER1 bcf PORTB,0 ;envio pulso a 555
bsf PORTB,1 ;enciendo un led
bsf PORTB,0

ESPERA1 btfsc PORTA,1 ;PORTA1=> conectado a salida 555
goto ESPERA1
goto ESPERA2

ESPERA2 bcf PORTB,1 ;Bucle que apaga un led y enciende otro.
bsf PORTB,2
goto ESPERA2

end
25/08/2011 #13


creo que te podria funcionar conectar la salida del 555 al pin 3 (ra4/t0cki), con este puedes contar la cantidad de pulsos que genera el 555, tienes que configurar el TMR0 como contador y colocar un retardo de no se, 200mS por ejemplo y en el registro del timer que no recuerdo como se llama tendras los pulsos contados en ese tiempo.

ó lo estoy entendiendo al reves y la otra solucion seria:

conectas la salida del 555 al pin 6 (rb0/int) y lo configuras con interrupciones y utilizas el timer 0 para determinar el tiempo, tienes que realizar calculos con el TMR0 para poder tener precision.
26/08/2011 #14

Avatar de aguevara

coloca un pequeño retardo en la siguiente linea, para que el ancho del pulso de disparo sea mayor y el 555 pueda reaccionar. (sugiero que lo pruebes)

TIMER1 bcf PORTB,0 ;envio pulso a 555
AQUI coloca un pequeño delay tal vez algunas 5 instrucciones NOP
bsf PORTB,1 ;enciendo un led
bsf PORTB,0
26/08/2011 #15


Leer valor del potenciometro
Basalto dijo: Ver Mensaje
Con un potenciometro en una entrada analógica, puedes leer el valor de este y lo haces por software. y te ahorras el 555 que ademas no es barato.
Hola amigo,estoy intentando conocer este mundo.Serias tan amable de indicarme con que instruccion puede leer el PIC el valor de ese potenciometro.
Un saludo.
26/08/2011 #16

Avatar de Basalto

http://es.scribd.com/doc/57162171/Mplab-c18-Desde-Cero. En la pagina 27 tienes un ejemplo. Aun que el codigo no te sirve que es C18. Pero hay muchos ejemplo en el foro. un saludo
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.