Các hàm tính lượng giác trong Arduino: acos(arcos), asin(arcsin), atan(arctan), atan2, cosh, sinh, tanh

Mô tả dự án: 

Bài viết này tiếp tục bổ xung các tập lệnh quan trọng trong tính toán lượng giác: acos(arcos), asin( arcsin), atan(arctan), atan2, cosh, sinh, tanh. 

Tóm tắt kiến thức liên quan.

Bảng giá trị lượng giác

Biểu thức của các hàm hyperbolic

MACRO

Các góc đặc biệt được định nghĩa :

Macro
Giá trị
PI (số pi)
3,141592653589793..
TWO_PI
2*Pi=2x3,141592653589793..
HALF_PI Pi/2=1.57079632679489661923

Ví dụ

double x = PI;
void setup()
{
    Serial.begin(9600);
    Serial.println(x, 10); // lấy 10 số phần thập phân
    //x=3.1415927410
}
void loop() {}

Hàm asin( x)

Cấu trúc

double asin(double x)
  • Trả về arcsin của x (giá trị radian)
  • Kiểu tham trị x : double hoặc float
  • Kiểu trả về: double.

Ví dụ

double Goc;
double Sin = 0.86602; //  Sin(Goc)=(căn 3)/2
void setup()
{
    Serial.begin(9600);
    Goc = asin(Sin);
    Serial.println(Goc, 5); // lấy 5 số phần thập phân
    //Goc=1.04719
}
void loop() {}

Hàm acos(x)

Cấu trúc

double acos(double x)
  • Trả về arcos của x (giá trị radian)
  • Kiểu tham trị x: double.
  • Kiểu trả về: double.

Ví dụ

double Goc;
double Cos = 0.86602; //  cos(Goc)=(căn 3)/2
void setup()
{
    Serial.begin(9600);
    Goc = acos(Cos);
    Serial.println(Goc, 5); // lấy 5 số phần thập phân
    //Goc=0.52361
}
void loop() { }

 

Hàm atan(x)

Cấu trúc

double atan(double x)
  • Trả về arctan của x (giá trị radian)
  • Kiểu tham trị x: double.
  • Kiểu trả về: double.

Ví dụ

double Goc;
double Tan = 1.732050; //  Tan(Goc)=Sin(Goc)/Cos(Goc)=(căn 3)
void setup()
{
    Serial.begin(9600);
    Goc = atan(Tan);
    Serial.println(Goc, 5); // lấy 5 số phần thập phân
    //Goc=1.04720
}
void loop() {}

 

Hàm atan2(x, y)

Cấu trúc

double atan2(double x , double y)
  • Trả về arctan của x/y (giá trị radian)
  • Kiểu tham trị x, y: double.
  • Kiểu trả về: double.

Ví dụ

double Goc;
float x = 0.86602540; // =(Căn 3)/2.
float y = 0.5; // =1/2.

void setup()
{
    Serial.begin(9600);
    Goc = atan2(x, y); // tính arctan(x/y)
    Serial.println(Goc, 5); // lấy 5 số phần thập phân
    //Goc=1.04720
}
void loop() {}

 

 

Hàm arccot(x/y)

 

Thư viện không hỗ trợ biểu thức này, tuy nhiên ta có thể suy ra từ công thức tính arctan.

Cụ thể:

 arccot(x/y) = arctan(y/x)

Như vậy : 

arccot(x,y)= atan(y/x)=atan2(y,x); 

 

Hàm cosh(x)

Cấu trúc

 double cosh(double x)

Trả về cosh (hàm hyperbolic cosin) của x (giá trị radian) trong phép tính:

  • Kiểu tham trị x: double.
  • Kiểu trả về: double

Ví dụ

float x = 1.2345;
double Cosh;
void setup()
{
    Serial.begin(9600);
    Cosh = cosh(x);
    Serial.println(Cosh, 5); // lấy 5 số phần thập phân
    //Cosh=1.86382
}
void loop() {}

Hàm sinh(x)

Cấu trúc

double sinh(double x)

Trả về sinh (hàm hyperbolic sin) của x (giá trị radian) trong phép tính:

Kiểu tham trị x: double.

Kiểu trả về: double

Ví dụ

float x = 1.2345;
double Sinh;
void setup()
{
    Serial.begin(9600);
    Sinh = sinh(x);
    Serial.println(Sinh, 5); // lấy 5 số phần thập phân
    //Sinh=1.57284
}
void loop() {}

Hàm tanh(x)

Cấu trúc

double tanh(double x)

Trả về tanh (hàm hyperbolic tan) của x (giá trị radian) trong phép tính:

Kiểu tham trị x: double.

Kiểu trả về: double.

Mối quan hệ của Sinh, Cosh và Tanh

 

Ví dụ

float x = 1.2345;
double Tanh;
void setup()
{
    Serial.begin(9600);
    Tanh = tanh(x);
    Serial.println(Tanh, 5); // lấy 5 số phần thập phân
    //Tanh=0.84388
}
void loop() {}
lên
3 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Sử dụng Ic SRAM 23LC1024 bằng Driver với thư viện SRAM_MANAGER cho arduino

Ở 2 bài trước, chúng ta đã biết cách giao tiếp và lưu trữ cơ bản trên 2 loại SRAM. Sau gần 6 tháng làm việc với SRAM trong các dự án, hôm nay mình sẽ chia sẻ 1 driver do mình thiết kế, nó dùng để hỗ trợ quản lý SRAM 23lc1024, đem đến cách dùng RAM ngoài thân thiện hơn cho lập trình viên.

lên
7 thành viên đã đánh giá bài viết này hữu ích.

GAME-ST7565-LÀM GAME FLAPPY BIRD VỚI ARDUINO

Nói tới Game này thì ai cũng biết, là một trong số những Game của người Việt có tiếng vang lớn trong vài năm  trước, cách chơi đơn giản,đồ họa 2D basic... vậy còn lập trình nó với ARDUINO thì sao nhỉ ?

lên
9 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: