Comunocacion pic-pc

Hola que tal! Me llamo juan manuel, soy argentino y estudio ing. Electrónica, te escribo por q´estoy en un proyecto electrónico q´tengo que realizar, este consiste en un medidor de distancia por ultrasonido, sindo lo q´controle los sensores un pic 16f84A/04, el problema surge por q´tengo q´pasar las lecturas de las distancias a una pc, me gustaría si sabes algo de comunicación pic-pc q´me lo mandes por favor, y también un poco de información de como puedo generar un contador interno en el pic o externo con una frecuencia de 17.190Hz, siendo esta por q´la velocidad del sonido es de 34.380cm/seg pero como tomo medidas del eco la tengo q´dividir por dos, o sea q´ los pulsos q´me cuente el contador directamente es la distancia en cm, desde ya muchas gracias por la atención.
e-mail [email protected]
Respuesta
1
La comunicación con el Pc se puede realizar de forma sencilla bien sea por puerto paralelo o por puerto RS232, solo debes aprender un poco de manejo de estos puertos en cualquier lenguaje de programación, yo te recomendaría hacerlo bien sea en Assembler o en C, ya que me parece que para tu aplicación no es necesario meterte con lenguajes de alto nivel.
En cuanto al contador se puede hacer de manera sencilla utilizando en PIC y no complicándote con circuitos externos, yo hice un circuito muy similar al tuyo y me toco utilizar un cristal de 10MHz ya que dividido por 4 tienes 400 ns de tiempo de instuccion el cual puedes utilizar para hacer tu contador de la siguiente manera:
Envías el pulso de sonido y llamas la siguiente subrutina de conteo
count clrf count1
Clrf count2
Conta1: btfsc ptoa, 3 ;bit del puerto donde captas la señal de sonido
return
Incf count1, 1
Movlw 00h
Xorwf count1, 0
Btfss status, z
goto conta1
conta2: incf count2,1
goto conta1
De esta forma, cuándo envíes el pulso de sonido, la rutina se encargara de entregarte en count1 y count2 la cantidad de veces que se realizo el conteo entes de que llegara la onda transmitida y así sabiendo que cada instrucción toma 400ns puedes determinar la distancia en la que se encuentra el objeto.

1 respuesta más de otro experto

Respuesta
1
La comunicación del PIC con la PC lo podes hacer com RS-232. Si usas el 16F84 no tiene pines especiales de SCL y SDA ( comunicación serie ) en cambio si usas uno un poco más grande como el 16F873 ya viene con pines destinados a esta función, lo que te haría un poco más sencilla las cosas, siempre y cuando manejes bien la programación de estos pines. Con respecto a la distancia, la solución es muy sencilla. Una vez que salís del PIC con RS-232, conectas a continuación un 75176 que te lo pasa a RS-485 y con esto podes transmitir hasta 1000m de distancia. Luego haces lo mismo del lado de la PC, conectas otro 75176 y lo volvés a pasar a RS-232 y de ahí te vas al port serie. La hoja de datos es muy fácil de encontrar en internet.
Con respecto a como generar esa frecuencia la podes hacer por programa con ese PIC o poner otro dedicado exclusivamente a eso ( lo que me parece un innecesario ). Ahora, no entiendo bien que tenés que hacer con esta frecuencia de 17.19 hz, ¿tenés qué tomar mediciones cada ese tiempo?, ¿Tenés qué enviar esa frecuencia a otra parte del circuito?
Espero que te sirva y si me detallas un poco más eso que te pido quizás te pueda ayudar un poco más.
Hola q´tal de nuevo, desde ya muchas gracias, te aclaro lo de la distancia primero, lo q´tengo q´enviar son en definitiva a la pc son los pulsos contados, no necesito tarnsmitir distancias largas( por lo del 75176 y RS-485 q´me pusiste), lo del contador con esa frecuencia es por q´mi proyecto es precisamente para medir distancias por ultrasonido, al enviar los pulsos con el sensor tx(US) inicializo el contador con frecuencia =17.190Hz por ser esta la mitad de la velocidad del sonido expresado en cm v=34.380cm/seg, es la mitad por q´el pulso recorre dos veces la distancia q´quiero medir, cuando regresa el pulso lo detecto con el RX(US) y corta el contador, esos pulsos que tiene el contador es la distancia de donde revoto el pulso expresada en cm, bueno eso nomas era muchas gracias por la atenciony si me quieres comentar algo con mucho gusto lo leeré... chau
Ya entiendo. Entonces no creo que tengas mayores problemas, ya que para contar pulsos con el PIC no es muy difícil. O bien lo haces por pooling o por interrupción, si es que lo tienes haciendo otra cosa además de esto.
Veo que tenés bastante claro el panorama, aunque si te quedó alguna duda puntual volveme a contactar por este medio que no tengo problemas en contestarte.
Si ya no puedo hacer, por ahora, más nada por vos, te pido que finalices la pregunta, ya que me ha pasado que me la dejan activa por tiempo indeterminado, más allá de haber concluido las preguntas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas