Forum: Mikrocontroller und Digitale Elektronik Winkelberechnung mit PIC


von ipirk (Gast)


Lesenswert?

Hallo!!!
Ich will mit meinen PIC (18f448) und dem CCS Compiler den Winkel Alpha 
eines Rechtwinkligen dreiecks zu berechnen!!
Die formel: tan^-1(Gk/Ak)
Das Problem:
Wie machen ich das mit dem CCS Compiler der hat doch nur sin, cos, tan 
funktionen, aber wie binde ich das Tangens hoch minus eins ein???

Bitte um Hilfe
MFG

von Helmi (Gast)


Lesenswert?

Was du brauchst ist die arctan Funktion. Wenn die nicht in deiner LIB 
ist must du sie dir per Tailorreihen entwicklung selber berechnen.

Hier zu der passende Link:
http://de.wikipedia.org/wiki/Arkustangens_und_Arkuskotangens

Gruss Helmi

von ipirk (Gast)


Lesenswert?

Ich habe diese funktion hier:
atan - returns the arc tangent value in the range [-pi/2,+pi/2] radians

Is das das richtige???
mfg

von Helmi (Gast)


Lesenswert?

Ja wenn dir der Argumentbereich der Funktion reicht. Sonst suche mal ob 
du eine atan2 Funktion findest die geht dann ueber den vollen Bereich.
Bedenke auch das diese Funktionen nicht Grad sondern RADIANT ausgeben.

Gruss Helmi

von ipirk (Gast)


Lesenswert?

Was heist das den wider??
Und warum sollte der Bereich nicht ausreichen??
Und ja so ne funktion hab ich auch:
atan2  -- returns the arc tangent of y/x in the range [-pi,+pi] radians

mfg

von Helmi (Gast)


Lesenswert?

>Was heist das den wider??
>Und warum sollte der Bereich nicht ausreichen??
>Und ja so ne funktion hab ich auch:


Die atan funktion ist nur fuer den 1. Quadranten die atan2 Funktion fuer 
alle 4 Quadranten. Deshalb braucht die atan2 Funktion ja auch den x und 
denn y Wert um sich den Quadranten ausrechnen zu koennen. Bei der atan 
funktion uebergibst du ja nur 1 wert und dann ist der quadrant wo das 
ergebnis liegt unbestimmt.

Gruss Helmi

von ipirk (Gast)


Lesenswert?

Gut das heist wenn bei meim Dreieck die Gk 4cm und die Ak 2cm lang sind 
gebe ich das folgendermasen ein:

Winkel = atan2(4,2);

Stimmt das so??

von jonas (Gast)


Lesenswert?

Dann hast du bestelfalls den Winkel im Bogenmaß (rad)

von ipirk (Gast)


Lesenswert?

Entschuldigung das ich mich hier so blöd anstelle, aber was ist ein 
bogenmaß?
Und wie rechne ich das in nen Winkel um??

von ... (Gast)


Lesenswert?

* 180/pi

von Severino R. (severino)


Lesenswert?

ipirk wrote:
> Entschuldigung das ich mich hier so blöd anstelle, aber was ist ein
> bogenmaß?
> Und wie rechne ich das in nen Winkel um??

Bogenmass ist auch ein Winkel, nur eben in Radian ausgedrückt und nicht 
in Grad.

Bogenmass geht von 0 bis 2*Pi
Grad von 0° bis 360°

Folglich: Grad = Bogenmass*180/Pi

von Peter X. (vielfrass)


Lesenswert?

teile das Ergebnis der Atan oder Atan2 Berechnung durch PI und nimms 
dann mit 180 mal. Dann hast du's in Grad.

{
   float Winkel_in_grad;
   const PI = 3.1415926;
   Winkel_in_grad = 180.0 * ATAN2(Ankathete,Gegenkathete) / PI;

//   Winkel_in_grad = 180.0 * ATAN(Ankathete / Gegenkathete) / PI;



}

Bogenmass ist (Winkel_in_grad * PI / 180.0)

von Helmi (Gast)


Lesenswert?

>Gut das heist wenn bei meim Dreieck die Gk 4cm und die Ak 2cm lang sind
>gebe ich das folgendermasen ein:

>Winkel = atan2(4,2);

>Stimmt das so??

Ja

Gruss Helmi

von ipirk (Gast)


Lesenswert?

Asoooooo!!! --- Eh so einfach :-)

Die richtig schreibt man das also so (um als Ergebnis das:

Winkel =((atan2(4,2))*180/3);

3 steht probeweise für PI

Danke an alle die geholfen haben!!!!
mfg

von Severino R. (severino)


Lesenswert?

Peter X. wrote:

>    Winkel_in_grad = 180.0 * ATAN2(Ankathete,Gegenkathete) / PI;
>
> //   Winkel_in_grad = 180.0 * ATAN(Ankathete / Gegenkathete) / PI;

Hast Du nicht Ankathete und Gegenkathete vertauscht?

von Peter X. (vielfrass)


Lesenswert?

UPS...

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
Noch kein Account? Hier anmelden.