Ich habe ein Problem bei der seriellen Steuerung eines Homecinema-Verstärkers.
So ist mein aktueller Stand:
Ich kann den Verstärker vom PC aus mit dem Hexcode ansteuern und dieser reagiert super. Wenn ich dann den gleichen Hex-Code vom Arduino aus sende, funktioniert es nicht!
Ich schliesse also zum Test das Arduino an meinen PC an und erhalte dann auf dem Terminal sogar den richtigen Code! Ein Hardwareproblem schliesse ich daher aus?!
Der Verstärker braucht 19200 / 8 / n / 1. Die Baudrate habe ich geändert.
Nun habe ich heute einen anderen Verstärker einer anderen Marke ausprobiert. Dieser erwartet ASCII befehle wie z.B. "!1PWR01 [CR]" zum einschalten. (9600 8 N 1)
Und auch hier passiert das gleiche! Vom PC funktionierts und vom Arduino nicht.
Ich habe einen MAX232CPE mit 6 1uF Elkos verwendet.
Als Verbindung zum Verstärker habe ich ein ca. 5 Meter langes CAT-5 Kabel verwendet. Daran sollte eigentlich alles in Ordnung sein, da ja der PC den Code vom Arduino im Test einwandfrei und richtig empfangen konnte.
Noch zur Theorie:
Prinzipiell muß ein Sende-Pin mit einem Empfangs-Pin verbunden werden (TX mit RX) und umgekehrt. Das Problem liegt in der RS232-Schnittstelle. Da gibt es Datensende-Geräte engl. data terminal equipment (DTE), zB PC und Datenempfangs-Geräte engl. data communication equipment (DCE) zB: PC-Periferie. Diese 2 Geräteklassen haben die RX und TX - Pins auf dem Stecker vertauscht. Je nach Interpretation des Herstellers muß man darum am RS232 Kabel pin 2 mit 2 und 3 mit 3 verbinden oder 2 mit 3 und 3 mit 2. Auch sind die Pins an den 25-poligen Stecker gegenüber dem 9-Poligen Stecker vertauscht.