Moin in die Runde,
Aufgrund meiner Encoder (RS485) Auswertung mit Arduino musste ich mir einen Max485 zulegen. Da ich auch nach 1000 Versuchen keine Kommunikation hinbekommen habe, dämmerte mir, dass da irgendetwas nicht passt.
Also wollte ich mal den Max485 an sich testen. Chat GBT schlägt hier den loop test vor:
#define RE_DE_PIN 5 // Pin für RE/DE Steuerung des MAX485 (Senden/Empfangen)
#define TX_PIN 6 // Pin für DI (Daten senden) des MAX485
#define RX_PIN 10 // Pin für RO (Daten empfangen) des MAX485
void setup() {
// Seriellen Monitor starten
Serial.begin(9600);
// RE/DE Pin als Ausgang definieren und auf LOW setzen (Empfangsmodus)
pinMode(RE_DE_PIN, OUTPUT);
digitalWrite(RE_DE_PIN, LOW); // Setze auf LOW, um den Empfangsmodus zu aktivieren
// TX-Pin als Ausgang definieren
pinMode(TX_PIN, OUTPUT);
// RX-Pin als Eingang definieren
pinMode(RX_PIN, INPUT);
// Kurze Verzögerung für Stabilität
delay(500);
// Test-Nachricht senden und Empfang testen
Serial.println("Starte den Test...");
sendTestMessage();
delay(1000); // 1 Sekunde warten, bevor wir mit dem Empfangen fortfahren
}
void loop() {
// Schritt 1: Testnachricht senden
Serial.println("Sende Testnachricht...");
sendTestMessage();
// Schritt 2: Warten und Empfang prüfen
if (Serial.available()) {
byte receivedByte = Serial.read();
Serial.print("Empfangenes Byte: ");
Serial.println(receivedByte, HEX); // Zeige das empfangene Byte als Hex an
} else {
Serial.println("Keine Daten empfangen.");
}
delay(1000); // Warte eine Sekunde, bevor der Test wiederholt wird
}
void sendTestMessage() {
// RS485-Treiber in den Sende-Modus versetzen (DE/RE auf HIGH setzen)
digitalWrite(RE_DE_PIN, HIGH); // Setze auf HIGH, um den Sende-Modus zu aktivieren
Serial.println("Wechsel in den Sende-Modus...");
// Sende ein Testbyte (z.B. 0xAB)
byte testByte = 0xAB;
Serial.print("Sende Nachricht: ");
Serial.println(testByte, HEX);
// Sende das Testbyte über den DI-Pin
digitalWrite(TX_PIN, testByte);
// RS485-Treiber wieder in den Empfangsmodus versetzen (DE/RE auf LOW setzen)
digitalWrite(RE_DE_PIN, LOW); // Setze auf LOW, um den Empfangsmodus zu aktivieren
}
Leider bekomme ich auch hier keine Rückmeldung.
wo ist mein Fehler?
Gruß,
Robin



