SKU: OT5003 Αριθμός είδους: AA119 EAN: 8720618231512
Μονάδα MAX485 με το chip MAX485 με χαμηλή κατανάλωση ρεύματος για επικοινωνία RS-485. Το RS485 χρησιμοποιείται για σειριακή επικοινωνία σε μεγαλύτερες αποστάσεις από την απευθείας RS232 ή TTL και υποστηρίζει πολλαπλές μονάδες στο ίδιο bus.
Προδιαγραφές μονάδας MAX485:
– Λειτουργεί σε: 5V.
– Ενσωματωμένη σύνδεση για καλώδια RS-485.
– Διαστάσεις: 44mm x 14mm.
Διαστάσεις
Μήκος: 4,39cm
Πλάτος: 1,41cm
Ύψος: 1,89cm
Έτσι συνδέεις το MAX485 TTL σε RS485 Μονάδα Μετατροπέα σε ένα Arduino UNO ή ESP32, με ένα παράδειγμα sketch που μπορείς να ανεβάσεις αμέσως.
Αυτό το κύκλωμα συνδέει ένα Arduino Uno με ένα διαφορικό δίαυλο RS-485 χρησιμοποιώντας το transceiver MAX485. Το SoftwareSerial χειρίζεται την επικοινωνία με το module, ενώ οι ψηφιακές ακίδες ελέγχουν τις λειτουργίες μετάδοσης και λήψης. Οποιοδήποτε μήνυμα πληκτρολογείται στο Serial Monitor μεταδίδεται μέσω RS-485, και τα εισερχόμενα δεδομένα του διαύλου εμφανίζονται στην οθόνη.
/*
* ==================================================================
* Generated by Codey.online — https://www.codey.online
* ==================================================================
* Project : MAX485 RS-485 Transceiver Communication
* Board : Arduino UNO (arduino:avr:uno)
* Parts : MAX485 TTL to RS485 Converter Module
* Libraries : none (built-in)
*
* Codey Online is an AI-powered browser IDE for Arduino and ESP32.
* Describe your project and Codey writes the code, draws the wiring
* diagram and uploads it to your board, straight from the browser.
* This code is free to use, modify and share, without warranty.
* ==================================================================
*/
#include <SoftwareSerial.h>
const byte PIN_RO = 2; // Receiver Out (RX)
const byte PIN_DI = 3; // Driver In (TX)
const byte PIN_DE = 4; // Driver Enable (Active HIGH)
const byte PIN_RE = 5; // Receiver Enable (Active LOW)
SoftwareSerial rs485(PIN_RO, PIN_DI);
unsigned long lastSend = 0;
int packetCount = 0;
void setTransmitMode() {
digitalWrite(PIN_RE, HIGH); // Disable receiver
digitalWrite(PIN_DE, HIGH); // Enable driver
delayMicroseconds(50);
}
void setReceiveMode() {
digitalWrite(PIN_DE, LOW); // Disable driver
digitalWrite(PIN_RE, LOW); // Enable receiver
delayMicroseconds(50);
}
void rs485Send(const String &msg) {
setTransmitMode();
rs485.println(msg);
rs485.flush();
setReceiveMode();
}
void setup() {
pinMode(PIN_DE, OUTPUT);
pinMode(PIN_RE, OUTPUT);
setReceiveMode();
Serial.begin(115200);
rs485.begin(9600);
Serial.println(F("MAX485 RS-485 Transceiver Demo"));
Serial.println(F("Type a message and press Enter to send over RS-485."));
}
void loop() {
// Forward incoming Serial Monitor input to RS-485
if (Serial.available()) {
String input = Serial.readStringUntil('\n');
input.trim();
if (input.length() > 0) {
Serial.print(F("Sending: "));
Serial.println(input);
rs485Send(input);
}
}
// Forward received RS-485 data to Serial Monitor
if (rs485.available()) {
Serial.print(F("Received: "));
while (rs485.available()) {
char c = (char)rs485.read();
Serial.print(c);
delay(2);
}
Serial.println();
}
// Automatically send a heartbeat packet every 5 seconds
if (millis() - lastSend >= 5000) {
lastSend = millis();
packetCount++;
String packet = "Ping #" + String(packetCount);
Serial.print(F("Auto-transmitting: "));
Serial.println(packet);
rs485Send(packet);
}
}
Wiring diagram and example code generated by Codey.online — https://www.codey.online
Αυτό το έργο δείχνει πώς να στέλνετε και να λαμβάνετε δεδομένα μέσω ενός διαύλου RS-485 χρησιμοποιώντας το module MAX485 και το UART2 του ESP32. Το ESP32 θέτει τις ακίδες DE/RE στο HIGH για να μεταδώσει ένα περιοδικό μήνυμα heartbeat και τις θέτει στο LOW για να ακούει εισερχόμενα πακέτα RS-485. Ένας απλός διαιρέτης τάσης 1kΩ/2kΩ ρίχνει με ασφάλεια την έξοδο TTL 5V (RO) του module στα 3.3V για την ακίδα RX του ESP32.
/*
* ==================================================================
* Generated by Codey.online — https://www.codey.online
* ==================================================================
* Project : MAX485 RS-485 Communication with ESP32
* Board : ESP32 DEVKIT V1 (esp32:esp32:esp32doit-devkit-v1)
* Parts : MAX485 TTL to RS485 Converter Module
* Libraries : none (built-in)
*
* Codey Online is an AI-powered browser IDE for Arduino and ESP32.
* Describe your project and Codey writes the code, draws the wiring
* diagram and uploads it to your board, straight from the browser.
* This code is free to use, modify and share, without warranty.
* ==================================================================
*/
// MAX485 TTL to RS-485 transceiver demo with ESP32
const int CONTROL_PIN = 4; // Controls DE and RE (HIGH = Transmit, LOW = Receive)
const int RXD2_PIN = 16;
const int TXD2_PIN = 17;
unsigned long lastSendTime = 0;
int messageCount = 0;
void setup() {
Serial.begin(115200);
pinMode(CONTROL_PIN, OUTPUT);
digitalWrite(CONTROL_PIN, LOW); // Start in receive mode
// Initialize UART2 for RS-485 communication
Serial2.begin(9600, SERIAL_8N1, RXD2_PIN, TXD2_PIN);
Serial.println("RS-485 Transceiver Ready");
}
void loop() {
// Send a message every 2 seconds
if (millis() - lastSendTime >= 2000) {
lastSendTime = millis();
messageCount++;
// Enable RS-485 transmitter
digitalWrite(CONTROL_PIN, HIGH);
delay(10);
String msg = "Hello from ESP32 #" + String(messageCount);
Serial2.println(msg);
Serial2.flush(); // Wait until all outgoing bytes are transmitted
// Return to receive mode
digitalWrite(CONTROL_PIN, LOW);
Serial.print("Sent over RS-485: ");
Serial.println(msg);
}
// Check for incoming RS-485 data
if (Serial2.available()) {
Serial.print("Received via RS-485: ");
while (Serial2.available()) {
char c = (char)Serial2.read();
Serial.print(c);
}
Serial.println();
}
}
Wiring diagram and example code generated by Codey.online — https://www.codey.online