Autor Tema: Tiempo de espera aleatorio para pic 16f84  (Leído 5722 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado Matadoor

  • PIC10
  • *
  • Mensajes: 41
Tiempo de espera aleatorio para pic 16f84
« en: 20 de Mayo de 2007, 14:49:26 »
Saludos amigos soy nuevo en este tema que me ha apasionado durante mucho tiempo estoy tratando de realizar un par de proyectos y surgen un par de dudas que no logro responderme espero me puedan ayudar un poco:

1) Estoy tratando de hacer un sistema basado en un pic 16f84 el mismo que al presionar un swich haga encender un led pero despues de un tiempo aleatorio, es decir presiono el swich se genera el numero aleatorio de espera y el led se enciende. La gestion de los swichs ya me esta funcionando pero el inconveniente surge a la hora de generar el numero aleatorio de espera porque siempre el sistema me espera el mismo intervalo de tiempo no se por que no se genera el numero aleatorio, les dejo estas pequeñas lineas que estoy usando para ver si me pueden ayudar y decirme que estoy haciendo mal.
CODIGO ESPERA DE TIEMPO ALEATORIO

espera var word

led2 var porta.2

random espera

pause espera

high led2

end

2) La segunda pregunta trata de como podria hacer un sistema que sense dos diodos infrarojos para detectar un obstaculo pero con un solo receptor de infrarojos, tengo una idea pero no se si tiene bue camino, podria ser por ejemplo hacer parpadear los diodos a diferentes frecuencias y que el sensor detecte la frecuencia de oscilacion y segun eso genere su estrategia de evasion??? si fuera asi me podrian dar una manito con dicha estrategia.

De antemano les envia mis agradecimientos por ayudarme.
Saludos

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #1 en: 20 de Mayo de 2007, 22:27:29 »
Con respecto a lo de RANDOM parece que no funciona tal cual la funcion de generar un valor aleatorioaqui hay un ejemplo don de se usa podrias echarle una hojeada. para ver como funciona.

Por otro la do suena bien aquello de hacer funcionar los IR a diferentes frecuencias solo que la mayoria de los receptores infrarojos como el PNA4602 o el TSOP1740 ya que detectan carriers entre 38Khz y 40Khz. Y muchas ocasiones confunden dichas frecuencias y la toman igual. A veces resulta complicado adecuar las frecuencias, yo opte por usar un IS471F solo le conectas el diodo IR y el hace el resto. Pero cuentas es para un robotcillo un carro o como para que para saber que alternativas tenemos.


Saludos

PD otros links acerca de random

Link1
Link2

"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Matadoor

  • PIC10
  • *
  • Mensajes: 41
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #2 en: 22 de Mayo de 2007, 15:00:08 »
Saludos, gracias por responder, si se trata de un carrito que pueda detectar obstaculos, tenia previsto hacer oscilar los diodos a diferentes frecuancias pero como me dices que podria haber confusion en el reconocimiento de los carriers me pregunto que alternativa ya probada se le puede dar a este problema??.
Gracias por responder....

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #3 en: 22 de Mayo de 2007, 15:27:26 »
No digo que sea imposible pero si laborioso lo que deseas hacer. Los otros metodos dependen de lo que desees gastar o de como senses el obstaculo.

Si deseas evadirlos antes de tocarlos puede ser mediante infrarrojos o ultrasonicos, si puedes tocarlos con microswitches o reflectivos de corto alcance.

El ultrasonico es muy caro lo opcion mas viable es por la que optaste: Infrarrojos. Yo me traume con el metodo de sensado de la vibora de Karl Williams la cabeza de esta lleva un servo el cual usa un PNA4602 y un IR cuando detectaba un obstaculo  -calibraba  la distancia de deteccion- el servo se movia de izquierda a derecha para saber a donde tenia que ir. Si el obstaculo seguia presente en la derecha optaba por ir a la izquierda y viceversa. en caso de que persistiera en ambas direcciones esta dava vuelta hasta no encontrar nada.

Com veras es meramente programacion. Lo dificl de usar el PNA4602 es hacer que el IR oscile a 38Kzh con un 555 u otro PIC por ello te recomende el IS417F ese ya tiene el oscilador integrado.

Saludos.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Matadoor

  • PIC10
  • *
  • Mensajes: 41
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #4 en: 22 de Mayo de 2007, 23:20:29 »
Hola Navaismo gracias por la informacion segun lo que puedo entender entonces la tarea que me estoy porponiendo esta bastante cuesta arriba??, Sacame de una duda de pronto tu has trabajado con giroscopos del tipo de helicopteros radiocontrolados, por que tenia en mente realizar un pequeño robotcito que hace mucho vi en una revista de electronica que se movia y detectaba un obstaculo por infrarojo, y luego esquibaba el obstaculo dependiendo de que sensor enviaba la informacion del obstaculo, dime si no haho oscilar a diferentes frecuencia como tu me dices cual seria la otra opcion, no se me ocurre una forma alternativa de lograr dicho objetivo, la pregunta referente al giroscopo es ?Seria posible hacer que un pic detecte la el eje en que se esta moviendo dicho dispositivo y pudiese traducir la informacion al movimiento de un pequeño brazo por ejemplo? Espero me puedas aclarar estas dudas y desde ya mis agradecimientos por responder.

Saludos.....

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #5 en: 22 de Mayo de 2007, 23:46:41 »
Naa mira para nada, es mucho cuesta arriba insisto en que a mi no me quede no quiere decir que sea cosa del otro mundo. Alguien ue sabe mucho de eso es Bruce Reynolds puedes buscar informacion en su pagina o en el mismo google, su pagina es la de rentron.com. El ha dicho que solo con saber los carriers activos es suficiente para diferenciar entre uno y otro dispositivo. Lamento mucho no poder ayudar mas ya que soy mas pragmatico -por no decir holgazan- y prefiero una solucion mas facil.


En cuanto a lo del giroscopio, no se, tal vez lo mas adecuado sea un acelerometro que te ayude a detectar los movimientos de los ejes. Nunca he usado pero el master Nocturno te puede contar bien como funcionan esos bichos.

Saludos
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #6 en: 25 de Mayo de 2007, 03:20:07 »
El acelerómetro te servirá, pero sólo si está parado o se mueve a velocidad constante. Los hay analógicos y digitales y suelen ser muy fácil de usar.

Desconectado rasec_1984

  • PIC10
  • *
  • Mensajes: 29
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #7 en: 26 de Mayo de 2007, 05:21:53 »
Hola matador, con lo primero te podria ayudar de la siguiente forma (espero) :

tiempo=0

mientras pulsador=1
  tiempo=tiempo+1
 
  si tiempo = 101
    tiempo = 0
  fin si

fin mientras

tiempoT = 10 * tiempo    ' multiplicas por 10 o por el que quieras, considerando el tiempo máximo que quieras esperar

pause (tiempoT)

led=1

 Solo funcionara si es que hay que presionar un pulsador, ya que uno no tiene la presicion para calcular cuantos microsegundos o milisegundos mantiene apretado el boton. Si la señal es un pulso que viene de otro circuito, el cual siempre manda el mismo pulso (misma duración) no servira. En este ejemplo el retardo máximo sería de 100*10 = 1 s, en el peor d elos casos.

Con lo de enviar señales a diferentes frecuancias, puedo decir que si se puede. La portadora de ambas señales deben tener la misma frecuencia, o sea 38 KHzm, pero el  protocolo de los controles remotos IR usan tiempos bases de 0,7 ms (aprox.) para transmitir el código. O sea, si el control remoto mantiene durante 0,7 seg una señal de 38 KHz está enviando un 1, si no envia nada durante 0,7 seg, envía un cero. Si envía durante 1.4 seg una señal de 38 KHz, está enviando un 11 binario. Por lo tanto, tu podrías enviar una señal cuadrada con un periodo de 0,7 seg para un sensor, y una señal cuadrada con un periodo de 1,4 seg, ambas moduladas en amplitud con portadora de 38 KHz. Lo malo es que para lograr hacer eso necesitas tres 555, uno que genere los 38KHz, otro que genere la señal de periodo 0,7 ms, y otro que genere la señal de 1,4 ms. Ambas señales pueden ir al colector de dos transistores diferente, y a la base de cada uno, legaría la señal de cada uno de los otros dos 555. En el emisor, (o colector) pones el diodo emisor IR. Luego en el receptor no llegaran los 38KHz, si no que llegara la señal de periodo 0,7 ms o 1.4 ms, dependiendo el caso. Espero que sirva de algo.....saludos ;)





........Los grandes espíritus siempre han encontrado una violenta oposición de parte de mentes mediocres.....

Desconectado Matadoor

  • PIC10
  • *
  • Mensajes: 41
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #8 en: 26 de Mayo de 2007, 14:50:54 »
Muchas gracias rasec_1984 listo con tu codigo ya logre mi objetivo (al fin :lol:), pero me has dejado pensando respecto a lo del protocolo de trasmision infraroja, y te tengo otra duda, pues mira he estado investigando y resulta que existe la manera de poder gobernar un sistema mediante el uso de un control remoto de television y un detector infrarojo con el pic, crees tu que sea posible lograrlo??? Porque con eso evitaria el sistema de modulacion que me parece va a estar mas demorado ponerlo a punto al que hacias referencia en el anterior post, digo existira la posibilidad de decodificar la informacion transmitida por un control remoto basandose en un pic y que este gobierne luego otro sistema??........
Gracias por responder.....
Saludos

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #9 en: 26 de Mayo de 2007, 19:11:57 »
existira la posibilidad de decodificar la informacion transmitida por un control remoto basandose en un pic y que este gobierne luego otro sistema??........

De eso existe mucha información en el foro, realiza una búsqueda.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado rasec_1984

  • PIC10
  • *
  • Mensajes: 29
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #10 en: 26 de Mayo de 2007, 21:36:23 »
mmm...claro que puedes, pero si es para un robot como me dijiste, piense que la solucion de los tres 555 es mejor que dos controles remotos de television para emiotir, no seran muy grandes?. Ademas no es tan dificil ajustar una señal con un periodo de 38 KHz, haces los calculos de R y C adecuados, luego en R pones una R varialbe un poco superior a la calculada y ajustas la frecuencia con ella. Haces un programita con un pic que mida que te mida la frecuencia, si es inferior a 38 KHz que encienda un led, si es superior que encienda otro, claro que habria que ver bien el tema de los tiempos, osea, que el programa mida el tiempo real, ya que es una frec alta, y lo mismo haces para las otras señales donde mandas 010101 binario, o sea 0,7 seg en cero y 0,7 seg en 1, y la otra señal que encia 0011001100, o sea 1.4 seg en 1 y 1.4 seg en cero. Si el control lo quieres para otra cosa, claro que puedes detectar la señal de un control remoto, lo malo es que todos envian señales diferentes, por lo que tendras que leer las señales del que vas a usar, y luego hacer tu programa(a menos que encuentres info al respecto). Una vez bue
scando por internet encontre este control remoto de 8 canales, donde el emisor lo fabricas tu mismo, hechale un vistaso, de seguro te sirve....ademas lo que dice mario es verdad, utiliza el buscador del foro, demas encuentras algo interesante...saludos ;)
........Los grandes espíritus siempre han encontrado una violenta oposición de parte de mentes mediocres.....

Desconectado rasec_1984

  • PIC10
  • *
  • Mensajes: 29
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #11 en: 26 de Mayo de 2007, 21:41:54 »
Una vez buscando por internet encontre este control remoto de 8 canales, donde el emisor lo fabricas tu mismo, hechale un vistaso, de seguro te sirve....

jaja, se me olvido poner el link....aki va

http://www.coolcircuit.com/project/8chrem/
........Los grandes espíritus siempre han encontrado una violenta oposición de parte de mentes mediocres.....

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Tiempo de espera aleatorio para pic 16f84
« Respuesta #12 en: 27 de Mayo de 2007, 16:53:28 »
busca en el foro a sino vete a gorobotics.net que es donde esta un sistema que usa un control universal para manejar lo que quieras.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."