Página principal
Transmisor de la temperatura entre el PIC y el PC mediante RS232
xsetaseta@gmail.com



El otro día me mandaron un correo pidiendo que hiciera que la temperatura de PIC se mandase al PC mediante la conexión serie.
Pues dicho y hecho, me puse en un momento de aburrimiento manos a la obra.
Lo primero era hacer un adaptador del PIC que maneja señales TTL al puerto serie del PC que maneja señales +15V y –15V, conexión RS232.
No quiero emplear circuitos integrados como el MAX232, por lo que me dedique a buscar adaptadores por la red mediante transistores, y encontré este: http://www.tecnotopia.com/2004/07/07/circuito-conversor-de-niveles-rs-232-a-ttl/
En el primer esquema que viene existe un error en la conexión del transistor PNP BC557, donde está el colector tiene que estar el emisor y donde está el emisor se debe poner el colector. Por lo demás funcionan de maravilla los dos esquemas .
Los que no tengan conexión serie, pueden utilizar un adaptador de USB a RS232.
En Ebay por 7€ puedes encontrar uno en http://myworld.ebay.es/comprar_barato/.
Estos son los dos esquemas, el primero rectificado, elije cualquiera de los dos.

Esquema 1.
Esquema 2.

Comento que no hace falta la línea de RxD, el PIC solo manda datos.

Conexión al PIC.
El hardware o circuitos ya está realizado, ahora empieza el software o programa.
Lo primero es definir la configuración de la conexión serie.
He elegido 9600 de velocidad, 1 BIT de stop, sin paridad y sin control del flujo mediante hardware.
El código fuente para el PIC es: terser.asm
El programa manda cada 1 segundo mas o menos, el voltaje del diodo y el voltaje del sensor LM35. Las dos medidas se mandan en código ASCII, para que cualquier terminal pueda verlas.
Si solo quieres comprobar como manda las temperaturas utiliza el programa de comunicaciones  HyperTerminal de Windows, o minicom en Linux
El programa monitor de la temperatura lo he realizado con Gambas en Linux, es una especie de Visual Basic para Linux.Codigo fuente en gambas
Dependiendo del puerto serie al que conectemos el circuito deberemos cambiar la línea siguiente:
Sport.PortName = "/dev/ttyUSB0"-para un adaptador de USB a serie
Sport.PortName = "/dev/ttyS0"-para el com1
Cualquiera con mínimos conocimientos de programación puede hacer otro programa en C, VB, etc.
Programa en Gambas.
Resta el voltaje del sensor del voltaje del diodo y lo divide por 4.
(V.Sensor-V.Diodo)/4
terservb
Programa en VBasic
terser.exe
Montaje de circuito con el adaptador serie