TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: EZED16 en 15 de Junio de 2009, 22:06:49

Título: ayuda por favor! programacion en basic
Publicado por: EZED16 en 15 de Junio de 2009, 22:06:49
hola yo queria hacer una consulta, podrian ayudarme
a hacer un programa para un trabajo de la escuela que
necesito hacer y quiero programar un pic 16F84A y yo
recien empiezo con el tema de programacion y no importa
en que lenguaje esta programado, solamente quiero que
siga la secuencia de procesos que quiero que realice
si puede ayudarme, me dice y yo le paso el proceso
que necesito hacer
espero su respuesta
desde a muchas gracias
Título: Re: ayuda por favor! programacion en basic
Publicado por: darck_khronos en 15 de Junio de 2009, 22:15:55
hola yo queria hacer una consulta, podrian ayudarme
a hacer un programa para un trabajo de la escuela que
necesito hacer y quiero programar un pic 16F84A y yo
recien empiezo con el tema de programacion y no importa
en que lenguaje esta programado, solamente quiero que
siga la secuencia de procesos que quiero que realice
si puede ayudarme, me dice y yo le paso el proceso
que necesito hacer
espero su respuesta
desde a muchas gracias

hay que leer las reglas bro
Título: Re: ayuda por favor! programacion en basic
Publicado por: dogflu66 en 16 de Junio de 2009, 09:01:31
Lo que quiere decir el forero del mensaje anterior es que esto es un foro dedicado a la divulgación de la electrónica, por lo que aquí puedes obtener ayuda para realizar el proyecto. Pero será muy difícil que te lo den hecho. Esto esta indicado en las reglas del foro.

Lo que te recomiendo es que expongas tu proyecto para que los amigos te puedan orientar y guiar para poder realizarlo.
Título: Re: ayuda por favor! programacion en basic
Publicado por: EZED16 en 16 de Junio de 2009, 15:50:00
Lo que quiere decir el forero del mensaje anterior es que esto es un foro dedicado a la divulgación de la electrónica, por lo que aquí puedes obtener ayuda para realizar el proyecto. Pero será muy difícil que te lo den echo. Esto esta indicado en las reglas del foro.

Lo que te recomiendo es que expongas tu proyecto para que los amigos te puedan orientar y guiar para poder realizarlo.


hola, muchas gracias, no lo sabia
yo tengo algo hecho en basic
ahora subo lo que hice en basic y un diagrama de flujo del proceso

AllDigital
TRISA = %10000000
TRISB = %00000000

PORTA.1 = 1  'sensor de luz
PORTB.2 = 1  'freno
PORTB.5 = 0  'bomba de agua

prog:
If PORTA.1 = 0 Then
PORTB.2 = 0
WaitMs 3000
PORTB.5 = 1
WaitMs 9000
PORTB.5 = 0  'bomba
PORTB.2 = 1  'freno
Else
PORTB.2 = 1
Endif
Goto prog
Título: Re: ayuda por favor! programacion en basic
Publicado por: KALLITOS en 16 de Junio de 2009, 17:02:20
Hola EZED16, al parecer el cuerpo del codigo es correcto pero la declaración del sensor es incorrecta, en el TRISA debería ser 00000010, se considera el bit de menor valor el de la derecha y el de mayor valor el de la izquierda.

Y esta linea de codigo es incorrecta
Código: QBasic/QuickBASIC
  1. PORTA.1 = 1  'sensor de luz
Ya que al ser un sensor, estas sacando 1 por su pin.
Prueba y nos comentas  :).

Saludos.
Título: Re: ayuda por favor! programacion en basic
Publicado por: EZED16 en 16 de Junio de 2009, 18:01:56
Hola EZED16, al parecer el cuerpo del codigo es correcto pero la declaración del sensor es incorrecta, en el TRISA debería ser 00000010, se considera el bit de menor valor el de la derecha y el de mayor valor el de la izquierda.

Y esta linea de codigo es incorrecta
Código: QBasic/QuickBASIC
  1. PORTA.1 = 1  'sensor de luz
Ya que al ser un sensor, estas sacando 1 por su pin.
Prueba y nos comentas  :).

Saludos.

hola, muchas gracias por tu comentario
a ver si entendi, yo quiero hacer que cuando el sensor de luz que es un fotodiodo
cuando le incida luz el proceso no se haga, y cuando no le incida la luz
el proceso se haga
no entendio porq esta incorrecto
te dejo el diagrama de flujo y lo ves, capaz que lo tengo mal yo
Título: Re: ayuda por favor! programacion en basic
Publicado por: EZED16 en 16 de Junio de 2009, 18:04:21
aca coloco el programa modificado
como lo hice
el sensor de luz tiene que estar como entrada
y la bomba de agua y el freno como salida

AllDigital
TRISA = %00000000
TRISB = %11111111

PORTA.1 = 1  'sensor de luz
PORTB.2 = 1  'freno
PORTB.5 = 0  'bomba de agua

prog:
If PORTA.1 = 0 Then
PORTB.2 = 0
WaitMs 3000
PORTB.5 = 1
WaitMs 9000
PORTB.5 = 0  'bomba
PORTB.2 = 1  'freno
Else
PORTB.2 = 1
Endif
Goto prog
Título: Re: ayuda por favor! programacion en basic
Publicado por: Suky en 16 de Junio de 2009, 18:18:35
 :shock:

Elimina esta linea, nada más:
Código: QBasic/QuickBASIC
  1. PORTA.1 = 1  'sensor de luz
Título: Re: ayuda por favor! programacion en basic
Publicado por: KALLITOS en 16 de Junio de 2009, 19:11:32
No modificaste correctamente el TRISA  :D
Ten en cuenta que tu sensor te entrega señal analoga y deberas pasarla a digital 1/0, esto lo lograras con un opamp en modo comparador
Título: Re: ayuda por favor! programacion en basic
Publicado por: dogflu66 en 16 de Junio de 2009, 19:31:15
¿Que tal esto?

'------------------------------------------
AllDigital  'Todas los pin como I/O
'TRISA = %10000000  'Todos los pin del PortA como salidas, exceptuando el RA7 (entrada)
TRISA = %00000010  'Todo PortA como salidas, exceptuando el RA1 (entrada)
TRISB = %00000000  'Todos los pin del PortB como salidas

'PORTA.1 = 1  'sensor de luz <Esto es una entrada por lo que no se puede
'_____________asignar valor, solo se puede leer, cuando el compilador
'_____________se encuentra con esto es posible que la redefina como salida>

PORTB.2 = 1  'freno, la salida RB2 se pone a nivel 1
PORTB.5 = 0  'bomba de agua, la salida RB5 se pone a nivel 0

prog:  'Rutina principal
   If PORTA.1 = 0 Then  'Si a la entrada RA1 le llega el valor cero...
      PORTB.2 = 0  'RB2 se establece a nivel cero
      WaitMs 3000  'Se hace una pausa absoluta de 3Seg.
      PORTB.5 = 1  'RB5 se establece a nivel 1
      WaitMs 9000  'Se hace una parada absoluta de 9Seg.
      PORTB.5 = 0  'bomba, RB5 se establece a nivel cero
      PORTB.2 = 1  'freno, RB2 se establece a nivel uno
   Else  'Si lo anterior no es cierto...
      PORTB.2 = 1  'RB2 se establece a nivel uno
   Endif  'Limita el IF
Goto prog  'Impide que termine la rutina principal
End                                               
'-----------------------------------------------

PD. Paradas absolutas = KK
Título: Re: ayuda por favor! programacion en basic
Publicado por: EZED16 en 16 de Junio de 2009, 20:37:36
No modificaste correctamente el TRISA  :D
Ten en cuenta que tu sensor te entrega señal analoga y deberas pasarla a digital 1/0, esto lo lograras con un opamp en modo comparador


hola kallitos
entendi lo que me dijiste, y antes de colocarle un opamp de modo comparador, podria tambien colocarle
antes de un opamp de modo comparador, una compuerta logica??

muchas gracias por la respuesta
y dogflu66 muchas gracias por el programa
Título: Re: ayuda por favor! programacion en basic
Publicado por: KALLITOS en 16 de Junio de 2009, 20:45:37
Creo que si, podrias hacer un divisor de tensión usando una resistencia fija a VCC y tu sensor ( que creo sera un LDR )a GND, y de la union de estos sacas un cable a una entrda  de un smitch trigger ( asi creo que se escribe ).

Pero antes de que uses el sensor, te recomiendo ingreses 1 o 0 a la entrada de sensor para comprobar que tu programa hace lo que deseas.

Saludos  :)
Título: Re: ayuda por favor! programacion en basic
Publicado por: EZED16 en 16 de Junio de 2009, 21:06:12
ok gracias

yo tengo hecho mi circuito ahora lo subo para que lo veas,
y yo pensaba colocar una compuerta logica a la salida del sensor

te dejo el diagrama adjunto, y yo pensaba esto, al colector del transistor,
coloco la compuerta logica and que esta ahi con las dos entradas puenteadas
y la salida conectada al pic, eso podria andar?
Título: Re: ayuda por favor! programacion en basic
Publicado por: KALLITOS en 16 de Junio de 2009, 21:11:47
Probaste si te funciona? si no coloca el divisor de tensión con el potenciometro a VCC y el sensor a GND, con el potenciometro podras regular el valor de set. Al colector le pondría una resistencia a VCC.

Al final tu circuito hara una comparación, te repito, yo lo haria con un opamp como comparador.


Saludos
Título: Re: ayuda por favor! programacion en basic
Publicado por: EZED16 en 16 de Junio de 2009, 21:23:59
Probaste si te funciona? si no coloca el divisor de tensión con el potenciometro a VCC y el sensor a GND, con el potenciometro podras regular el valor de set. Al colector le pondría una resistencia a VCC.

Al final tu circuito hara una comparación, te repito, yo lo haria con un opamp como comparador.


Saludos


ok muchas gracias!
asi el circuito funciona, por lo menos con compuertas logicas me ha funcionado
ahora yo queria colocar ese circuito en un pic, haciendo todo el proceso con un pic
antes de utilizar compuertas logicas

voy a probar a ver como funcionara mejor
y luego te comento
y voy a intentar programar el pic
Título: Re: ayuda por favor! programacion en basic
Publicado por: KALLITOS en 16 de Junio de 2009, 21:24:57
Nos cuentas  :)