Hallo liebe Leute, ich habe folgendes Problem: Ich möchte ein Programm in C schreiben, dass folgendes tut: (Ich habe einen PIC16F688) An AN0 möchte ich eine Spannung einlesen, die über einen Poti erzeugt und anschließend über XBees übertragen wird. Der empfänger XBee gibt mir ein PWM aus, das ich mit einem Tiefpassfilter wieder in eine Spannung umwandle (Sägezahnspannung, möchte allerdings dann an AN0 den effektivwert einlesen). An RC0 möchte ich ein PWM Signal mit 50Hz ausgeben um damit einen Servomotor zu steuern. Ich weiß allerdings überhaupt nicht, wie ich anfangen soll :D . Kleine Programme habe ich in C bereits geschrieben, bin ein Anfänger, aber kein Absoluter :). Wäre nett, wenn Ihr mir einen kleinen Ansatz geben könnt, oder einen beispielcode. Vielen Dank im Vorraus. P.S. Google etc. hab ich schon benutzt ;P
Niemand plant zu versagen, aber viele versagen zu planen. Und damit hast Du Deinen Anfang. Du hast uns noch nicht verraten was am Empfänger XBee dranhaengt. Mach es Schritt fuer Schritt. 1. Spannung vom Poti einlesen 2. XBee comm 3. eingelesene Spannung uebertragen ...
> Wäre nett, wenn Ihr mir einen kleinen Ansatz geben könnt, oder einen > beispielcode. Vielen Dank im Vorraus. AN0 Poti->Spannung->PIC16F688->XBeeSender----------------------------+ | v Funk | v Servo <- PWM <- PIC16F688<-Effektivewertwandler<-Tiefpass<-XBeeEmpfänger RC0 AN0 Sägezahn PWM ?? VoRRaussichtlich geht es noch mehr von hinten durch die Brust ins Auge. Wo hast du gelernt es lieber kompliziert zu machen statt einfach ?
Hallo, vielen Dank für deine Antwort Am Empfänger XBee, am PWM-Outputpin habe ich den besagten Tiefenpassfilter, und von dem aus, das gefilterte Signal, also die Dreiecksspannung an den AN0 gelegt, da ich den Spannungswert derselben hier einlesen will. Am Sender XBee hängt bis jetzt nur ein Poti. Später will ich auch hier einen PIC verwenden, der mir analoge spannungswerte sendet. Schritt für Schritt habe ich es ungefähr so geplant: 1. Spannung des Poti einlesen 2. Eigelesenen Wert über XBee übertragen 3. Vom Reciever Xbee ausgegebenes PWM-Signal in eine Dreieckspannung umwandeln (RC - Tiefenpassfilter) 4. Effektivwert der Dreickspannung in AN0 einlesen 5. Jenachdem welcher Wert eingelesen wurde, ein PWM Signal 50Hz an RC0 ausgeben um einen Servomotor zu steuern. Der Grundgedanke ist, dass ich am Sender am XBee den Poti drehe und der Servomotor am Reciever sich dementsprechend dreht. Ist dieses Problem gelöst, will ich am Sender Analoge Werte, die der Poti gibt, speichern und anschließend per Tasterdruck wieder aufrufen. Den Poti also nur zur Einstellung, um Werte im EEPROM zu speichen.
MaWin schrieb: > Wo hast du gelernt es lieber kompliziert zu machen statt einfach ? Kannst du mir vielleicht einen Tipp geben, wie es einfacher geht? Ich habe das noch garnicht gelernt, ich bin im ersten Lehrjahr der Elektroausbildung. Die Idee stammt von mir und ist definitiv verbesserungswürdig.
Lass erst mal alles weg, was du nicht unbedingt sofort benötigst. benötigst du den XBee gleich? - Nein - erst mal weglassen zäum das Pferd von hinten auf. Bei der Ausgabe, die in deinem Fall ein Servo ist. Fang also damit an, das Servo anzusteuern. Erst mal nur mit fixen, im Programm hinterlegten Werten, dann kannst du dir ja noch andere Dinge zum Testen ausdenken. Am anderen Ende deiner Kette steht ein Poti zur Eingabe. Lass erst mal alles weg, was da dazwischen liegt und sieh zu, dass du auf EINEM Pic, mit dem Poti (und AD-Wandler) das Servo angesteuert bekommst. Und erst dann überlegst du dir mal, wie du diese ganzen Zwischenschritte mit Spannung, die du per Funk überträgst um dann wieder eine Spannung zu erzeugen, vereinfachen kannst. Ist doch sinnlos dem XBee eine Spannung zu entlocken, nur um die dann wieder in eine Zahl zu verwandeln. So ein XBee kann doch auch ganz prima Zahlen übertragen. Aber das liegt noch in der Ferne. Arbeite Schritt für Schritt und fang dort an, wo du am schnellsten kontrollieren kannst, ob dein Programm funktioniert. Und das ist bei dir nun mal am Servo. Entweder das Servo fährt in die von dir programmierte Position (POsitionen) oder es tut das nicht. Da gibt es dann keine Verwirrungen wo ein eventeueller Fehler liegen könnte. Wenn das Servo nicht reagiert, dann liegt das Problem im Servocode und nicht im ADC Code, denn den gibt es ja noch gar nicht.
> Kannst du mir vielleicht einen Tipp geben, wie es einfacher geht?
Direkt den A/D-Wandler wert als 10-bit Binärzähl seriell übertragen.
Karl Heinz Buchegger schrieb: > Lass erst mal alles weg, was da dazwischen liegt und sieh zu, dass du > auf EINEM Pic, mit dem Poti (und AD-Wandler) das Servo angesteuert > bekommst. Ich habe es bereits geschafft den Servo über zwei Taster Digital zu steuern (vor und zurück). Und auch diverse gewollte Positionen konnte ich anfahren. Karl Heinz Buchegger schrieb: > So ein > XBee kann doch auch ganz prima Zahlen übertragen. Meinst du dann, es sei geschickter, bzw. einfacher eine serielle kommunikation beider XBees zu versuchen? Das habe ich leider noch nie Probiert. Was muss mein SenderPIC dann ausgeben, das der XBee übertragen kann? Ist die Aufgabe letztenendes vielleicht einfacher, wenn ich dieses ganze ADC-Zeug weglasse und es mit Tastern regle und alles Digital mache? Wenn ja, bräuchte ich auch hier eine kleine Starthilfe, oder einen Tritt in den Hintern :D
Stefan H. schrieb: > Karl Heinz Buchegger schrieb: >> Lass erst mal alles weg, was da dazwischen liegt und sieh zu, dass du >> auf EINEM Pic, mit dem Poti (und AD-Wandler) das Servo angesteuert >> bekommst. > > Ich habe es bereits geschafft den Servo über zwei Taster Digital zu > steuern (vor und zurück). Und auch diverse gewollte Positionen konnte > ich anfahren. Na super! Was ist mit dem ADC, denn wenn du mit einem Poti was machen willst, dann wirst du den ADC brauchen. > Karl Heinz Buchegger schrieb: >> So ein >> XBee kann doch auch ganz prima Zahlen übertragen. > > Meinst du dann, es sei geschickter, bzw. einfacher eine serielle > kommunikation beider XBees zu versuchen? Na, das will ich meinen! > Das habe ich leider noch nie > Probiert. Dann wirst du dich damit beschäftigen müssen! > Was muss mein SenderPIC dann ausgeben, das der XBee übertragen > kann? Soviel ich weiß, ist das im Grunde eine ganz normale serielle Datenübertragung von einem PIC zum anderen PIC. Nur dass in deinem Fall dann eben noch die XBees dazwischen stecken und die serielle Übertragung kurzzeitig auf einen Funkkanal geben. Ist so wie dein PC sich ja auch nicht darum kümmert, das beim Abholen von Webseiten aus den USA die Übertragung kurzzeitig über einen Satellit läuft (laufen könnte). Das macht 'die Strecke für dich'. Und bei dir stecken halt die beiden XBee 'in der Strecke drinnen'. Für den einen PIC ist das eine serielle Datenübertragung und für den anderen PIC ist das eine serielle Datenübertragung. So wie wenn da ein Kabel dazwischen wäre (na ja, nicht ganz). Jetzt steckst du das Kabel zwischen den PIC aus und steckst da Sender und Empfänger dazwischen. > Ist die Aufgabe letztenendes vielleicht einfacher, wenn ich dieses ganze > ADC-Zeug weglasse und es mit Tastern regle und alles Digital mache? Digital ja. Aber ob Taster oder ob ADC ist doch völlig wurscht. Letztendes hat PIC-A einen Zahlenwert, der zum PIC-B kommt. Wie der Zahlenwert entsteht und wo der herkommt, interessiert ja PIC-B nicht.
Hallo, falls du die XBee module noch nicht hast, tut es am Anfang auch ein billiger RX/TX 433 MHz Sender für 5€ Ist dann aber nicht bidirektional. (Also nur one way) Für Versuche reicht es aber aus. Die müssen nicht parametriert werden. Um den PIC 16 seriell beizubringen, solltest du mal hier http://www.microchip.com/forums/m77985.aspx nachsehen. So als kleine Starthilfe neben dem Studium des Datenblattes. Gruß BT
BT schrieb: > falls du die XBee module noch nicht hast, tut es am Anfang auch ein > billiger RX/TX 433 MHz Sender für 5€ Ich habe die Module leider schon, macht ja aber nichts, kann es ja mit denen auch versuchen. Danke an Karl Heinz Buchegger, deine Erläuterungen helfen mir immer sehr. Ich werde den Versuch jetzt mit Digitalen Signalen probieren und lasse den Poti erstmal außen vor. Muss mich jetzt nur noch um die serielle Übertragung beider XBees kümmern, dann dürfte (hoffentlich) alles klappen. BT schrieb: > Um den PIC 16 seriell beizubringen, solltest du mal hier > http://www.microchip.com/forums/m77985.aspx > nachsehen. Diese Seite hilft mir nur bedingt, was genau ist denn UART? Und wie funktioniert eine serielle Kommunikation zweier PICs? Danke bis jetzt :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.