PWM - Signal übertragen mit XBee

Hallo,
ich bin neu hier und wollte euch gleich mal mit meinem Problem behelligen:
Ich möchte über Funk ( habe zwei XBee-Module ( keine XBee-PRO)) einen Servomotor ansteuern.
Die dafür nötige PWM-Signale erzeuge ich über einen PIC16F688 Microcontroller. Also verschiedene Pulsweiten mit 50Hz, damit ich verschiedene Positionen anfahren kann. Meine Frage ist nun, wie kann ich ein PWM-Signal von dem einen XBee auf den anderen XBee übertragen, dmit der das dann an den Servomotor weitergibt?
Vielen Dank im vorraus,
Gruß Stefan

Ich habe den Zusammenhang mit dem Arduino noch nicht mitbekommen. Hängt ein Arduino am Empfänger-XBee? Im Normalfall überträgt man über digitale Kommunikationsmittel kein PWM-Signal, sondern den Wert, den man ausgeben will und der Empfänger generiert das PWM-Signal.

Nein, weder am Sender, noch am Empfänger sitzt ein Arduino, wir müssen mit Microcontrollern arbeiten (Anweisung vom Ausbilder).
Wie muss ich das dann bewerkstelligen, damit mein Sender das PWM - Signal wandelt und der Empfänger es wieder zurückwandelt? Tut mit leid, ich bin total neu in diesem Gebiet

Der Arduino ist auch nur eine Platine für einen Mikrocontroller.
Genauergesagt ein Atmel ATmega328P.

Seid ihr explizit an Microchip's PIC Serie gebunden?

Ja, leider sind wir an die PIC16F688 gebunden, hätte persönlich auch ein Arduino genommen, ist aber untersagt. Ich hoffe ihr könnt mir trotzdem helfen :slight_smile:

Wie muss ich das dann bewerkstelligen, damit mein Sender das PWM - Signal wandelt und der Empfänger es wieder zurückwandelt? Tut mit leid, ich bin total neu in diesem Gebiet

Was kriegst Du? Bereits ein (externes) PWM-Signal? Oder kriegst Du einen Wert, den Du dann als PWM ausgeben musst? Sind die XBees auch vorgegeben oder musst Du einfach eine Funkstrecke überbrücken? Wenn wir schon für fremde Microcontroller "Support" machen sollen, müsstest Du mit etwas mehr Infos rausrücken.

Ich erzeuge in meinem C-Programm (über Low und high schalten eines Ausgangspins des PICs) verschiedene Pulsweiten, die ich auf eine andere Leiterplatte übertragen muss. Das ganze soll eine Kühlmittelsteuerung werden an einem 360grad schwenkbaren Fräßkopf, deshalb muss es über Funk erfolgen, da man keine Leitungen dahin legen kann. XBees haben wir hier und müssen auch verwendet werden. Vielen Dank, dass ihr mir trotzdem helft, ich wüsste nicht, an wen ich mich sonst wenden sollte.
Es geht mir eigentlich nur darum, Pulsweiten, die ich in den XBee gebe, auf einen anderen zu übertragen, welcher diese, unverändert wieder ausgibt.
MfG

Squito:
Ja, leider sind wir an die PIC16F688 gebunden,

Du bist komplett im falschen Forum.

Squito:
Ich hoffe ihr könnt mir trotzdem helfen :slight_smile:

Unabhängig davon, ob Du es mit einem Atmega oder Pic Controller machst, überträgt man in einem solchen Fall nicht das hochfrequente Signal an sich, sondern die Information, wie das Signal erzeugt wird.

D.h. immer wenn sich der PWM-Wert ändert, sendet der eine Controller den PWM-Wert an den anderen Controller, und jeder Controller für sich macht aus dem PWM-Wert ein PWM-Signal an einem Pin.

Hier ist nen Beispiel, wie recht einfach mit nem Xbee die Serielle Schnittstelle genutzt wird.

Vom Prinzip sollte das ja auch mit deinem PIC und den XBees gehen.

Bleibt nur die Frage, wie du das Signal an der Empfägnerseite auswerten willst :slight_smile:
=> Du sendest entweder ein Signal, dass dir der PIC dann in ein PWM umwandelt, oder probierst eben direkt PWM zu übertragen.

Da haste aber wenn es geht das Problem, das jede Störung auch ausgeführt wird...wenn nix mehr ankommt geht die Pumpe aus usw.
Dein PIC könnte mit nem Signal hingegen solange weitermachen bis er ein eindeutiges Stoppsignal empfängt oder zusätzlich vor Ort noch Sicherheitsfunktionen ausführen wie nach x-Sekunden ohne Signal eine Sicherheitskühlung starten....

Hier ist mal ein allgemeines Beispiel PIC + xbee, einfach gegooglet und vll kannste das ja schonmal weiternutzen.
http://hades.mech.northwestern.edu/index.php/XBee_radio_communication_between_PICs

Danke bisher, die Seite hat schon etwas geholfen. Der XBee hat ja Zwei PWM-Outputs, kann ich da nicht direkt ein PWM-Signal an den Motor schicken, ohne noch einen Controller zu verwenden? Ich habe auf einer anderen Seite, bei der es um XBees geht gesehen, dass bei einem ein analoges Signal eingelesen wird, und bei dem anderen dann eine PWM ausgegeben wird. Dann müsste es ja rein theoretisch möglich sein, ein PWM Signal einzulesen und wieder Auszugeben? Und warum bin ich im falschen Forum? Es geht ja hier um die XBees und nicht um PIC-Programmierung?

Okay, ich hab mich auch mal etwas reingelesen.

Soweit ich weiß hat der Xbee keinen pwm input, aber analog input.
Hier ein Beispiel:Examples & Guides | Digi International

Wie du siehst, wird mit nem Poti die LED am Receiver geregelt.

=> Deine Aufgabe: Den Poti durch den PIC ersetzen!

Ich seh da zwei wege:
1)Das PWM Signal des PIC zu einem Analog-Signal konvertieren. Vll kann ja der PIC sogar Analog richtig ausgeben, hab da keine Ahnung. Ansonsten vll nen RC-Glied oder nen Wandler-IC
2)Ich würde fast drauf wetten, dass du auch mit deinem PIC die Kommunication die im obigen Beispiel unter den Xbees läuft simulieren kannst.
=> du sendest also (seriell??) die Befehle die der zweite Xbee ausführt. Dazu musst du nur hinbekommen das dein PIC über den ersten Xbee auf den zweiten kommuniziert und die Signale die im obigen Beispiel sind immitiert.

Wie das geht weiß ich nicht, ich wette aber dazu findest du was mit google oder hier, oder in nem spezielleren Forum für xbees vll?

Ich würd da einfach mal anfangen rumzuprobieren.
Weg vom pwm generieren und hin zum receiver-xbee steuern über den Pic und nen anderen xbee.

ps. Falsches Forum, weil es hier hauptsächlich um Arduino anstatt PIC oder xbee geht :slight_smile:

Guten morgen,
vielen Dank, das hat mir schon sehr geholfen. Hab die Steuerung mit analogen Ausgängen am PIC realisiert :slight_smile: danke für die Tipps.
Gruß Stefan