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


hola amigos,¿alguien sabe de alguna librería que me permita utilizar logaritmo en Pic Basic Pro??


Saludos! y gracias
11/01/2011 #782

Avatar de Nano24

Saludos mecatrodatos la verdad era lo que buscaba una pagina donde encontrar de manera clara y sencilla la explicacion hacerca de PicBasic me han servido de mucho tus ejemplos para asi darme una idea de lo que vaya a realizar, tenia una pregunta amigo, se pueden transmitir datos via infrarrojos a otro pic con esos sensores de 3 pines que funcionan a 38KhZ?

Bueno el circuito que he dejado es muy sencillo 4 pulsadores y transmiten 3 codigos a b c el pic receptor compara y si es asi muestra en el lcd las letras a b c y el ultimo pulsador para limpiar, bueno espero que me puedas ayudar con esa duda, pues echando un vistazo por la web vi esto:

http://1.bp.blogspot.com/_vrRq6_c_ee...infrarojos.png
11/01/2011 #783

Avatar de Nano24

Bueno aqui comparto con los amigos del foro este circuito que realice, trata de un sistema para cerraduras el cual digitas un codigo de 4 numeros para acceder, si es correcto accede sino da una alerta, trae para guardar la clave en la EEPROM del pic para resetear solo basta con presionar * y para cambiar la clave presionar # pero antes pide la clave anterior para confirmar el nuevo cambio... la clave de fabrica es 1 2 3 4
Archivos Adjuntos
Tipo de Archivo: zip CERRADURA ELECTRONICA CON CAMBIO DE CLAVE.zip (150,2 KB (Kilobytes), 256 visitas)
11/01/2011 #784

Avatar de atricio

muchas gracias por los aportes tan ilustrativos y sirven para saber que el micro es para un sin fin de aplicaciones
11/01/2011 #785


gracias nano24 buenos aportes
11/01/2011 #786

Avatar de Dario

hola gente del foro.
nuevamente yo por aqui solicitando su ayuda jeje... bueno, hace un par de dias me puse a practicar con uno de esos display P.O.V solo para ver que tal se veia en la realidad y la verdad que me gusto. pude proyectar un mensaje personalizado sin problemas y se veia muy bien. ahora me gustaria hacer que ese mensaje se desplazara en el display pero la verdad, no se como hacerlo. estoy usando microcode para programar ¿me dan una manito? el codigo es el siguiente:

Código:
Define Osc 4
CMCON = 7
TrisA=%00001111
TrisB=%00000000
PORTA = %00000000
PORTB = %00000000
repetir var byte

cartel:
for repetir = 1 to 1000
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00010000:pauseus 300
portb = 0:pauseus 300
portb = %00010000:pauseus 300
portb = 0:pauseus 300
portb = %00010000:pauseus 300
portb = 0:pauseus 300
portb = %11111111:pauseus 300
portb = 0:pause 2
portb = %01111110:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %01111110:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %10000000:pauseus 300
portb = 0:pauseus 300
portb = %10000000:pauseus 300
portb = 0:pauseus 300
portb = %10000000:pauseus 300
portb = 0:pauseus 300
portb = %00000000:pauseus 300
portb = 0:pause 2
portb = %11111110:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %11111110:pauseus 300
portb = 0:pause 4
next repetir
for repetir = 1 to 1000
portb = %01111110:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pause 2
portb = %01111110:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001110:pauseus 300
portb = 0:pause 2
portb = %10001110:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %01110001:pauseus 300
portb = 0:pause 2
portb = %11111110:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %11111110:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00011001:pauseus 300
portb = 0:pauseus 300
portb = %00101001:pauseus 300
portb = 0:pauseus 300
portb = %01001001:pauseus 300
portb = 0:pauseus 300
portb = %10001110:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00011000:pauseus 300
portb = 0:pauseus 300
portb = %00100100:pauseus 300
portb = 0:pauseus 300
portb = %01000010:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00011000:pauseus 300
portb = 0:pauseus 300
portb = %00100100:pauseus 300
portb = 0:pauseus 300
portb = %01000010:pauseus 300
portb = 0:pauseus 300
portb = %11111111:pauseus 300
portb = 0:pause 4
next repetir
goto cartel
end
saludosss y gracias pd:(este codigo proyecta un mensaje y pasado un tiempo, el mensaje cambia)
12/01/2011 #787

Avatar de Nano24

Quizas esto te ayude!!
Bueno amigo ya la idea de la programacion la tienes, me imagino que lo que buscas es como armar el circuito, la verdad hace un tiempo pense en esos tipos de displays pero no tenia ni idea de como programarlos y viendo lo que hicistes pues parece facil la cuestion, echa un vistazo aqui quizas te de una idea de la electronica del circuito:

http://microcoro.blogspot.com/2010/10/display-pov.html

http://arduinomdq.blogspot.com/2010_05_01_archive.html

otra pagina buena: http://www.neoteo.com/los-mejores-mo...-en-neoteo.neo

esta ultima esta un poco mas explicada:

http://www.ucontrol.com.ar/forosmf/p...c/display-pov/

Espero que te sirva de algo, saludos amigo.
13/01/2011 #788

Avatar de Dario

hola nano gracias por los links, ya los habia visitado antes. de hecho la idea del pov la saque de Ucontrol.
como decia en el post anterior, ya se como escribir mensajes en el display, lo que me gustaria ahora, es que el mensaje se desplace pero no se como lograrlo. ¿alguna idea?
saludosss
13/01/2011 #789


Hola Dario

A mi se me ocurre que hagas una pausa antes de comenzar un nuevo desplazamiento...
mas o menos asi...

Código:
Define Osc 4
CMCON = 7
TrisA=%00001111
TrisB=%00000000
PORTA = %00000000
PORTB = %00000000
repetir var byte

cartel:
pause 500
for repetir = 1 to 1000
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00010000:pauseus 300
portb = 0:pauseus 300
portb = %00010000:pauseus 300
portb = 0:pauseus 300
portb = %00010000:pauseus 300
portb = 0:pauseus 300
portb = %11111111:pauseus 300
portb = 0:pause 2
portb = %01111110:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %01111110:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %10000000:pauseus 300
portb = 0:pauseus 300
portb = %10000000:pauseus 300
portb = 0:pauseus 300
portb = %10000000:pauseus 300
portb = 0:pauseus 300
portb = %00000000:pauseus 300
portb = 0:pause 2
portb = %11111110:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %11111110:pauseus 300
portb = 0:pause 4
next repetir
for repetir = 1 to 1000
portb = %01111110:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pause 2
portb = %01111110:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001110:pauseus 300
portb = 0:pause 2
portb = %10001110:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %01110001:pauseus 300
portb = 0:pause 2
portb = %11111110:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %11111110:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00011001:pauseus 300
portb = 0:pauseus 300
portb = %00101001:pauseus 300
portb = 0:pauseus 300
portb = %01001001:pauseus 300
portb = 0:pauseus 300
portb = %10001110:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00011000:pauseus 300
portb = 0:pauseus 300
portb = %00100100:pauseus 300
portb = 0:pauseus 300
portb = %01000010:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00011000:pauseus 300
portb = 0:pauseus 300
portb = %00100100:pauseus 300
portb = 0:pauseus 300
portb = %01000010:pauseus 300
portb = 0:pauseus 300
portb = %11111111:pauseus 300
portb = 0:pause 4
next repetir
goto cartel
end
13/01/2011 #790

Avatar de Nano24

Ok Dario pues esa parte sino sabria decirte como pero el amigo lubeck te esta dando una mano por lo que veo alguien sabe si se pueden enviar datos via infrarrojo de `pic a pic con la programacion SERIN ò SEROUT a 38Khz?
13/01/2011 #791


toda via no lo intento... pero por lo que he leido eso es en baudios, y deberian andar sobre de los 2400.... no se a cuanto equivaldria en Hz
13/01/2011 #792

Avatar de Nano24

Pues si tienes razon en eso, para eso estoy usando un receptor de 38KHz segun vi en la web pues usas el pic con el que mandas la señal y lo llevas al reset de un 555 modulado a 38Khz y el sera el portador de la informacion y el pic lo codifica pero loq nose es si con SERIN y SEROUT se logre enviar los datos. Mira esto:

http://robotypic.blogspot.com/2010/1...s-con-pic.html
13/01/2011 #793


Pues si tienes razon en eso, para eso estoy usando un receptor de 38KHz segun vi en la web pues usas el pic con el que mandas la señal y lo llevas al reset de un 555 modulado a 38Khz y el sera el portador de la informacion y el pic lo codifica pero loq nose es si con SERIN y SEROUT se logre enviar los datos. Mira esto:
mmm...

pues teoricamente suena muy bonito....

pero se me hace mucho brinco estando el suelo tan parejo... segun entiendo con el timer genera el id del emisor...

pero eso se puede hacer efectivamente con el serin y el serout... a menos que haya entendido mal...
mira yo hice el mismo proceso pero con modulos RF....

el problema que tuve no fue la comunicacion o programacion sino que las porquerias de modulos esos de juguete que venden no sirven para transmision formal de datos que era lo que yo pretendia...
pero por IR deberia haber menos problema....

hay otros esquemas mucho mas sencillos que el que muestras no se si necesariamente tenga que ser ese...
13/01/2011 #794

Avatar de mecatrodatos

Nano24 dijo: Ver Mensaje
Saludos mecatrodatos la verdad era lo que buscaba una pagina donde encontrar de manera clara y sencilla la explicacion hacerca de PicBasic me han servido de mucho tus ejemplos para asi darme una idea de lo que vaya a realizar, tenia una pregunta amigo, se pueden transmitir datos via infrarrojos a otro pic con esos sensores de 3 pines que funcionan a 38KhZ?

Bueno el circuito que he dejado es muy sencillo 4 pulsadores y transmiten 3 codigos a b c el pic receptor compara y si es asi muestra en el lcd las letras a b c y el ultimo pulsador para limpiar, bueno espero que me puedas ayudar con esa duda, pues echando un vistazo por la web vi esto:

http://1.bp.blogspot.com/_vrRq6_c_ee...infrarojos.png
Que tal si se puede desarrollar el programa pero en pwm con el registro CCP1 en el caso del pic 16f877A el Timer2 (TMR2), y PR2 (registro timer2 módulo período) se utilizan para establecer el período.

Para determinar el tiempo necesario para generar una frecuencia de 38KHz, simplemente tome 1/38KHz, o un 38 /, 000. El resultado es 1 / 38, 000 = 0,000026316 (26.3uS).

Para calcular el valor a cargar en CCPRL1 de 38KHz @ 4 MHz con un ciclo de trabajo del 50%:
(PR2 + 1) prescale TMR2 * * 50% = Ciclo de valor para CCPRL1, o
(25 + 1) * 1 * 0,50 = 26 * 0,50 = 13


el codigo en PBP hace funcion de los comandos SERin y SEROUT
13/01/2011 #795

Avatar de Nano24

aun sigo sin entender esa parte del PWM y el CCPRL1 ademas de manejar el TMR2, si me facilitaras algunos ejemplos que me ayudaran para iniciar mis propios proyectos de transmision de datos via infrarroja pues te lo agradeceria mucho mecatrodatos. De todas maneras gracias por la respuesta
14/01/2011 #796


Y donde esta el curso?
21/01/2011 #797


termometro digital con lm35
para tu circuito utilisas el max232 o es la conexion directa hacia el conector serie, soy nuevo en el foro y me gustaria saber como hiciste esa conexion gracias
26/01/2011 #798


hola a todos, me gusto mucho su foro!!!!
me gustaria que me comentaran si me pueden colaborar, para hacer un termohigrometro digital para conectarlo a una red zigbee, con pic y un sht71, en verdad lo que mas duro me a dado es entender el funcionamiento del sensor, si alguno de ustedes me puede ayudar o darme ideas se lo agradezco!!!!
29/01/2011 #799


Excelente vuestro aporte amigos Estor trabajando con una incubadora un pic 16f877A
Y un censor Lm35. es uno de sus aportes.
Lo que les pido es que me guíen com. Lo siguiente: quiero agregar a uno de los pines un relay, este Pin quisiera que encienda cada 3 horas por 10 minutos. Les agradezco de antemano.
31/01/2011 #800

Avatar de Dario

lubeck dijo: Ver Mensaje
Hola Dario

A mi se me ocurre que hagas una pausa antes de comenzar un nuevo desplazamiento...
mas o menos asi...

Código:
Define Osc 4
CMCON = 7
TrisA=%00001111
TrisB=%00000000
PORTA = %00000000
PORTB = %00000000
repetir var byte

cartel:
pause 500
for repetir = 1 to 1000
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00010000:pauseus 300
portb = 0:pauseus 300
portb = %00010000:pauseus 300
portb = 0:pauseus 300
portb = %00010000:pauseus 300
portb = 0:pauseus 300
portb = %11111111:pauseus 300
portb = 0:pause 2
portb = %01111110:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %01111110:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %10000000:pauseus 300
portb = 0:pauseus 300
portb = %10000000:pauseus 300
portb = 0:pauseus 300
portb = %10000000:pauseus 300
portb = 0:pauseus 300
portb = %00000000:pauseus 300
portb = 0:pause 2
portb = %11111110:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %11111110:pauseus 300
portb = 0:pause 4
next repetir
for repetir = 1 to 1000
portb = %01111110:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pause 2
portb = %01111110:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001110:pauseus 300
portb = 0:pause 2
portb = %10001110:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %10001001:pauseus 300
portb = 0:pauseus 300
portb = %01110001:pauseus 300
portb = 0:pause 2
portb = %11111110:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %00010001:pauseus 300
portb = 0:pauseus 300
portb = %11111110:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00011001:pauseus 300
portb = 0:pauseus 300
portb = %00101001:pauseus 300
portb = 0:pauseus 300
portb = %01001001:pauseus 300
portb = 0:pauseus 300
portb = %10001110:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00011000:pauseus 300
portb = 0:pauseus 300
portb = %00100100:pauseus 300
portb = 0:pauseus 300
portb = %01000010:pauseus 300
portb = 0:pauseus 300
portb = %10000001:pauseus 300
portb = 0:pause 2
portb = %11111111:pauseus 300
portb = 0:pauseus 300
portb = %00011000:pauseus 300
portb = 0:pauseus 300
portb = %00100100:pauseus 300
portb = 0:pauseus 300
portb = %01000010:pauseus 300
portb = 0:pauseus 300
portb = %11111111:pauseus 300
portb = 0:pause 4
next repetir
goto cartel
end
bueno, despues de dejar el proyecto pov en pausa durante unos dias, he probado tu codigo lubeck. los resultados por ahora son negativos . no puedo hacer que el texto se desplace
si se les ocurre alguna idea me avisan, mientras tanto, seguire rompiendome la cabeza buscando la forma de hacer que ese texto se desplace en el aire
saludosss amigos.
¿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.