sábado, 15 de septiembre de 2012

Autómata didáctico con PIC






El Software corre bajo Windows, integra  un editor de sentencias, accesos a los ficheros , transferencia y carga del los programas desde el Autómata y viceversa  , control de errores de programa y un visualizador online del estado de las entradas y salidas  e implementado el  protocolo Modbus RTU para la comunicación.


domingo, 18 de diciembre de 2011

Control de Temperatura con PIC - Modbus-RTU- 485 y Ascii Protokol






Una vez mas comienzo un nuevo proyecto ,un control de la temperatura de una caldera de Gasoil.
El proyecto se basa
principal mente en el control autónomo con un PIC , en concreto el 16F877 , realizando un status de las sondas en el PC bajo en soft de SCADA. La comunicacion con el PC será Modbus, un protocolo muy conocido en la automatización para comunicar el hombre con la maquina.



El SCADA que utilizo es un programa gratuito y de muy buenas
caracteristicas , visualizacion y programacion en objetos , practicamente no necesitas código ,es el Xscada - Xedit , un proyecto muy bueno. http://www.micset.net/


Descarga los ficheros del proyecto:
Fichero HEX para Pic16F877 - 20 Mhz ( Modo ModBus-RTU )

Fichero Fuente de Visualizacion Status sondas- XScada-ModbusV2

( Mejorada la comunicación , no necesita la EEPROM interna )




Se utiliza dos entradas
Analógica del 16f877 , AN0 y AN1 , un Led de Estado y dos salidas digitales conectadas mediante el BC547 a dos Reles , en concreto el RB0 y el RB4. La velocidad de comunicación es 9600 Baudios, 8 bits de datos , sin paridad y un bit de Stop.
En cuanto al conversor utilizo el famoso MAX485 , donde habilito la
trasmisión con una salida del PIC, RC5.

Los valores de las sondas conectadas al puerto
analógico se escriben en direcciones de la EEPROM interna del PIC.
Estas direcciones o registros
están situadas al principio de la memoria EEPROM. Se dispone de cuatro registros para cada una de las sondas. Temperatura Sonda, Set de temperatura ,Diferencial y Calibración de la sonda.Según el registro de Set , se dará un temperatura de disparo de los Reles teniendo en cuenta el diferencial programado.
Se pueden utilizar cualquier programa de Analisis de MODBUS , pero yo utilizo el XScada de MICSET

El programa se basa en cuatro registros básicos por sonda para el control de la temperatura , tanto en Modbus o Ascii Protokol los registros se escriben en la memoria interna del Chip ,cada uno con sus diferencias y direcciones.
Si modificamos el programa para incorporar mas sondas , tendríamos mas registros, para un 16F877 tenemos de capacidad interna 255 registros.
El primer registro memoriza la temperatura, seguido del Set de temperatura que es la activación de temperatura donde queremos que el Relé se accione, seguido del un diferencial para tener el margen de activación y desactivación , un registro de calibrado que consiste en ajustar las diferencias físicas y desiguales de la sonda , utilizo una NTC de resistencia 10K para a 25 ºC .
Los valores representados están en decimal , 8 Bits.
Las sondas NTC al aumentar la temperatura disminuye su resistencia , el valor proyectado en el PIC es parejo a la temperatura, físicamente se comporta utilizando el logaritmo siguiente :
En el proyecto no utilizo este logaritmo , ya que los resultados que obtengo son bastante lineales.
La NTC que utilizo es : 103AT-2
Temperatura = 10000 *EXP(3435*(1/(T+273)-(1/(25+273))))

La mejor forma de calibrar las sondas es hacerlo con un termómetro calibrado, para asegurar que la medición reflejada es la correcta
.
Mapa de Memoria de EEPROM Interna – MODO MODBUS- RTU
Lectura Función – 04 – y para la escritura se empleará la Función – 03

Mapa de Memoria de EEPROM Interna – Ascii Protokol ( Protocolo del XScada )
Format : [DeviceAdres;RegAdres;Write;Value]

El esquema es simple , no he dibujado el cristal de 20 Mhz y los condensadores correspondiente.


domingo, 20 de noviembre de 2011

Termometro MODBUS

Ya tengo el nuevo proyecto , un control de dos sondas NTC , via Modbus gobernado por un PIC 16f877.
Para la visualizacion de el Status utilizo un SCADA libre ,en concretoel Xedit (MICSET ).
Los componentes son sencillos y faciles de encontrar en la tienda de electronica habitual.
La placa principal esta montada en una perforada para prototipos.
Esta incorpora un PIC , 3 reles finder, tres transitores, y los mas importante , un conversor TTL -485 , el famoso MAX485.



lunes, 15 de agosto de 2011

Explorer688



Explorador688 , realizado en el 2009,
Enlace:http://galeon.com/explorersavage/INDEX.html


domingo, 1 de mayo de 2011

Control de Nivel de Lastre con PIC (Seawolf)


El control de nivel de agua dentro del depósito de lastre se basa principalmente en una sonda realizada con dos hilos de cobre incrustada dentro del depósito colocada según el dibujo adjunto. Se conecta a una de las entradas analógicas de microcontrolador , uno de los hilos estará conectado a negativo y el otro hilo a la entrada correspondiente de una de las señales analógicas de entrada , Ejemplo . AN0.

Su funcionamiento a nivel de programación es muy simple, cuando no exista conductividad el valor analógico será > de 0 y si conduce porque el nivel de lastre a llegado a su limite será 0 , en este caso cambiaremos por seguridad la válvula de tres vías para que corte la entrada de agua y no se inunde el casco seco.



VIDEO PRUEBA SUBMARINO LASTRE







domingo, 17 de abril de 2011

Control de lastre con Bomba de Vacio - Submarino RC-Seawolf




Esta idea me surgió hace unas semanas , es peliagudo lo que voy a describir pero la lucidez aparece en momentos concretos de nuestra vida.

Ya en el hospital ingresado tras haber sufrido un infarto de miocardio agudo en una de las tres arterias , en concreto la descendente anterior , una de las dos palometas de 3 vías colocadas en las muñecas de las manos para extracción o introducción de líquidos (suero) , me aparece la idea de utilizarlo como válvula de tres vías junto con un servo para el control del submarino de entrada y salida del lastre.

Me compré un medidor de presión arterial de muñeca para poder controlarme mi presión arterial de vez en cuando , la curiosidad me llevó a desmontar el dispositivo para ver su funcionamiento.

Cual fue mi sorpresa que me encontré una bomba de vacío miniatura instalada , que me serviría perfectamente para realizar el llenado y vaciado del lastre de mi submarino.

Bomba de Vacío -KPM14A

Voltaje – DC3.0V

Consumo - <380mA

Tiempo de expulsión - <7.5 S (From 0 to 300 mmHg in a 100CC tank.)


Valvula de 3 vias

Existen muchos tipos de marcas y modelos , las que tenía instalada fueron unas SURUWAY.

360° Rotación

Para la presión de (85 psi)

Uno de los puntos mas importantes a la hora de construir un modelo de estas características es el control del lastre de un submarino de Radiocontrol.


Existen varios tipos de métodos para manipular el lastre un submarino RC , cada uno tiene sus diferencias y dificultades , esta funciona simplemente con una bomba de vacío de 3 Voltios , de las utilizadas en los medidores de presión arterial como he comentado y una llave de palometa de 3 vías utilizadas para el suero.

Las figura que expongo muestra perfectamente su funcionamiento y con un buen control de radio y sistema de seguridad podemos tener perfectamente controlado el llenado y el vaciado del lastre de nuestro modelo.


Funcionamiento :

El funcionamiento es muy simple y lógico ,partiendo de un recipiente estanco, en este caso de un tubo de PVC transparente para poder ver mejor el funcionamiento interno, más un depósito interno para el lastre.

Pasos previos antes de introducir el submarino en el Agua.

Como es una acción de vacío, tenemos que preparar el interior con de presión para después succionar el agua

Dejando nuestro modelo en flotabilidad positiva a nivel de flotación correcto y dejando la válvula de tres vías en posición 1-3, accionamos la bomba de vacío 10 segundos para extraer el aire contenido en el depósito de lastre y provocando un vacío en el tubo estanco que mas adelante veremos.

.

Una vez colocado el submarino en el agua, para el llenado del lastre giramos la válvula de tres vías en posición 2-3.( Bomba parada).

Ahora tenemos un vacío dentro del casco seco que utilizaremos para succionar el agua cuando nos interese para llenar el lastre de agua.

Milagrosamente veremos como el agua se introduce en el depósito de lastre por acción de vacío consiguiendo sumergir nuestro modelo por peso y volumen.

Hay que tener en cuenta que si sobrepasamos los límites de la altura del depósito de lastre, nuestra bomba no le pasará nada, pero inundaremos el casco seco.

Para lograr una detención de agua en la zona de vacío montaremos un detector de agua, donde pondrá en marcha la bomba para poder extraer el agua del lastre, por seguridad.

Esta claro que para sacar el agua del lastre simplemente pasaremos a posición inicial 1-3 , desalojando el agua del lastre y a la vez creando el vacío del principio dejando el submarino preparado para la siguiente inmersión.

Este dispositivo es efectivo ya que este tipo de válvulas al poder trabajar con posiciones intermedias tienes una regulación muy variable y ajustada ya que el control lo realizará un servo acoplado a la palometa de su eje de rotación

SERVO + VALVULA

DETALLE DE ACOPLAMIENTO


VIDEO - ACOPLE SERVO-VALVULA



VIDEO - FUNCIONAMIENTO LASTRE POR VACIO



martes, 9 de marzo de 2010

Comunicacion PIC via Radio 433 Mhz.



Paquina WEB :http://savages.da.ru/

Utilizo dos módulos de AUREL , un receptor RX-4M50FM60SF y un transmisor TX-4MAVPF10.
Estos conectados al PIC ,con los correspondientes MAX232 , mas un protocolo de comunicación , consigo controlar dos servos FUTABA y 3 Reles.

En la parte del receptor , lo armo de una pantalla LCD de 4x20 caracteres , dos potenciómetros de 1K , conectados al las dos patas de PIC AN0 AN1 , y tres pulsadores conectados a las patas RB0 a RB3 del PIC.

En la pantalla refleja las posiciones de timers y el estado de la salida de los reles.

En el receptor , a parte de conectar el PIC y el modulo AUREL , conecto dos salidas del PIC , tres RELES y un LED de estatus , de comunicación con el transmisor , verificando la perdida de comunicacion y activando el rele de bomba de agua de lastre.

El protocolo de comunicación utilizo una base de punto a punto , a velocidad 1200 baudios, 1 bit de stop . VIA RS232.
Utilizo 5 Bytes para transferir el telegrama el primer byte siempre es 066 (Decimal ) , el segundo byte es el valor del primer servo , el tercero es el segundo servo , el cuarto byte es el valor de las 3 salidas en decimal y el ultimo byte siempre es 065 (Decimal ).

El por que de estos valores al principio y al final , es de verificar que no entre interferencias que puedan equivocar los valores de control.

Protocolo de Comunicacion:

065........123........210........001.......066

065 > Byte Inicial

123 > Valor posicion del Servo Nº1

210 > Valor posicion del Servo Nº2

001 > Valor Binario de Activacion de Salidas Reles.