成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

學(xué)習(xí)Arduino浮點(diǎn)數(shù)運(yùn)算與比較

在學(xué)習(xí)Arduino編程過程中,了解如何使用不同類型的變量是至關(guān)重要的。本文將分享如何在程序中進(jìn)行浮點(diǎn)數(shù)的運(yùn)算和比較,以幫助讀者更好地掌握Arduino的相關(guān)知識(shí)。 準(zhǔn)備硬件及編輯程序首先,準(zhǔn)備所需的

在學(xué)習(xí)Arduino編程過程中,了解如何使用不同類型的變量是至關(guān)重要的。本文將分享如何在程序中進(jìn)行浮點(diǎn)數(shù)的運(yùn)算和比較,以幫助讀者更好地掌握Arduino的相關(guān)知識(shí)。

準(zhǔn)備硬件及編輯程序

首先,準(zhǔn)備所需的硬件。在這個(gè)例子程序中,我們只需要一個(gè)控制器和一個(gè)下載線即可開始。接著,打開Arduino IDE軟件來編輯程序。以下是示例代碼:

```c

float value 1.1;

void setup() {

(9600); //設(shè)置串口波特率為9600

}

boolean almostEqual(float a, float b) {

const float DELTA 0.00001;

if (a 0) return fabs(b) < DELTA;

if (b 0) return fabs(a) < DELTA;

return fabs((a - b) / max(fabs(a),fabs(b))) < DELTA;

}

void loop() {

value value - 0.1; //每次減0.1

if(value 0)

("The value is exactly zero");

else if(almostEqual(value, 0)) {

("The value");

(value, 7); //顯示value小數(shù)點(diǎn)后7位

("is almost equal to zero");

}

else

(value);

delay(100);

}

```

編譯程序并上傳

編輯完程序后,點(diǎn)擊編譯。如果程序尚未保存,會(huì)提示保存位置;已保存過則自動(dòng)保存改動(dòng)內(nèi)容。編譯成功后,在下方顯示“編譯完成”。在上傳之前,確保選擇正確的控制器型號(hào)(如Arduino UNO)和端口號(hào)。上傳成功后,IDE會(huì)顯示“上傳成功”。

打開串口監(jiān)視器查看輸出

打開Arduino IDE的串口監(jiān)視器,可以查看程序的輸出效果。在浮點(diǎn)數(shù)運(yùn)算中,精確度有限,通常會(huì)有一定誤差。即使沒有預(yù)期的輸出“The value is exactly zero”,但其值非常接近于零,卻永遠(yuǎn)不會(huì)為零。在Arduino中,float和double具有相同的精度。

通過學(xué)習(xí)本文提供的浮點(diǎn)數(shù)運(yùn)算示例,讀者可以更好地理解Arduino中變量類型的使用方法,以及浮點(diǎn)數(shù)計(jì)算時(shí)可能遇到的誤差情況。熟練掌握這些概念,將有助于提升對(duì)Arduino編程的理解和應(yīng)用能力。

標(biāo)簽: