holzi
12.04.2013, 10:25
Moin, moin
ich möchte einen seriellen GPS-Empfänger an einen Arduino Mini Pro anschliessen. Die empfangenen Daten auf dem Board verarbeiten und per serieller Schnittstelle wieder an den PC ausgeben.
Die Ausgabe von Daten per serieller Schnittstelle an den PC ist kein Problem.
Nun heisst es auf der Arduino-Seite, dass mittels der SoftwareSerial Library für den Empfang bestimmte Pins für RX geschaltet werden können. Wäre ja genau das richtige.
Also habe ich mir für den Anfang den folgenden Code geschrieben:
int incomingByte;
#include <SoftwareSerial.h>
#define rxPin 10
#define txPin 11
SoftwareSerial sensorSerial=SoftwareSerial(rxPin,txPin); // Setzen der Pins für SoftwareSerial RX, TX
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(4800); // Setzen der Baudrate serieller Port
while (!Serial) //Warten, bis der serielle Port verbunden ist
{
}
Serial.println("GESR-Sensor-Shield");
Serial.println("(c) Peter Holzknecht");
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
sensorSerial.begin(4800); // Setzen der Baudrate des SoftwareSerial Ports
}
void loop()
{
if (sensorSerial.available()>0)
{
incomingByte = sensorSerial.read();
Serial.write(incomingByte);
}
}
In der Zeile if (sensorSerial.available()>0) bleibt aber das Programm stehen, denn die Schnittstelle an Pin 10 für den Empfang wird nicht geöffnet.
Ist diese Vorgehensweise mit dem Arduino Mini Pro überhaubt möglich oder mache ich im Code etwas grundsätzliches falsch?
LG hier aus dem Norden Peter
ich möchte einen seriellen GPS-Empfänger an einen Arduino Mini Pro anschliessen. Die empfangenen Daten auf dem Board verarbeiten und per serieller Schnittstelle wieder an den PC ausgeben.
Die Ausgabe von Daten per serieller Schnittstelle an den PC ist kein Problem.
Nun heisst es auf der Arduino-Seite, dass mittels der SoftwareSerial Library für den Empfang bestimmte Pins für RX geschaltet werden können. Wäre ja genau das richtige.
Also habe ich mir für den Anfang den folgenden Code geschrieben:
int incomingByte;
#include <SoftwareSerial.h>
#define rxPin 10
#define txPin 11
SoftwareSerial sensorSerial=SoftwareSerial(rxPin,txPin); // Setzen der Pins für SoftwareSerial RX, TX
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(4800); // Setzen der Baudrate serieller Port
while (!Serial) //Warten, bis der serielle Port verbunden ist
{
}
Serial.println("GESR-Sensor-Shield");
Serial.println("(c) Peter Holzknecht");
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
sensorSerial.begin(4800); // Setzen der Baudrate des SoftwareSerial Ports
}
void loop()
{
if (sensorSerial.available()>0)
{
incomingByte = sensorSerial.read();
Serial.write(incomingByte);
}
}
In der Zeile if (sensorSerial.available()>0) bleibt aber das Programm stehen, denn die Schnittstelle an Pin 10 für den Empfang wird nicht geöffnet.
Ist diese Vorgehensweise mit dem Arduino Mini Pro überhaubt möglich oder mache ich im Code etwas grundsätzliches falsch?
LG hier aus dem Norden Peter