Go Down

Topic: PPM Signal generieren (Read 2012 times) previous topic - next topic

DennisD

Hallo zusammen nachdem ich ein Modellbauer bin hatte ich nun endlich vor eine eigene rc sender anlage zu bauen zur verwendung kommt dazu ein HF Modul mit 2,4Ghz dieses braucht ein 8 Kanal PPM Signal.
Also hatte ich jetzt vor die analgogen Eingänge zu nutzen für die potentiometer und dann ein PPM Signal erzeugen allerdings allein mit delay befehlen geht es anscheinend nicht.
Hat einer von euch so etwas schon mal gemacht?
Bitte um keine fertigen Programme oder Bibeoteken , ich möchte selber verstehen wie das möglich ist.

Gruß Dutta

uwefed

Du willst also kein PPM Servosignal für jeden Servo sondern ein Signal für alle Kanäle der Fernsteuerung?
Grüße Uwe

DennisD

Genau ein PPM Signal was ich dann an ein HF Modul weiter gebe

DennisD

hier ist so ein ppm Signal nur eben mit 6 kanälen und ich brauch eins mit 8 kanälen
http://www.ianjohnston.com/content/images/stories/IanJ/JoystickV2/ScopePPM.jpg

erni-berni

#4
Oct 07, 2012, 09:44 pm Last Edit: Oct 07, 2012, 09:48 pm by erni-berni Reason: 1
Wie genau sieht das Timing dieses Signals aus? Welche Pegel versteht der Sender?
Auf dem Foto sieht es so aus, als wenn einem immer gleich langen Start Impuls (Null-Pegel) ein unterschiedlich langer High-Pegel folgt.
Pegel sieht nach 5V Logik aus.
Kannst du das bestätigen?

Edit: so http://www.mftech.de/ppm.htm sollte das Signal also aussehen - das sollte sich doch mit millis() problemlos machen lassen

bendh

#5
Oct 07, 2012, 10:13 pm Last Edit: Oct 07, 2012, 10:16 pm by bendh Reason: 1
noch ein Bild:

http://www.reseau.org/arduinorc/ico/PPM_timing_diagram.jpg


Frame rate bei jedem Hersteller etwas anders. Im allgemeinen 1000ms bis 2000ms, Servomittenstellung dann bei 1500ms.

DennisD

Ja das Signal von der Seite http://www.mftech.de/ppm.htm
ich habe es versucht das ich die pausen immer mit delay(0.3); einbaue und den Rest mit delay(ensprechender wert)
allerdings hat dies nicht geklapptund leider kam ich noch nicht an ein Oszilloskop ran um mir anzuschauen wo ran es den ligt

Eisebaer

hi,

hab' jetzt einfach aus interesse mal über ppm gelesen. sollten nicht die pausen verschieden lang sein?

gruß stefan

mkl0815

Code: [Select]
delay(0.3);
Das wird nicht funktionieren. Siehe http://arduino.cc/en/Reference/Delay
Quote

Parameters
ms: the number of milliseconds to pause (unsigned long)

Verwende statt dessen:
http://arduino.cc/en/Reference/DelayMicroseconds
@bendh:
Quote

Frame rate bei jedem Hersteller etwas anders. Im allgemeinen 1000ms bis 2000ms, Servomittenstellung dann bei 1500ms.

Sicher das es ms (Millisekunden) sind? 2000ms sind 2 Sekunden, das wäre ziemlich langsam. Ein Frame ist bei dem von dir geposteten Bild ja maximal 20ms lang.

bendh


bendh

http://www.aerodesign.de/peter/2000/PCM/frame_ppm.gif
http://www.aerodesign.de/peter/2000/PCM/PCM_PPM.html#Anker234605

Eisebaer

hi,

Quote
sollten nicht die pausen verschieden lang sein?


sorry. pulsphasenmodulation, pulspausenmodulation, Ihr macht es Euch nicht leicht...

gruß stefan

uwefed

PulsPausenModulation nicht PulsPhasenModulation (was gleich abgekürzt wird).
Grüße Uwe

DennisD

Also gesteuert wird indem man nur die HIGH fase verlängert oder verkürtz (von 0,7ms bis 1,7ms) und es kommt dann immer eine pause von 0,3ms dahinter

DennisD

JUHU
habe es gerade mit dem  delayMicroseconds versucht und es geht alles wie gedacht
vielen vielen dank =)
echt tolle Hilfe
DANKE

Go Up