TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: gio en 25 de Julio de 2007, 20:47:01

Título: Otra RS232 con picbasic(serin)
Publicado por: gio en 25 de Julio de 2007, 20:47:01
Estoy en un proyecto manejando servomotores, lo que quiero hacer es enviar los datos por el puerto en serie de la posicion de los servos, bueno esno es el problema el problema es que la instruccion SERIN se ejecuta en el pic pero no deja segir con el programa hasta que no le envie los datos y como los servos se deven de estar refrescando continuamente se queta en esa intruccion y no deja segir, en la intruccion encontre un parametro que dise time&&& el cual sirve para eso pero dela forma que lo coloque me marca error si alguien tiene un ejemplo o alguna otra forma de hacerlo se lo agradesco.
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: navaismo en 26 de Julio de 2007, 11:03:01
Alguien que nos mueva este tema al subforo de Basic.

Y Gio si usas un Pic que cuente con modulos serie via hardaware tu problema se solucionara si usas el comando HSEROUT y HSERIN
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: RALF2 en 26 de Julio de 2007, 13:58:31
HOLA GIO!
ESE PROBLEMA LO PUEDES RESOLVER UTILIZANDO INTERRUPCIONES DE FORMA TAL, QUE CUANDO EL PIC DETECTE UNA RECEPCION EN CURSO ESTE SALTE A UNA SUBRUTINA DONDE LEA EL DATO QUE LE LLEGA Y LUEGO ACTUALICE LA POSICION DE LOS SERVOS!!

ESO EVITARIA QUE LOS SERVOS PIERDAN LA POSICION LO OTRO QUE TE RECOMIENDO ES QUE UTILICES UN CRISTAL DE 20MHZ PARA QUE EL PROGRAMA SE ACTUALICE LO MAS RAPIDO POSIBLE Y LOS SERVOS NO PIERDAN SU POSICION!  :mrgreen:

SALUDOS.
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: RedPic en 26 de Julio de 2007, 16:07:06
Amigo Ralf2, según las Reglas (http://www.todopic.com.ar/foros/index.php?action=globalAnnouncements;id=1) del Foro especifican "No escribas todo en MAYÚSCULAS. Evita también los caracteres especiales, los "!!!!!",  los "¿?¿?¿?" y otras filigranas en los títulos para llamar la atención;" Te ruego que la tomes en cuenta.

Que tengas un feliz estancia entre nosotros. Gracias y un saludo.

Título: Re: Otra RS232 con picbasic(serin)
Publicado por: gio en 01 de Agosto de 2007, 20:58:05
vien ya lo resolvi y me queda asi

INCLUDE ""modedefs.bas"

SI   VAR   PORTA.0
pos   VAR   BYTE
portb   =   %00000000
trisb   =   %00000000
trisa   =   %00000001

pos   =   0


LOW   PORTB.0
PAUSE   250

start:
   PULSOUT   PORTB.0,pos
   SERIN   SI,N2400,20,nx, #pos
nx:   GOTO   start
END

vueno aora el problema es que solo me permite 193 pasos aprosimadamente y cuando programo en ensamblador los 256 pasos pero no puedo leer en ensamblador el puerto serial por eso lo hago en picbasic, aora lei y me parese que si aumento el cristal aumenta la resolucion del servo, pero le puse uno de 20 mhz y ya no me lee el puerto serial ni subiendo la velocadad de transmicion, alguna opcion, sale gracias por sus posts
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: navaismo en 02 de Agosto de 2007, 11:46:46
Y cuando metiste el crsital de 20 tambien lo definiste en el programa, DEFINE OSC 20 y yo insisto, si para ti es mejor usar el hardware serie usa el comando HSERIN y HSEROUT
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: gio en 07 de Agosto de 2007, 13:44:37
no, no me funciona el hserin no entran ni los datos en el 16f84 con el serin masomenos ingresava los valores pero el que voy a utilizar es el 16f877 y ai no me ingresa nada, no se si tienes un ejemplo podrias postearlo pofa porque no lo puedo solucionar, otra que vi es que en unos sircuitos no utilizan un acoplador de señal y en otros si que seria el MAX232 No se si es lo mismo con el o sin el

sale saludos..
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: Mario en 07 de Agosto de 2007, 13:57:26
Revisa esto:
http://www.microengineeringlabs.com/resources/samples/xusb/pbp/hserxu.bas
http://www.microengineeringlabs.com/resources/samples/xusb/pbp/hserxu.bas

Título: Re: Otra RS232 con picbasic(serin)
Publicado por: navaismo en 07 de Agosto de 2007, 14:28:06
Si mira:


1.-Priemro verifica que tus PIcs soportan cristales de 20MHZ

2.-El comando SERIN es un comando que emula via software la comunicacion serie, por lo cual cualquier PIC es capaz de usarlo.

3.-El comando HSERIN se refiere al uso del Hardware Serie del PIC, lo cual hace que soo algunos modelos lo inlcuyan; el 16F84 no posee hardware serie -¿como sabes cuales si y cuales no? leyendo sus datasheets-

4.-El uso del Max232 segun yo entendi ya hace rato es para acoplar los niveles de voltaje y garantizar la transmision entre un PC y el PIC, cuando comunico mi PC con el PIC yo lo uso, cuando comunico 2 PIC's entre si no lo uso.

5.- Los mejores ejemplos sobre el uso del uso del hardware serie los puedes encontrar en Rentron y usando el buscador del foro.

Saludos
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: gio en 09 de Agosto de 2007, 01:52:33
Hola de nuevo con otra duda estoy armando el circuito del max232 pero de cunto deven ser los 4 capacitores, en todos los circuito que e visto en los buscadores todos los manejan diferentes, cual recomiendas... sale gracias..
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: Mario en 09 de Agosto de 2007, 03:48:10
5.- Los mejores ejemplos sobre el uso del uso del hardware serie los puedes encontrar en Rentron y usando el buscador del foro.

Hola de nuevo con otra duda estoy armando el circuito del max232 pero de cunto deven ser los 4 capacitores, en todos los circuito que e visto en los buscadores todos los manejan diferentes, cual recomiendas... sale gracias..

Utiliza estos:
http://www.rentron.com/PicBasic/MCS_X3.htm

Recuerda que deben ser de mas de 10 volts (de preferencia) por que utilizarás el MAX232 (niveles de voltaje).
Título: Ayuda para hacer un codificador
Publicado por: palmas5678 en 28 de Agosto de 2009, 23:46:55
Saludos amigos, he realizado un proyecto sencicllo usnado modulos rf de alcance 100 metros, use también el code HT12E y el deco HT12D, para enviar a traves del code un "1" (5 voltios) y luego un "0" cero voltios, por el mismo pin, de tal manera que el el deco (luego del receptor) realice una acción otro circuito y luego se detenga. Mi problema es que hace varios meses que no encuentro estos modulos code, y que llegará el proximo año. Por favor, quiero reemplazar estos codec por programa en pic 16f84; de tal manera que accionado un boton pulsador (un puerto) envíe al modulo rf un "1" y soltándolo envíe un "0", pero nunca he trabajado con el envío de data en serie. Usando el serin y el serout. Por favor, necesito alguna ayuda o sugerencia. Gracias.
palmas
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: dogflu66 en 29 de Agosto de 2009, 03:48:52
Revisa el indice de este hilo:

http://www.todopic.com.ar/foros/index.php?topic=14917.0

Busca:

"TRABAJANDO CON COMUNICACION POR RF, MODULOS DE TX Y RX DE AUREL Y LAIPAC"
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: wilfo en 12 de Octubre de 2009, 15:58:39
Hola amigos , no se quien me podra ayudar con el siguiente codigo:
pbp
Desde visual Basic en vio lo siguiente a mi pic16f628a:
Mscom.output="125"

programa del pic:

dato var byte

inicio:
serin portb.0,n9600,dato
pause 100
serout portb.0,n9600,[dato]

Problema:
Al parecer el pic solo recibe el primer valor osea "1" ..porque a mi pc llega el número 1 y no 125.Es que necesito que me lleguen los 125 para poder controlar el servo...

Alguien tiene la solución frente a esto?
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: jansuini en 13 de Octubre de 2009, 13:27:05
Hola:
Muy sencillo ,cuando vos mandas el numero 123 realmente estas mandando 3 bytes ,el 1 ,el 2 y el 3 ,asi que deberias almacenarlo en 3 variables .
No se para que vas a usar tu probgama ,pero proba con esto:

dato var byte
dato1 var byte
dato2 var byte

inicio:
serin portb.0,n9600,dato ,dato1,dato2
pause 100
serout portb.0,n9600,[dato,dato1,dato2]
goto inicio
Título: Re: Otra RS232 con picbasic(serin)
Publicado por: K41R0 en 26 de Noviembre de 2012, 00:31:58
wilfo esa yo la se...
si en vez de 123 pones @123 te lo toma como un numero y no como 3 letras...