Hallo zusammen, ich nutze das AVR-NET-IO Board mit einem ATmega32 µC. Nun möchte ich gerne zwei variable Winkel-Eingaben (Roll und Pitch, jeweils im Bereich -180° bis +180°) in der Software verarbeiten und auf 6 Spannungswerte Roll(X, Y, Z) und Pitch(X, Y, Z) umrechnen. Diese sollen als analoge Signale an eine Verstärkerplatine ausgeben werden, welche dann einen künstlichen Horizont ansteuert. Der künstliche Horizont soll sich in Abhängigkeit von den eingegeben Winkeln entsprechend positionieren. Die, in Abhängigkeit des Winkels, bereits gemessenen analogen Spannungen, welche normalerweise den künstlichen Horizont ansteuern, betragen 2V bis 15V bei einer Frequenz von 400 Hz. X, Y und Z sind jeweils 120° phasenverschoben. Ich habe mir nun überlegt, dass ich die gemessenen Spannungswerte in der Software auf µC-kompatible 0V bis 5V umrechne und diese in Abhängigkeit der eingegebenen Roll- & Pitch-Winkel über den µC ausgebe. Nun stehe ich vor dem Problem, dass ich hier kaum Erfahrung habe und ich nicht genau weiß, wo und wie ich die Sache anpacken muss. Ich habe mich in das Thema (Software-)PWM eingelesen, bin aber auch auf DA-Wandler wie den LTC2645 gestoßen, welcher 4 Ausgänge und die Option bietet, bei Inaktivität den zuletzt erreichten Wert zu halten, was hier womöglich von Nöten ist. Wie gehe ich hier am Besten vor? Eignet sich hierfür eine Software-PWM (habe 2 PWM-Ausgänge, PB1 und PB2) oder ist dabei die Berechnung und Ansteuerung zu zeitintensiv? Bietet sich der LTC2645 an oder gibt es diesen auch direkt mit 6 Ausgängen, so dass die Ausgabe der 6 Signale u.U. parallel erfolgen kann? Wie wird der LTC2645 genau angesteuert? Ich hoffe ich habe hier alles halbwegs verständlich dargelegt. Vielen, vielen Dank im Voraus für eure Mühen, mir zur Helfen! Schöne Grüße, Morton
Martin S. schrieb: > Ich hoffe ich habe hier alles halbwegs verständlich dargelegt. Nein, hast du nicht. Und das liegt mit einiger Wahrscheinlichkeit daran, dass du es selber nicht richtig verstanden hast. Am besten fängst du erstmal damit an, zu begreifen, was so ein künstlicher Horizont tut. Der stellt Bewegungen um ZWEI Achsen dar, nicht mehr und nicht weniger. Du hast zwei Winkel als Eingabegrößen, das paßt also eigentlich bereits vollständig, da gibt es eigentlich nichts mehr zu rechnen. Was bleibt, ist die Klärung der genauen Funktionsweise des künstlichen Horizonts. Wieso braucht der drei Größen, um die zwei Winkel darzustellen? Oder andersrum: Wie genau wirken sich Änderungen der drei Größen auf die zwei tatsächlich angezeigten Winkel aus? Erfasse diese Zusammenhänge systematisch in Form eines Systems von zwei Gleichungen. | f1=g1(x,y,z) | f2=g2(x,y,z) Ist das geschafft, formst du das Gleichungssystem so um, dass sich die inverse Funktionalität ergibt, das sollte dann ein System aus drei Gleichungen werden. | x=g1(f1,f2) | y=g2(f1,f2) | z=g3(f1,f2) Nun brauchst du nur noch diese drei gefundenen Gleichungen in der Notation der von dir verwendeten Programmiersprache hinschreiben und der Drops ist im Wesentlichen gelutscht. Der Rest ist dann nur noch die Bereitstellung der drei Ausgabeglieder und die Skalierung der drei Funktionsergebnisse auf den verfügbaren Wertebereich der Ausgabeglieder.
> Die ....Spannungen, welche normalerweise den künstlichen Horizont > ansteuern, betragen 2V bis 15V bei einer Frequenz von 400 Hz. > X, Y und Z sind jeweils 120° phasenverschoben. Das ist extrem unklar ausgedrückt. Kannst die die drei Signale als Diagramm darstellen? Warum hast du überhaupt drei Signale obwohl es doch nur zwei Steuersignale und nur zwei Achsen gibt?
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.