Sensorwerte über Funk 3DR

Hallo,
ich habe folgendes Problem
Ich möchte einen Digital Eingang auslesen I/0
und 2 analog Pins abfragen und das Zusammen per Funk 3dr 433Mhz
an einen zweiten Arduino senden der alles auwerten soll.

Die Senderseite und die Verbindung funktioniert grundätzlich (habe allerdings noch
keinen Reichweitentest gemacht).

Auszug Sendersketch:
"
pinMode(ledPin, OUTPUT);
pinMode(Taster,INPUT);
}

void loop() {
sensorValue = analogRead(sensorPin);

sensorValue1 = analogRead(sensorPin2);

Value2=digitalRead(Taster);

digitalWrite(ledPin, HIGH);

Serial.print(Value2);Serial.print(sensorValue1); Serial.println(sensorValue);

"

Mein Problem ist nun den Empfangen Wert zu Zerlegen
Der Kann So aussehen " 000" Digitalread auf 0 , Analogread1 0; Analogread 0,
oder "110231023 Digital auf 1 analog Pins auf 1023
und alle Analogwerte dazwischen 1,2,und 3stellig.

Vielleicht hat jemand einen Rat für mich?

mfg andreas

Wenn du mal richtig und verständlich dein Vorhaben beschreibst, haben wir sicher einen Rat für dich.
Auch solltest du immer den kompletten Sketch posten, damit wir erkennen können, was du machen möchtest.

Poste den bitte hier in Code-Tags (Schaltfläche </> verwenden).

Und was ist “3DR”?

Hallo Danke für die Hinweise.
Das soll eine Fernsteuerung werden die über einen 2 Achsen Joystick zwei servos ansteuert.
3DR sind 433Mhz Funkmodule (eigentlich zur Telemetrieübertragung von Quadcoptern ein wenig
Zweckentfremdet, Verbinden eigentlich nur die seriellen Schnittstellen beider Arduinos per Funk
über einige 100m )

</

int sensorPin2=A2;
int sensorPin = A0; // select the input pin for the potentiometer
int SchaltPin = A3;
int Taster = 8;
int ledPin = 13; // select the pin for the LED
int sensorValue = 0;
int sensorValue1 = 0;
int Value2;

void setup() {

Serial.begin(19200);
Serial.println(“RFM12B Transmitter - Simple demo”);

pinMode(ledPin, OUTPUT);
pinMode(Taster,INPUT);
}

void loop() {
sensorValue = analogRead(sensorPin);
sensorValue = (sensorValue);
sensorValue1 = analogRead(sensorPin2);
sensorValue1 = (sensorValue1);
Value2=digitalRead(Taster);

digitalWrite(ledPin, HIGH);

Serial.print(Value2);Serial.print(sensorValue1); Serial.println(sensorValue);

digitalWrite(ledPin, LOW);
delay(50);
}

rittschi:
Das soll eine Fernsteuerung werden die über einen 2 Achsen Joystick zwei servos ansteuert.
3DR sind 433Mhz Funkmodule (eigentlich zur Telemetrieübertragung von Quadcoptern ein wenig
Zweckentfremdet, Verbinden eigentlich nur die seriellen Schnittstellen beider Arduinos per Funk
über einige 100m )

Was den Sketch betrifft, die Code-Tags sind folgende: Vorweg= [code] und am Ende [\code] beides ohne den Stern*. Da für gibt es eine eigene Schaltfläche (</>). Du kannst deinen Beitrag noch anpassen.

Mit dem Funk und 433 MHz wäre ich vorsichtig. In der EU ist das ein ISM-Band und da sind nur 10mW-Sendeleistung erlaubt. Das geht bestimmt nicht über mehrere 100 Meter. Aber Versuch macht klug.

Noch kann ich aber nicht erkennen, wo du die Daten dem Sender übergibst.

Hallo,
die Bestimmungen des ISM Bades in A sind mir bewusst.

Die Daten übergebe ich momentan einfach mit "SerialPrint"
Die Sender werden zu Beginn über ein configTool eingestellt
und übertragen dann ganz einfach den über RX/TX den Ankommenden Datenstrom.
War selbst überrascht als es sofort funktioniert hat.

Habe zuvor mit RFM12b modulen experimentiert, war mir allerdings zu kompliziert.Hat aber funktioniert.
Die Lösung meines Problems ist wahrscheinlich die Daten in ein Array abzulegen und von dort auszulesen???
Wir in den RF12b Examples auch so ähnlich gemacht damit muss ich mich allerdings erst befassen.
mfg
Andreas

rittschi:
Hallo,
die Bestimmungen des ISM Bades in A sind mir bewusst.

Na, dann ist es gut.

Die Daten übergebe ich momentan einfach mit “SerialPrint”
Die Sender werden zu Beginn über ein configTool eingestellt
und übertragen dann ganz einfach den über RX/TX den Ankommenden Datenstrom.
War selbst überrascht als es sofort funktioniert hat.

Habe zuvor mit RFM12b modulen experimentiert, war mir allerdings zu kompliziert.Hat aber funktioniert.
Die Lösung meines Problems ist wahrscheinlich die Daten in ein Array abzulegen und von dort auszulesen???z.B.

Wir in den RF12b Examples auch so ähnlich gemacht damit muss ich mich allerdings erst befassen.

Ja, das mach ich auch so.

z.B.

char Sensor1Msg[10];
char Sensor2Msg[10];
char Sender_Msg[25];
const char Trenner[] = {":"}; 

// und mit strcat zusammensetzen

strcat(Sender_Msg, Sensor1Msg);
strcat(Sender_Msg, Trenner);             
strcat(Sender_Msg, Sensor2Msg);

Allerdings ist mir immer noch nicht klar, welche Module du verwendest.
RFM12B arbeiten, so wie ich es sehe, nicht mit der seriellen (RX/TX).

Die Kunst besteht darin, das Datenpaket zu zu schnüren, dass man auf Empfängerseite auch die Daten verwenden kann. Die Abfolge deiner serial.print schreibt einfach hintereinander weg. Würdest du serial.println verwenden, hättest du zumindest zwischen den Werten einen Zeilenumbruch.
Genausogut kannst du zwischen jeden mit serial.print übermittelten Wert einen Doppelpunkt setzten. Beim byteweisen lesen des Pakets musst du in der Auswerteroutine eben diese Trennung beachten.
Noch besser wirds, wenn man den Beginn eines neuen Datenpakets separat kennzeichnet, vielleicht mit einem vorangestellten 'A' oder '$' oder sonstwie.
So viele Möglichkeiten, so viele Lösungsansätze. Wichtig ist eben, dass der Empfänger versteht was der Sender rüberschickt.

Hallo,
Dieses Modul verwende ich
http://www.amazon.de/Andoer-Radio-Telemetrie-Kit-Quadcopter-Multirotor-Radio-Telemetrie/dp/B00L10R3MG/ref=sr_1_1?ie=UTF8&qid=1457524240&sr=8-1&keywords=3dr+radio

rittschi:
Hallo,
Dieses Modul verwende ich
http://www.amazon.de/Andoer-Radio-Telemetrie-Kit-Quadcopter-Multirotor-Radio-Telemetrie/dp/B00L10R3MG/ref=sr_1_1?ie=UTF8&qid=1457524240&sr=8-1&keywords=3dr+radio

Na dann hoffe ich, dass du keinen Ärger bekommst, wegen der unerlaubten Leistung. Siehe Post #3.

HotSystems:
Na dann hoffe ich, dass du keinen Ärger bekommst, wegen der unerlaubten Leistung. Siehe Post #3.

Leistung lässt sich per configtool ganz simpel auf erlaubten wert einstellen.

rittschi:
Leistung lässt sich per configtool ganz simpel auf erlaubten wert einstellen.

Und ganz simpel wieder hochdrehen?
Naja must du wissen.