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

Avatar de lpnavy

Respuesta: Curso programacion de pic en bsic pro
GoX F4yCk3r DB dijo: Ver Mensaje
Lo tengo conectado al portb.1 mi oscilador es de 4mhz, como dije antes crei que era el que estaba chafeando y fui a comprar otro, tengo capacitores de 15 picofaradios y una resistencia de 10 k a la patita 1 del PIC (siempre la he usado y si sirve)
que extraño prueba con otro pic a ver si es el micro. si puede poner tu programa para ver si funca con mi micro pero dudo q sea el programa pero bueno uno nunca sabe.
21/09/2010 #482


Respuesta: Curso programacion de pic en bsic pro
Ya intente con varios micros en inculos con varios protos, el programa oroginal era el sentido de giro de un motor, este si me corrio y todo pero lo lleve a la escuela y asi como si nada dejo de funcionar. En primera instancia pense en el micro y lo reemplaze por otro, como con el programa del motor no hacia el cambio decidi cargarle otro, que es solo de prender y apagar el led, pero tampoco sirve, no c que sea.
21/09/2010 #483

Avatar de lpnavy

Respuesta: Curso programacion de pic en bsic pro
GoX F4yCk3r DB dijo: Ver Mensaje
Ya intente con varios micros en inculos con varios protos, el programa oroginal era el sentido de giro de un motor, este si me corrio y todo pero lo lleve a la escuela y asi como si nada dejo de funcionar. En primera instancia pense en el micro y lo reemplaze por otro, como con el programa del motor no hacia el cambio decidi cargarle otro, que es solo de prender y apagar el led, pero tampoco sirve, no c que sea.
si cargaste esos 2 programas y no andan tal vez sea el programa con que grabas el pic, o el quemador o el puerto de tu compu. pues no le veo mas salida a ese lio.
21/09/2010 #484


Respuesta: Curso programacion de pic en bsic pro
GoX
el led si sirve, y lo conecto asi. La pata mas corta a tierra y la otra a la patita del pic.
y la resitencia limitadora???
pon una de 330ohm y pon un nuevo led...
21/09/2010 #485


Respuesta: Curso programacion de pic en bsic pro
Saludos, un gusto escribir una vez mas aca, soy nuevo en esto de las transmisiones vía radiofrecuencia, les comento que estoy realizando un proyecto con un sensor de temperatura cuya lectura se visualizará en un lcd via rf.

En el siguiente circuito que adjunto uso el conversor a/d del pic16f877a para visualizar la lectura en en lcd1 de ese pic y funciona correctamente, pero cuando deseo visualizarlo en el receptor (pic 16f628a) no me muestra lectura alguna, para la transmisión uso unos modulos a 315Mhz (adjunto el datasheet) y el codificador y decodificador ht12e/ht12d, he comprobado que el modulo funciona correctamente he probado transmitiendo 1 bit y efectivamente recibe correctamente el dato que envio, mi problema es el siguiente:
Conecto el pin 39 del pic 16f877a a mi entrada del encoder(pin10), conecto la salida del decoder (pin10) al pin asignado para la recepcion de datos porta.0 del pic 16f628a(pin17), pero no logro visualizar el dato que envio , y bueno en ese mismo instante para comprobar nuevamente el estado de transmisión pruebo transmitiendo bits y efectivamente hay transmision y recepción sin embargo no logro visualizar el dato que necesito.
La salida del del pin 39 del pic 16f877a corresponde al dato que almaceno de mi conversor a/d para luego transmitirlo, he probado la transmisión directa usando un cable para unir el pin 39 del 16f877a y el pin 17 del 16f628a y funciona, bueno de esa forma logro visualizar la lectura del dato que deseo enviar por lo que creo el programa funciona correctamente.
Alguna sugerencia para solucionar mi problema seria bien recibida y muy agradecida.

Adjunto el esquema que realice en caso sirva de algo para su ilustración en pdf.

Incluyo fragmentos del programa que uso, esta hecho en microcode studio, tal vez estoy omitiendo algo o cometo un error y esa sea la razón por la cual no funcione.
TX:
Código:
DEFINE osc 4
DEFINE      LCD_BITS 4
define      LCD_DREG        PORTB           ;bit de datos del LCD empezando
define      LCD_DBIT        0               ;por B.0. B.1, B.2, B.3
define      LCD_RSREG       PORTB           ;bit de registro del LCD conectar
define      LCD_RSBIT       5               ;en el puerto B.5
pause 2000
define      LCD_EREG        PORTB           ;bit de enable conectar en el
define      LCD_EBIT        4               ;puerto B.4

define      ADC_BITS        8               ;Fije el número de BITS del resultado (5,8,10)
define      ADC_CLOCK       3               ;Fije EL CLOCK (rc=3)
define      ADC_SAMPLEUS    50              ;Fije el tiempo de muestreo en Us
                                            ;ADC_SAMPLEUS es el número de microsegundos que el programa
                                            ;espera entre fijar el canal y comenzar la conversión analógica/digital
TRISA= 1                                   ;el puerto A es de entrada
ADCON1= %00001110                           ;el puerto A.0 es conversor los demás digitales
TRISB= 0                                    ;el puerto b es salida da datos
dato        var word                        ;crear variable dato para guardar
tempbaj     var byte
tempalt     var byte
x           var byte


releF   var portD.2
releC   var portD.3
led     var portD.4
enter   var portD.5
bsubir  var portD.6
bbajar  var portD.7

EEPROM 0,[20,26]                            ;contenido inicial de la EEPROM
Symbol N2400 = 4

inicio:                                     ;3 parpadeos del led que indica que funciona
for x =1 to 3
    high led
    pause 200
    low led
    pause 200
next

READ 0,tempbaj                              ;lee la EEPROM 0 y lo guarda en tempbaj
read 1,tempalt                              ;lee la EEPROM 1 y lo guarda en tempalt

sensar:
adcin 0, dato                               ;lee el canal 0(A0) y guarda en dato
serout PORTB.6, N2400, [dato]               ;Envía los datos por RB0 
                                
LCDOUT $FE,1,"T.mi T.actu T.ma"             ;limpia el LCD y muestra el texto
            dato=dato/2                             ;el dato dividir para 2
LCDout $FE,$c6,dec dato,"ºC"                ;muestra el decimal de dato
LCDout $FE,$c0,dec tempbaj,"ºC"             ;muestra el decimal de tempbaj
LCDout $FE,$cc,dec tempalt,"ºC"             ;muestra el decimal de tempalt

for x =1 to 50                              ;repetir 50 veces
if enter =0 then grabarla
pause 10
next
if dato<tempbaj then calentar               ;si dato es <tempbaj ir a calentar
if dato>tempalt then enfriar                ;si dato es >tempalt ir a enfriar
low relec: low releF
goto sensar

enfriar:
HIGH releF: low releC
goto sensar

calentar:
HIGH releC: low releF
goto sensar

grabarla:
gosub soltar

grabar1:
LCDOUT $fe, 1,"Programar Temp."
lcdout $fe,$c0,"baja=",dec tempbaj,"ºC"
pause 100
if bbajar =0 then restar1

if bsubir =0 then sumar1

if enter =0 then grabarA

goto grabar1

restar1:
gosub soltar                                ;programa antirebote de tecla
if tempbaj<1 then grabar1
tempbaj=tempbaj-1

goto grabar1

sumar1:
gosub soltar
if tempbaj>40 then grabar1
tempbaj=tempbaj+1

goto grabar1

grabarA:
gosub soltar
write 0,tempbaj                             ;escribir en la direcciom 0 de la EEPROM

grabar2:
LCDOUT $fe, 1,"Programar Temp."
LCDOUT $fe,$c0,"alta=",dec tempalt,"ºC"
pause 100

if bbajar= 0 then restar2
if bsubir= 0 then sumar2
if enter= 0  then grabarB
goto grabar2

restar2:
gosub soltar
if tempalt<5 then grabar2
tempalt=tempalt-1
goto grabar2

sumar2:
gosub soltar
if tempalt>50 then grabar2
tempalt=tempalt+1
goto grabar2

grabarB:
gosub soltar
write 1,tempalt                             ;escribir en la direccion 1 de la EEPROM
goto inicio

soltar                                      ;antirebote de tecla 
HIGH led
pause 150
low led

soltar2:
if bbajar= 0 then soltar2
if bsubir= 0 then soltar2
if enter= 0  then soltar2
pause 100
return

end
RX:
Código:
 DEFINE osc 4
define      LCD_DREG        PORTB           ;bit de datos del LCD empezando
define      LCD_DBIT        0               ;por B.0. B.1, B.2, B.3
define      LCD_RSREG       PORTB           ;bit de registro del LCD conectar
define      LCD_RSBIT       5               ;en el puerto B.5
pause 2000
define      LCD_EREG        PORTB           ;bit de enable conectar en el
define      LCD_EBIT        4               ;puerto B.4
DEFINE      LCD_BITS 4

cmcon= 7
TRISB= 0


dato        var word                        ;crear variable dato para guardar
x           var byte
led         var portB.6
                            
 Symbol N2400 = 4  

inicio:

for x =1 to 3                               ;3 parpadeos del led que indica que funciona
    high led
    pause 200
    low led
    pause 200
next

sensar:
serin PORTA.0, N2400, dato
LCDOUT $FE,1,"Temp Actual"         ;limpia el LCD y muestra el texto
        dato=dato/2                           ;el dato dividir para 2
LCDout $FE,$c6,dec dato,"ºC"

end
datahsheet modulo:
http://electronicahifi.com/pdf/212st-rx04-a.pdf

p.d.1. Subiré el esquemático en pdf para que tengan una visualización del circuito.
p.d.2. Pido disculpas por el post en la sección que no correspondía, en realidad por el apuro no pude ver que estaba abierto este topic sobre la programación en pbp
Archivos Adjuntos
Tipo de Archivo: pdf circuito.pdf (86,9 KB (Kilobytes), 183 visitas)
Tipo de Archivo: rar Prueba Termometro Rf.rar (25,6 KB (Kilobytes), 182 visitas)
21/09/2010 #486


Respuesta: Curso programacion de pic en bsic pro
Zankoku...
podrías subir el archivo DSN de proteus, para hacerle unas pruebas...
yo creo, por lo que dices son lo modulos... pero me gustaria confirmarlo....
21/09/2010 #487


Respuesta: Curso programacion de pic en bsic pro
lubeck dijo: Ver Mensaje
Zankoku...
podrías subir el archivo DSN de proteus, para hacerle unas pruebas...
yo creo, por lo que dices son lo modulos... pero me gustaria confirmarlo....
acabo de subir el archivo de proteus esta bajo la version 7.7 sp2.

p.d.1 En la simulacion que adjunté uní con un cable los pines de la comunicación, en este caso use un dato invertido N2400= 4 para que me muestre el dato, de esa forma el programa corre bien, si uso un dato real con T2400= 0 me muestra el doble del valor(también intente enviar la información a 1200, 9600 pero no funcionó) bueno en la práctica física hasta donde recuerdo me es indiferente la forma de enviar el dato, eso te lo aclararé en un par de horas lo que pasa es que tengo que ir a estudiar y me gana el tiempo

p.d.2 De paso aprovecho para preguntarte si influye en algo la forma en la que envio el dato usando los módulos que tengo, en realidad intente enviar en ambos casos, con el dato invertido y luego con el dato verdadero sin obtener resulatado alguno.
21/09/2010 #488


Respuesta: Curso programacion de pic en bsic pro
intenta esto...
en el serout del TX...

serout PORTB.6, N2400, [dato,10]

y en RX...

Código:
 DEFINE osc 4
define      LCD_DREG        PORTB           ;bit de datos del LCD empezando
define      LCD_DBIT        0               ;por B.0. B.1, B.2, B.3
define      LCD_RSREG       PORTB           ;bit de registro del LCD conectar
define      LCD_RSBIT       5               ;en el puerto B.5
pause 2000
define      LCD_EREG        PORTB           ;bit de enable conectar en el
define      LCD_EBIT        4               ;puerto B.4
DEFINE      LCD_BITS 4

cmcon= 7
TRISB= 0


dato        var word                        ;crear variable dato para guardar
x           var byte
led         var portB.6
                            
 Symbol N2400 = 4  

inicio:

for x =1 to 3                               ;3 parpadeos del led que indica que funciona
    high led
    pause 200
    low led
    pause 200
next

sensar:
serin PORTA.0, N2400, [10],dato
LCDOUT $FE,1,"Temp Actual"         ;limpia el LCD y muestra el texto
        dato=dato/2                           ;el dato dividir para 2
LCDout $FE,$c6,dec dato,"ºC"
Goto Sensar ;       <-hacer bucle
end
21/09/2010 #489


Respuesta: Curso programacion de pic en bsic pro
lubeck dijo: Ver Mensaje
intenta esto...
en el serout del TX...

serout PORTB.6, N2400, [dato,10]

y en RX...

Código:
 DEFINE osc 4
define      LCD_DREG        PORTB           ;bit de datos del LCD empezando
define      LCD_DBIT        0               ;por B.0. B.1, B.2, B.3
define      LCD_RSREG       PORTB           ;bit de registro del LCD conectar
define      LCD_RSBIT       5               ;en el puerto B.5
pause 2000
define      LCD_EREG        PORTB           ;bit de enable conectar en el
define      LCD_EBIT        4               ;puerto B.4
DEFINE      LCD_BITS 4

cmcon= 7
TRISB= 0


dato        var word                        ;crear variable dato para guardar
x           var byte
led         var portB.6
                            
 Symbol N2400 = 4  

inicio:

for x =1 to 3                               ;3 parpadeos del led que indica que funciona
    high led
    pause 200
    low led
    pause 200
next

sensar:
serin PORTA.0, N2400, [10],dato
LCDOUT $FE,1,"Temp Actual"         ;limpia el LCD y muestra el texto
        dato=dato/2                           ;el dato dividir para 2
LCDout $FE,$c6,dec dato,"ºC"
Goto Sensar ;       <-hacer bucle
end
hola gracias por la atención prestada, te comento que hice el cambio pero no obtuve aun resultado favorables , seguiré intentando buscar el método para que transmita.
Por cierto el circuto que implemente para el th12e/d es el siguiente:

http://axxon.com.ar/rob/Prueba_RFLink.htm
21/09/2010 #490


Respuesta: Curso programacion de pic en bsic pro
Mmmm.. algo anda raro con el acople que pretendes hacer.... los ht son codificadores en paralelo a 8bit no seriales...
eso es mas sencillo... busca un tema de fernandoe sobre esos codificadores... si no lo encuentras... postea...
22/09/2010 #491


Respuesta: Curso programacion de pic en bsic pro
lubeck dijo: Ver Mensaje
Mmmm.. algo anda raro con el acople que pretendes hacer.... los ht son codificadores en paralelo a 8bit no seriales...
eso es mas sencillo... busca un tema de fernandoe sobre esos codificadores... si no lo encuentras... postea...
uhmmm sry si t molesto una vez mas pero podrías explicarme un poco mas referente a eso?, estuve buscando pero como que tengo aún muchas dudas, te comento, mi idea tal vez errónea era cojer el dato que había almacenado en el pin39 del 16f877a proveniente de mi conversor a/d, ese pin conectarlo a uno de los pines de entrada de datos del ht12e y bueno transmitirlos, ahora que lo pienso bien, creo que ese acople que pretendo hacer puede ser erróneo.
De no ser mucha molestia, por favor podrías recomendarme que tipo de acople y con que integrado lo podría hacer?
22/09/2010 #492


Respuesta: Curso programacion de pic en bsic pro
Mira este link...
http://www.forosdeelectronica.com/f2...20/#post293058

la verdad desconozco lo mas optimo pero se me ocurre que busques un conversor serial-Paralelo... o la transmision la hagas en paralelo....
22/09/2010 #493


Respuesta: Curso programacion de pic en bsic pro
Holaq D@rio: cogí el archivo que has dejado sobre el tacómetro lo probe en el proteus y veo que simula muy bien el programa, yo no se lo que me pasa, pero también tengo hecho un tacómetro y el cicuito en el board me funciona perfectamente, pero no puedo simularlo, no lo veo en el LCD veo que las salidas del micro se activan pero el LCD está como muerto encendido pero no se ve nada. A que puede ser debido esto? .
D@rio dijo: Ver Mensaje
hola gente del foro.
bueno, aca estoy de nuevo, pidiendo vuestra ayuda jeje... no sin antes, dejar un pequeño aportito a cambio. se trata de un tacometro para motores DC como los de aeromodelismo. esta probado en proteus y no se cual es el limite de RPMs que puede medir.
ahora pasemos a mi duda... bueno, pasa que no tengo por ahora el display de este proyecto y me gustaria hacerlo ya que, me seria de gran utilidad. resulta que tengo un lcd de un nokia 1100 y me gustaria adaptarlo para este proyecto, utilizando como lenguaje de programacion, picbasic. tengo el pinout de este display y he visto en el foro como se conecta, pero lo que no se, es como cambiar la comunicacion entre el pic y el display nokia
ya que, en este tacometro, la comunicacion es en paralelo y el display nokia, es serie sincronico. ¿acaso se podria usar la instruccion SHIFTOUT para controlarlo? ustedes ¿que opinan? ¿como puedo hacer para adaptarlo a mi diseño? gracias.
saludosss

22/09/2010 #494

Avatar de Dario

Respuesta: Curso programacion de pic en bsic pro
podrias subir tu proyecto asi lo descargo y veo si puedo ayudarte.
saludosss
23/09/2010 #495


Respuesta: Curso programacion de pic en bsic pro
Gracias D@rio por tu contestación: perdona que te moleste, me puedes indicar como tengo que hacer para poner el rar o los archivos aquí. Espero no molestarte. Gracias.
23/09/2010 #496

Avatar de verogirl

Respuesta: Curso programacion de pic en bsic pro
alex, me adelanto...cualquier cosa Dario corrigeme

para poder subir archivos deves ir a Avanzado, de alli vas a adjuntar archivo y te aparecera una ventana con las opciones de archivos que puedes subir y el limite en capacidad
lo buscas, lo subes y cierras la ventana, luego pones enviar mensaje y listo!
24/09/2010 #497


Respuesta: Curso programacion de pic en bsic pro
Muy agradecido" Verogirl". Un saludo. Alex.
24/09/2010 #498


Respuesta: Curso programacion de pic en bsic pro
Hola d@rio: soy Alex como te dije, probé el programa del tacómetro en el Proteus y funciona perfectamente, monté este circuito en un board, le puse un generador de frecuencia a 20 Hz y esto no funciona como debiera, el resultado tendría que ser en LCD de 1200 rpm y esto no sale igual, sale como dividido por 10 y la lectura no es estable. Tu has probado este circuito en board?. Sobre lo que te comenté, sobre que no funcionaban los programas en el Proteus la solución biene en poner una resistencia entre el "RS" del LCD y el +5, de esta manera sale la lectura por el Lcd y si no la pongo no se lee?. Bueno ya me contareis algo. Un saludo.
25/09/2010 #499

Avatar de Dario

Respuesta: Curso programacion de pic en bsic pro
hola alex.
la verdad que por falta de un lcd, no he tenido la oportunidad de probar el tacometro en la realidad, al circuito lo saque de un libro de pbasic que tengo, y le modifique las salidas porque no me funcionaba asi con proteus. te paso la imagen del diseño completo porque lleva una etapa de entrada con optoacoplador que no esta en el circuito anterior, probalo asi. NOTA: para que funcione como el de esta imagen, hay que modificar el programa
Sobre lo que te comenté, sobre que no funcionaban los programas en el Proteus la solución biene en poner una resistencia entre el "RS" del LCD y el +5, de esta manera sale la lectura
pues si te fijas en el circuito, el pin rs del lcd, va conectado al RB1 del micro.
saludosss
Imágenes Adjuntas
Tipo de Archivo: jpg taco lcd.JPG (51,6 KB (Kilobytes), 598 visitas)
25/09/2010 #500


Respuesta: Curso programacion de pic en bsic pro
Hola D@ario: es el mismo circuito que el mío, yo tambien tengo este libro desde hace una semana, yo probé los circuitos en el proteus y no funcionabann, y como te dige, si pones una resistencia de 4k7 ó de 10k entre el "RS" y el +5 entonces funciona en el Proteus. Te preguntaba a tí y de paso a alguien que lo quiera probar en un board haber si le da las lecturas que a mí me dan. Si pongo un generador a 20 hz, en el display tendría que leerse 1200 RPM y sin embargo se lee 120 RPM y varia continuamente de valores. Quisiera saber el porqué pasa esto. Un saludo y gracias.
¿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 - 2016, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.