Índice
Introducción
En esta publicación, aprenderás a comunicar un Raspberry Pi 4 B+ con un M-Duino por RS485 usando un módulo MAX 485.
Requisitos para comunicar Raspberry Pi 3 B+ con un módulo MAX485
- M-Duino / ArdboxFamília
- Touchberry Pi 10.1" con UPS y RTC y RS485
- Módulo MAX485
Módulo MAX485
El chip MAX485 integrado es un transceptor de baja potencia y velocidad de respuesta limitada que se utiliza para la comunicación RS485. Al adoptar la comunicación semidúplex para implementar la función de convertir la información de nivel TTL en nivel RS485, puede alcanzar una velocidad de transmisión máxima de 2,5 Mbps.
Pinout
Dependiendo de la conexión RE y DE, el módulo funciona como receptor o transmisor. Conectado a VCC, transmite datos y conectado a GND recibe datos.
Es un módulo económico. Se pueden encontrar lotes de 5 unidades por menos de 1 €.
Conexiones
Raspberry Pi a MAX485
Pines Raspberry Pi 3 B+ | Pines del Módulo MAX485 |
UART_TXD | RX |
UART_RXD | TX |
GPIO 17 | RE |
GPIO 27 | DE |
MAX485 a M-Duino/Ardbox
Pines del Módulo MAX485 | Pin M-Duino / Ardbox |
VCC | 3.3 V |
B | B- |
A | A+ |
GND | GND |
Pines del Raspberry Pi 3 B+
Diagrama
Python Code Example
En este ejemplo de código, enviamos un carácter desde el PLC a la Raspberry, lo imprimimos y respondemos al PLC con el mismo carácter, que es un "eco". Observa que, en caso de recibir datos, los pines 17 y 27 se desactivan y se activan.
#!/usr/bin/env python3
' IMPORTANT: remember to add "enable_uart=1" line to /boot/config.txt
from gpiozero import OutputDevice
from time import sleep
from serial import Serial
' RO <-> GPIO15/RXD
' RE <-> GPIO17
' DE <-> GPIO27
' DI <-> GPIO14/TXD
' VCC <-> 3.3V
' B <-> RS-485 B
' A <-> RS-485 A
' GND <-> GND
re = OutputDevice(17)
de = OutputDevice(27)
' enable reception mode
de.off()
re.off()
with Serial('/dev/ttyS0', 19200) as s:
while True:
' waits for a single character
rx = s.read(1)
' print the received character
print("RX: {0}".format(rx))
' wait some time before echoing
sleep(0.1)
' enable transmission mode
de.on()
re.on()
' echo the received character
s.write(rx)
s.flush()
' disable transmission mode
de.off()
re.off()
Echa un vistazo al controlador de automatización programable basado en Raspberry Pi
Automatización, supervisión y control con la potencia y velocidad de la Raspberry Pi
Con puertos dobles RS-485, un puerto doble Ethernet, SAI que garantizará un suministro mínimo de energía, esto asegurará un apagado seguro y protección de datos SD. Además, un bus CAN.
Un PLC con la potencia de Raspberry Pi.
Cómo comunicar una Raspberry Pi 3 B+ con un módulo MAX485