Adrian schrieb:
> Ein Arduino-Uno.
> Sorry Ich glaube ich hab da was falsch beschrieben. Also am TTL-Ausgang
> vom Max232 gehen die Pins zum TX und RX nicht von dem RS232 aus.
> Genau so sieht meine Schaltung gerade aus:
> http://cdn.webdca.com/avr/images/schematics/max-232-arduino-lg.png und
> hier möchte über Rs232 daten zum Arduino senden
Also Du möchtest den Arduino in der Mitte von zwei Terminals haben, die
sich gegenseitig hin- und herschreiben können?
Das eine Terminal ist ein PC mit USB-Anschluß und das andere Terminal
hat einen RS232-Anschluß?
In dem Fall benötigt der Arduino zwei serielle Schnittstellen.
Da ein UNO nur eine HardwareSerial hat, kommt beim UNO als zweite
serielle Schnittstelle nur eine SoftwareSerial in Frage.
HardwareSerial ist über RX/TX (Pin-0/1) und das USB-Kabel verbunden, das
Du an einen PC anstöpseln kannst.
Deinen Max232 kannst Du an ANDERE Pins des Arduino-Boards anschließen,
über die Du per SoftwareSerial eine serielle Schnittstelle in Software
emulieren kannst.
Dann kannst Du das Board über USB an einen PC anschließen und bekommst
eine serielle Schnittstellen. Und Du kannst (denselben oder einen
anderen) PC an den RS232 Adapter anschließen und der PC bekommt noch
eine serielle Schnittstelle.
Zwischen beiden seriellen Schnittstellen kannst Du dann ungefähr mit so
einem Code hin und her schreiben (ungetestet):
1 | #include <SoftwareSerial.h>
|
2 | SoftwareSerial rs232(8,9);
|
3 |
|
4 | void setup()
|
5 | {
|
6 | Serial.begin(9600); // HardwareSerial an Pin-0/1 aktivieren
|
7 | rs232.begin(9600); // SoftwareSerial an Pin-8/9 aktivieren
|
8 | }
|
9 |
|
10 | void loop()
|
11 | {
|
12 | while (Serial.available()) // HardwareSerial hat Zeichen
|
13 | {
|
14 | rs232.write(Serial.read()); // Zeichen auf Serial lesen und an rs232 senden
|
15 | }
|
16 | while (rs232.available()) // SoftwareSerial "rs232" hat Zeichen
|
17 | {
|
18 | rs232.write(Serial.read()); // Zeichen auf SoftwareSerial lesen und an HardwareSerial senden
|
19 | }
|
20 | }
|
Zum Testen mag das mit SoftwareSerial vielleicht reichen, allerdings ist
die standardmäßige SoftwareSerial-Library eine den Arduino-Machern total
mißratene Library. Nach Möglichkeit solltest Du als per Software
emulierte Schnittstelle besser die AltSoftSerial-Library verwenden:
https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html