NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(sin関数の使い方)

sin関数

 sin関数は角度(ラジアン※1)から正弦※2を計算する三角関数※3です。
 
 Arduino IDEで使用するsin関数の使い方は以下の通りです。
 試しにこのプログラムをArduino UNOで実行すると、図1の様にシリアルモニタ上にsin(-135)の値が「X/r = -0.71 : sin(Rad) = -0.71 : sin(Rad) = -0.71」と出力されます。
#define PI 3.141592653589793            //もしくは float PI=atan(1)*4;

void setup() {
  Serial.begin(9600); //9600bpsでシリアルポートを開く
}

void loop() {                                        //{}内を無限ループで実行する
  /*二点の座標から正弦を計算*/
  float XA = 0, YA = 0, XB = -0.707107, YB = -0.707107, X, Y, r; //点ABのXY座標と半径rを宣言
  X = XB - XA;                                      //点A→BのベクトルX成分を計算
  Y = YB - YA;                                       //点A→BのベクトルY成分を計算
  r = sqrt(pow(X, 2) + pow(Y, 2));          //ベクトル(XY)から半径rを計算
  Serial.print("X/r = ");                          //"X/r = "をシリアル出力
  Serial.print(X / r);                               //X/rをシリアル出力

  float deg = -135, Rad;                         //点ABの角度θの度とラジアンを宣言
  /*PIを使って角度(度)から正弦を計算(先頭の「#define PI」 が必要)*/
  Rad = deg / (180 / PI);                       //度をラジアンに変換
  Serial.print(" : sin(Rad) = ");               //" : sin(Rad) = "をシリアル出力
  Serial.print(sin(Rad));                         //sin(Rad)をシリアル出力

  /*atanを使って角度(度)から正弦を計算(先頭の「#define PI」 は不要)*/
  Rad = deg / (45 / atan(1));                 //1rad=180/PI=45/atan(1)=57.296…°
  Serial.print(" : sin(Rad) = ");               //" : sin(Rad) = "をシリアル出力
  Serial.println(sin(Rad));                       //sin(Rad)をシリアル出力
  delay(1000);                                       //1000ms(1秒)待ちます
}
イメージ 1
図1:プログラム例
sin(rad)パラメータ
rad    角度の単位はラジアンで変数の型はfloatです。
戻り値-1から1の範囲で返します。
    またラジアン・度・sinθの関係は表1の通りです。

イメージ 3
図1:シリアルモニタ出力結果
 
表1:変数と平方根(ルート)
ラジアン(rad) 度(°) Sin(rad)
0.00π 0 0.00
0.25π 45 0.71
0.50π 90 1.00
0.75π 135 0.71
1.00π 180 0.00
1.25π 225 -0.71
1.50π 270 -1.00
1.75π 315 -0.71
 
 
※以下補足です

1ラジアンとは?
「円の半径に等しい長さの弧の中心に対する角度」と定義されています。
 参考に円をラジアン単位で区切ると図2左円グラフの様になり、ラジアンに円周率パイ(以下π)を掛けた単位で区切ると図2右円グラフの様になります。
 ラジアンと度の関係を表したものを表2に示します。

イメージ 1
図2:ラジアンによる円周上の角度(単位:rad)
 
表2:ラジアンと度
ラジアン(rad) 度(°)
0 0
1 57.296・・・
n 180
2n 360
※π=3.14159…

2 正弦定理(せいげんていり、law of sines)とは
三角形の内角の正弦とその対辺の長さの関係を示したもので正弦法則とも言い、sin(サイン)がつかわれます。
 
3三角関数とは?
 三角関数(さんかくかんすう、英: trigonometric function)とは、平面三角法における、角の大きさと線分の長さの関係を記述する関数です。
 全部で6種類{sin(正弦),sec(正割),tan(正接),cos(余弦),csc(余割),cot(余接)三角関数が有り、主に使われるsin,cos,tanの詳細は図3,4の通りです。

イメージ 2

 sinθ = Y/r
 cosθ = X/r
 tanθ = Y/X
 
 θ = Asin(Y/r)
 θ = Acos(X/r)
 θ = Atan(Y/X)
 
 
 
 
 
図3:三角関数
 
イメージ 2
図4:角度別三角関数戻り値
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る