RS485 - Jesus2Perea/Lab-comunicaciones-22-2 GitHub Wiki
Bienvenidos al Protocolo-RS485: wiki!
Laboratorio de comunicación RS485 El siguiente descripción del laboratorio desarrolla un protocolo de comunicación que permita la transmisión entre dos sistemas embebidos para realizar el intercambio de datos de manera ordenada entre dos sistema embebido como es el caso de este proyecto un Arduino uno. De esta manera el grupo de trabajo desarrollo un protocolo que permita la comunicación entre dos sistema embebido y la interpretación, transmisión de datos como lo será la corriente. Realizar la conectividad de los dispositivos que se muestran en la figura 1, con el propósito de poder comunicar cada uno de los terminales, utilizando los diferentes protocolos propuestos. En el computador, se de hacer una interfaz que muestre de manera numérica y gráfica, cada una de las variables que se encuentran conectados al respectivo esclavo.
Protocolo RS485
El estándar industrial RS485 o también conocido como EIA-485 es un estándar de capa física según el modelo OSI. Es decir, no pone normas ni restricciones sobre el contenido, forma, o codificación de los mensajes enviados. Utilizando RS485 como capa física es posible implementar un bus de campo industrial tipo MODBUS para comunicación entre equipos industriales o DMX para el control de luces entre otras aplicaciones. El estándar RS485 es ampliamente utilizado por su robustez, fácil implementación y buenas prestaciones.
Buses de de campo son dispositivos mediante el cual al interior de una computadora se transportan datos e información relevante.
Para la informática, el bus es una serie de cables que funcionan cargando datos en la memoria para transportarlos a la Unidad Central de Procesamiento o CPU. En otras palabras, un bus de datos es una autopista o canal de transmisión de información dentro de la computadora que comunica a los componentes de dicho sistema con el microprocesador. El bus funciona ordenando la información que es transmitida desde distintas unidades y periféricos a la unidad central, haciendo las veces de semáforo o regulador de prioridades y operaciones a ejecutar.
Bluetooth en Arduino:
Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2.4 GHz. Los principales objetivos que se pretenden conseguir con esta norma son:
- Facilitar las comunicaciones entre equipos móviles.
- Eliminar los cables y conectores entre estos.
- Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre equipos personales.
Diseño de código para la comunicación Arduino y bluetooth:
Comunicación simplex entre dos sistemas embebidos (Arduino uno).
El modo simplex, también denominado unidireccional, es una transmisión única, de una sola dirección. Un ejemplo de transmisión simplex es la señal que se envía de una estación de TV a la TV de su casa.
Materiales a usar:
- Modulo rs485
Conversor Serial a RS485, permite usar microcontroladores como Arduino en buses de datos RS485 como maestro y esclavo. El protocolo RS485 permite establecer comunicación entre dispositivos en largas líneas de hasta 1200m a altas velocidades de transmisión.
Características:
-
- Voltaje de funcionamiento: 5V
-
- Corriente de operación: 500uA
-
- Chip: MAX485
-
- Velocidad max de transmisión: 10Mb @ 10m
-
- Distancia máxima: 1200m
- Modulo BLUETOOTH
El módulo Bluetooth HC-05 nos permite conectar nuestros proyectos con Arduino a un smartphone, celular o PC de forma inalámbrica (Bluetooth), con la facilidad de operación de un puerto serial. La transmisión se realiza totalmente en forma transparente al programador, por lo que se conecta en forma directa a los pines seriales de nuestro microcontrolador preferido (respetando los niveles de voltaje, ya que el módulo se alimenta con 3.3V). Todos los parámetros del módulo se pueden configurar mediante comandos AT. La placa también incluye un regulador de 3.3V, que permite alimentar el módulo con un voltaje entre 3.6V - 6V. Este módulo es el complemento ideal para nuestros proyectos de robótica, domótica y control remoto con Arduino, PIC, Raspberry PI, ESP8266, ESP32, STM32, etc.
Características:
-
- Voltaje de operación: 3.6V - 6V DC
-
- Consumo corriente: 50mA
-
- Bluetooth: V2.0+EDR
-
- Frecuencia: Banda ISM 2.4GHz
-
- Modulación: GFSK(Gaussian Frequency Shift Keying)
-
- Potencia de transmisión: 4dBm, Class 2
-
- Sensibilidad: -84dBm a 0.1% BER
-
- Alcance 10 metros
-
- Interface comunicación: Serial TTL
-
- Velocidad de transmisión: 1200bps hasta 1.3Mbps
-
- Baudrate por defecto: 38400,8,1,n.
-
- Seguridad: Autenticación y encriptación
-
- Temperatura de trabajo: -20C a +75C
-
- Compatible con Android
-
- Dimensiones: 37*16 mm
-
- Peso: 3.6 gramos
- Motor DC
Este motor DC es utilizado generalmente para juguetes y pequeños proyectos de electrónica, es un producto de bajo costo y eficiente, se caracteriza por tener gran velocidad pero muy poco torque, por eso si se desea utilizar en robots es necesario hacer acoplar piñones para reducir la velocidad y aumentar la fuerza.
características:
-
- Eje de salida: 2.0mm
-
- Voltaje: 3 V – 6V DC
-
- Velocidad: 5000 RPM 3V-16500 rpm 6V
-
- Peso: 14 g
- Modulo efecto hall (corriente)
El sensor ACS712 es un sensor de corriente por efecto hall, que provee un solución económica y precisa para medir corriente en AC o DC, ya sea en ambientes industriales o comerciales. Este Sensor funciona transformando un campo magnético surgido de el paso de la corriente por un alambre de cobre interno en el sensor, y convirtiendo este campo en un voltaje variable. Esto significa que a mayor cantidad de corriente que tengamos, mayor voltaje vamos a tener en un pin.
Características:
-
- Sensor lineal de efecto hall de bajo offset.
-
- Alta precisión de medida debido a la cercanía del sensor de efecto hall al elemento de paso (ambos se encuentran dentro del IC).
-
- Baja resistencia del elemento de paso para una baja disipación de potencia (1.2 mΩ típico)
-
- Capacidad de sobrevivir a picos de corriente de hasta 5 veces la corriente nominal de operación.
-
- Las terminales del elemento conductor se encuentran aisladas eléctricamente (Hasta 2.1KV) por lo que evita la necesidad de aislamiento externo (optoacopladores).
Características técnicas
-
- Voltaje de salida: Analog output 66mV / A
-
- Voltaje de operación: 4.5V ~ 5.5V
-
- Salida de voltaje sin corriente: VCC / 2
-
- Dimensiones PCB: 31 (mm) x14 (mm)
-
- 5 μs output rise time in response to step input current
-
- Ancho de banda 80 kHz
-
- Error Total Salida: 1.5% at TA = 25°C
-
- Resistencia interna: 1.2 mΩ
-
- Mínimo voltaje de aislamiento entre pines 1-4 a pines 5-8: 2.1 kVRMS
-
- Sensibilidad de salida: 66 to 185 mV/A
- Resistencia de 1 OHM a 1/4 watt
Barra cerámica de carbón con una resistencia eléctrica de 1 Ω, con una tolerancia del 5% y una capacidad de disipación de ¼ de Vatio.
Características
-
- Resistencia Eléctrica: 1 Ω
-
- Potencia de disipación: 0,25 vatios.
-
- Tecnología de inserción (through hole).
-
- Fabricante: Genérico.
-
- Disposición: Tipo Axial.
-
- Tolerancia: 5%.
Se remplazo el sensor hall, por una resistencia de carbón a 1/4 de watt de 1 ohm dado al error y las tomas detectadas por el efecto hall al tener un margen de datos muy alto al utilizado.
- Pantalla LCD
Las siglas LCD significan “Liquid Cristal Display” ó pantalla de cristal líquido. Es una pantalla plana basada en el uso de una sustancia liquida atrapada entre dos placas de vidrio, haciendo pasar por este una corriente eléctrica a una zona especifica, para que así esta se vuelva opaca, y además cuenta (generalmente) con iluminación trasera. Las pantallas LCD de color, cada pixel individual se divide en tres cédulas o sub pixeles con los colores RGB (Rojo, Verde y Azul) respectivamente. Y así cada pixel puede controlarse para producir una gran variedad de colores distintos.
Características:
-
- Resolución: 2 líneas x 16 caracteres
-
- Controlador: LCD HD44780
-
- Voltaje de Operación: 5 Vcc
-
- Dimensión de la pantalla: 65mm x 16mm
-
- Temperatura de operación: -20 ° C a + 70 ° C
-
- Temperatura de almacenamiento: -30 ° C a + 80 ° C
-
- Dimensiones de la tarjeta: 80 x 36 x 12 mm
Esquemático del circuito
Propuesta #1:
Propuesta final e implementada:
Resultados
Resultados preliminares con el modulo de efecto hall para corriente:
Comunicación rs485 resultado de mandar datos de tipo char visualizados en la LCD.
Circuito experimental.
Circuito iniciado desde 0
Circuito a 5v y oscilando con una corriente de 0.88 a 1.2 [mA] con un error de 1.5+-
Conclusiones
-
Se detectaron varias dificultades al momento de la transmisión y toma de datos, se analizo primero por medio del modulo de efecto hall el sensor ACS712, detecta cambios pero este al tener un margen de tolerancia hasta 20 Amperes se identifico que la comunicación de datos no es la esperada además de para aplicaciones como una estación meteorológica con equipos sensibles a cambios no estaría adecuado con un rango de error, así que se prefirió realizar un cambio por una resistencia y detectar los cambios de tensiones a partir de multímetros así, cuando el motor genere cambios estos serán mas precisos al usar la ley OHM.
-
Por otro lado con el sensor hall como generaba cambios a tiempo real muy rápido pero con un margen de error mismo generado a partir de la tolerancia generada, la transmisión de datos a una aplicativo con comunicación bluetooth genera interferencias mandando y generando datos que son complicados de transferir de manera rápida y precisa.
Referencias:
- Weis, O. (2019). Todo sobre RS485 Pinout y Señales. from https://www.virtual-serial-port.org/es/article/what-is-serial-port/rs485-pinout/
- Transmisión de datos en la red. from http://www.cca.org.mx/profesores/abc/pdfs/cisco/cisco_0.pdf
- Bembibre, V. (2022). Definción de Bus de datos. from https://www.definicionabc.com/tecnologia/bus-de-datos.php#:~:text=Un%20bus%20de%20datos%20es,Central%20de%20Procesamiento%20o%20CPU.
- Crespo, E. (2019). Bluetooth en Arduino. from https://aprendiendoarduino.wordpress.com/2016/11/13/bluetooth-en-arduino/
- Tutorial Básico de Uso del Módulo Bluetooth HC-06 y HC-05. from https://naylampmechatronics.com/blog/12_tutorial-basico-de-uso-del-modulo-bluetooth-hc-06-y-hc-05.html
- Tutorial sensor de corriente ACS712. from https://naylampmechatronics.com/blog/48_tutorial-sensor-de-corriente-acs712.html