Hallo Zusammen, im Moment probiere ich gerade die SoftSerial eines Arduino Uno. Das Testprogramm soll folgendes tun: Daten vom PC empfangen, an die Softserial übergeben. Dort schleife ich das Sendesignal auf den Soft-Rx-Eingang, dieser empfängt das Signal und gibt es an den PC zurück. Leider scheint es aber nicht zu funktionieren. Hat jemand eine Idee?
1 | #define LEDPIN 13
|
2 | #define ARDUINO_RXPIN 8 // data from LPC to arduino
|
3 | #define ARDUINO_TXPIN 11 // data from arduino to LPC
|
4 | |
5 | #define LEDON { digitalWrite(LEDPIN,HIGH); }
|
6 | #define LEDOFF { digitalWrite(LEDPIN,LOW); }
|
7 | |
8 | #include <SoftwareSerial.h> |
9 | |
10 | SoftwareSerial SoftSerial(ARDUINO_RXPIN, ARDUINO_TXPIN); // RX, TX only pin 8,9,10,11,14 are allowed on atmega328 |
11 | |
12 | void setup() |
13 | {
|
14 | // initialize both serial ports:
|
15 | Serial.begin(9600); |
16 | pinMode(ARDUINO_RXPIN, INPUT); |
17 | pinMode(ARDUINO_TXPIN, OUTPUT); |
18 | SoftSerial.begin(9600); |
19 | pinMode(LEDPIN,OUTPUT); |
20 | LEDON; |
21 | }
|
22 | |
23 | void loop() |
24 | {
|
25 | // read from pc serial port, send to LPC:
|
26 | if (Serial.available()) |
27 | {
|
28 | uint8_t value = Serial.read(); |
29 | SoftSerial.write(value); |
30 | }
|
31 | |
32 | // read from LPC, send to PC:
|
33 | if (SoftSerial.available()) |
34 | {
|
35 | uint8_t value=SoftSerial.read(); |
36 | Serial.write(value); |
37 | }
|
38 | |
39 | }
|