📡 MAX485 TTL til RS485 Modul
Det her lille modul gør din microcontrollers spinkle TX/RX-signal til et robust RS485-differentialsignal, der kan løbe hundredvis af meter over et snoet ledningspar – fx et gammelt netværkskabel ned til drivhuset. Det er også nøglen til at snakke Modbus RTU med energimålere og industriudstyr.
Du skal bruge: mindst to moduler (ét i hver ende), et parsnoet kabel og en Arduino eller ESP32 i hver ende.
🛒 Køb MAX485 Modul📄 Officielt datasheet (PDF)⚡ Hurtige specifikationer
| Parameter | Værdi |
|---|---|
| Chip | MAX485 (Maxim/Analog Devices), half-duplex |
| Forsyning | 5V (4,75–5,25V) |
| Datahastighed | Op til 2,5 Mbps (lavere ved lange kabler) |
| Kabellængde | Op til ca. 1200 m ved lav baudrate |
| Antal enheder | Op til 32 standard-enheder på samme bus |
| Terminering | 120 Ω mellem A og B på modulet (R7 på de fleste udgaver) |
| Tilslutning | 2 × 4 stiftlister + skrueterminal til A/B |
📌 Pinout
| Pin | Navn | Funktion | Forbindes til |
|---|---|---|---|
| RO | Receiver Out | Modtaget data ud (5V-niveau) | RX på MCU |
| RE | Receiver Enable | LOW = modtag (aktiv LOW) | Samme MCU-pin som DE |
| DE | Driver Enable | HIGH = send (aktiv HIGH) | Samme MCU-pin som RE |
| DI | Driver In | Data der skal sendes | TX på MCU |
| VCC | 5V | Forsyning | 5V |
| B | B (–) | Inverterende buslinje | B på det andet modul |
| A | A (+) | Ikke-inverterende buslinje | A på det andet modul |
| GND | GND | Stel | GND (og gerne fælles GND-ledning i kablet) |
RE og DE forbindes typisk sammen til én pin: LOW = lytte, HIGH = sende. Så kan modulet aldrig snakke og lytte samtidig – det er det, "half-duplex" betyder.
🔌 Sådan forbinder du den
Arduino UNO / Nano (5V)
| MAX485 | Arduino | Bemærkning |
|---|---|---|
| RO | D10 | SoftwareSerial RX |
| DI | D11 | SoftwareSerial TX |
| RE + DE | D3 | Retningsstyring |
| VCC / GND | 5V / GND |
ESP32 (3,3V)
| MAX485 | ESP32 | Bemærkning |
|---|---|---|
| RO | GPIO16 (RX2) | Via spændingsdeler (1 kΩ fra RO, 2 kΩ til GND) – RO er 5V |
| DI | GPIO17 (TX2) | 3,3V er nok til MAX485's indgang |
| RE + DE | GPIO4 | Retningsstyring |
| VCC / GND | 5V (VIN) / GND | Modulet skal have 5V |
Bussen
- A til A, B til B – hele vejen.
- Brug et snoet par (fx ét par i et netværkskabel) til A/B.
- Behold 120 Ω-modstanden på modulerne i de to yderste ender, og fjern den på moduler midt på bussen.
💻 Eksempelkode
To UNO'er med hver sit modul. Masteren sender et tal hvert sekund, slaven skriver det ud. Bruger SoftwareSerial, som følger med Arduino IDE.
Master
// KompoNemt MAX485 Master
#include <SoftwareSerial.h>
SoftwareSerial rs485(10, 11); // RO -> D10, DI -> D11
const int DIR = 3; // RE + DE
void setup() {
pinMode(DIR, OUTPUT);
digitalWrite(DIR, LOW); // lyt som standard
rs485.begin(9600);
}
void loop() {
static int n = 0;
digitalWrite(DIR, HIGH); // send
rs485.print("Hej fra KompoNemt #");
rs485.println(n++);
rs485.flush(); // vent til alt er sendt
digitalWrite(DIR, LOW); // tilbage til lyt
delay(1000);
}
Slave
// KompoNemt MAX485 Slave
#include <SoftwareSerial.h>
SoftwareSerial rs485(10, 11);
const int DIR = 3;
void setup() {
pinMode(DIR, OUTPUT);
digitalWrite(DIR, LOW); // lyt
Serial.begin(9600);
rs485.begin(9600);
}
void loop() {
while (rs485.available()) {
Serial.write(rs485.read());
}
}
💡 KompoNemt-tip fra værkstedet
- flush() før retningsskift: slår du DE/RE ned, før sidste byte er sendt, bliver enden af beskeden hakket af.
-
Modbus RTU: til energimålere og industriudstyr – brug biblioteket ModbusMaster og dets
preTransmission()/postTransmission()til at styre DE/RE. - A og B er ikke standardiseret ens hos alle producenter. Virker intet med fremmed udstyr, så prøv at bytte A og B.
- Lange kabler: sænk baudraten (9600 er rigtig robust) og træk en GND-leder med i kablet.
🔧 Fejlfinding
- Ingen data: tjek A→A og B→B, og at begge moduler har 5V og fælles GND.
-
Volapyk: forskellig baudrate i de to ender, eller DE/RE slås ned for tidligt (brug
flush()). - Virker på bordet men ikke over langt kabel: sænk baudraten og tjek at terminering kun sidder i enderne.
- ESP32 opfører sig mærkeligt: RO sender 5V ind i et 3,3V-ben – brug spændingsdeler.
- Flere slaver svarer i munden på hinanden: giv dem adresser og lad kun masteren starte en samtale.
Sidder du fast? Skriv til os – vi hjælper gerne.