Curso de programación de PIC en PICBasic Pro

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


Saludos! y gracias
 
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_e.../s1600/Esquema+emisor-receptor+infrarojos.png
 

Adjuntos

  • Transmitir datos de pic a pic.zip
    85.8 KB · Visitas: 194
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 :D
 

Adjuntos

  • CERRADURA ELECTRONICA CON CAMBIO DE CLAVE.zip
    150.2 KB · Visitas: 282
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)
 
Última edición:
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-montajes-de-2009-en-neoteo.neo

esta ultima esta un poco mas explicada:

http://www.ucontrol.com.ar/forosmf/proyectos-con-pic/display-pov/

Espero que te sirva de algo, saludos amigo. :D
 
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
 
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:
[B]pause 500[/B]
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
 
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?
 
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...
 
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_e.../s1600/Esquema+emisor-receptor+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).
[/COLOR] 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
 
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 :D
 
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!!!!
 
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.
 
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:
[B]pause 500[/B]
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 :D. no puedo hacer que el texto se desplace :cry: :cry: :cry:
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 :LOL:
saludosss amigos.
 
Atrás
Arriba