ich habe mal wieder ein kleines Proplem . Ich habe folgenden code um einen Spektrum Sataliten Empfänger auszuwerten :
#include <SatelliteRecive.h>
#include <Servo.h>
#define ledPin 13
SatelliteRecive reciver;
Servo myServo;
int time = 0;
void setup(){
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
myServo.attach(3);
}
void loop()
{
if (Serial.available() > 0) {
reciver.regByte(Serial.read());
}
// Will fail after a while. Maby to high baudrate. Could use SoftwareSerial for this dump to pc.
if(millis() - time > 100){
Serial.print(reciver.getThro());
Serial.print("\t");
Serial.print(reciver.getAile());
Serial.print("\t");
Serial.print(reciver.getElev());
Serial.print("\t");
Serial.print(reciver.getRudd());
Serial.print("\t");
Serial.print(reciver.getGear());
Serial.print("\t");
Serial.print(reciver.getFlap());
Serial.println();
time = millis();
}
myServo.write(map(reciver.getAile(),RXMIN,RXMAX,0,179));
if(reciver.getGear() > RXCENTER) digitalWrite(ledPin,1);
else digitalWrite(ledPin,0);
}
Der code funktioniert ohne Propleme auf meinem mini pro , allerdings nicht auf dem 2650 ... meine Vermutung ist das man im code noch angeben muss an welchen der 4 uarts des 2650 der Empfänger dran hängt.
jetzt zu meiner Frage : wie bestimme ich den Uart andem der Empfänger dran kommt ? bzw. ist überhaupt das , das proplem warum es nicht geht ?
Serial ist der erste UART, der über den ATmega8U2 mit der USB-Schnittstele verbunden ist.
Seriel1 ist die 2te UART usw. siehe Serial - Arduino Reference.
Der Mini PRO hat kein USB-Iinterface und die Pins 0 und 1 sind frei.
Versuch mal den Satelitenempfänger am MEGA den UAR2 mit Serial1 an den ppins 19 (RX) und 18 (TX).
Sonst habe ich keine Ahnung was das Problem sein könnte.
Grüße Uwe
so der code funzt 1A ... allerdings hängt er sich manchmal auf wenn ich beide uarts gleichzeitig nutze . aber das ist erstmal nebensache !
ich hab noch eine andere frage :
weiss jemand wie das Protokoll des satempfänger´s aussieht oder kann mir jemand sagen wie ich das was an seriell 2 ankommt an seriell 1 ausgebe ?
mit serial.println(serial2); funktioniert es nicht
Glaube ich Dir gerne
So müßte es gehen:
if (Serial2.available() > 0) {
serial.print(Serial2.read());
}
2 Auchtungen:
Habs nicht ausprobiert;
Auf diese Weise kanst Du die Daten nicht mitlesen; alles was an serial2 reinkommt wird an serial rausgeschrieben und ist somit gleich wieder verschwunden.
Zur Datenanalyse reichts aber.
unzwar habe ich den code jezt auf 5 kanäle erweitert , und gebe sie einzeln als servo singnal aus .
Jezt möchte ich das ganze als Summensingnal ausgeben , kann mir jemand sagen wie ich das ganze programmiere bzw kann mir jemand ein code beispiel geben ?
hier mal ein post aus einem anderen forum (nich von mir )
Auf jedem Kanal wiederholt sich der Puls alle 20 Millisekunden aber die
Pulse sind zueinander versetzt.
Der Grund dafür ist:
Es gibt keinen Grund allen Servos einen Signalpuls anzubieten, der bei
allen Servos gleichzeitig die steigende Flanke aufweist.
Da das nicht notwendig ist, muss man auch den ganzen Aufwand dafür nicht
treiben.
Da man den Aufwand nicht treiben muss, ist die Aufteilung des
Summensignals auf die einzelnen Kanäle trivial
Trivial ist gut, da es dann zuverlässig läuft.
Um also diese 4 Kanäle wieder zu einem Summensignal zusammenzubringen,
genügt es völlig die einfach alle miteinander zu verodern und man erhält
...
+----+ +----+ +--------+ +--+
| | | | | | | |
---+ +-+ +-+ +-+ +----------------
... das Summensignal (in genau der Form, wie es über die Funkstrecke
übertragen wurde)
naja nich ganz .... das summensingnal brauch ich für meinen quadrocopter um alle 6 kanäle über eine datenleitung auszuwerten .
deswegen geht nur das summensingnal .....
ich möchte einen seriell zu ppm (summensingnal) wandler bauen/programmieren ....
die seriellen daten vom sat empfänger von spektrum werden ins summensingnal umgewandelt welches wiederrum dan in die hauptplatine des quadrokopter geht .
es gibt keine andere variante , nur das summensingnal wird erkannt
microller:
ich möchte einen seriell zu ppm (summensingnal) wandler bauen/programmieren ....
Hab ich schon verstanden.
was ist ein "sat empfänger von spektrum" GPS-modul?
es gibt keine andere variante , nur das summensingnal wird erkannt
Bitte Dokumentation.
Um das zu programmieren brauchen wir die Spezifikation des Signals. Irgendwie muß der Empfänger das Summensignal ja synchronisieren damit jeder Kanal dem richtigen Ausgang zugeordnet wird.
Nochmal die frage Bitte presetiere Dein gesamtes Projekt, nicht Teilprobleme bei denen Du nicht weiterweißt. Solche probleme kann man auch lösen indem man einen anderen Weg geht.
Grüße Uwe