2022年Arduino的程序语言[定 .pdf

上传人:Che****ry 文档编号:34261051 上传时间:2022-08-15 格式:PDF 页数:9 大小:127.11KB
返回 下载 相关 举报
2022年Arduino的程序语言[定 .pdf_第1页
第1页 / 共9页
2022年Arduino的程序语言[定 .pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年Arduino的程序语言[定 .pdf》由会员分享,可在线阅读,更多相关《2022年Arduino的程序语言[定 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Arduino的程序语言一一个 Arduino 脚本程式码 (SKETCH) 由两部分组成void setup() 在这个函数范围内放置初始化Arduino 板子的程式 - 在主要程式开始撰写前,使 Arduino 板子装置妥当的指令。void loop() 在此放置你的 Arduino 脚本。这部份的程式会一直重复的被执行,直到 Arduino 板子被关闭。特殊符号Arduino 语言用了一些符号描绘程式码,例如注释和程式区块。; /(分号 ) Arduino 语言每一行程序都是以分号为结尾。这样的语法让你可以自由地安排代码,你可以将两个指令放置在同一行,只要中间用分号隔开。(但这样做可能降

2、低程式的可读性。)范例:delay(100); (大括号 ) 大括号用来将程式代码分成一个又一个的区块,如以下范例所示,在loop() 函数的前、后,必须用大括号括起来。范例:void loop() Serial.pritln(cial); 注释程式的注释就是对代码的解释和说明,编写注释有助于程式设计师(或其他人 )了解代码的功能。Arduino处理器在对程式码进行编译时会忽略注释的部份。Arduino 语言中的编写注释有两种方式名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页

3、,共 9 页 - - - - - - - - - /单行注释:这整行的文字会被处理器忽略/*多行注释:在这个范围内你可以写一整首诗*/常数在 Arduino语言中事先定义了一些具特殊用途的保留字。HIGH 和 LOW 用来表示你开启或是关闭了一个Arduino的脚位 (pin) 。 INPUT 和 OUTPUT 用来指示这个 Arduino的脚位 (pin) 是属于输入或是输出用途。true 和 false 用来指示一个条件或表示式为真或是假。变数变数用来指定 Arduino 记忆体中的一个位置,变数可以用来储存资料,程式人员可以透过脚本代码去不限次数的操作变数的值。因为 Arduino 是一

4、个非常简易的微处理器,但你要宣告一个变数时必须先定义他的资料型态,好让微处理器知道准备多大的空间以储存这个变数值。Arduino 語言支援的變數型態 : 布林 boolean布林變數的值只能為真 (true)或是假 (false) 字元 char單一字元例如 A,和一般的電腦做法一樣Arduino 將字元儲存成一個數字,即使你看到的明明就是一個文字。用數字表示一個字元時,它的值有效範圍為 -128 到 127。-注意:有兩種主流的電腦編碼系統ASCII 和 UNICODE。ASCII 表示了 127 個字元, 用來在序列終端機和分時計算機之間傳輸文字。UNICODE 可表示的字元量比較多, 在

5、現代電腦作業系統內它可以用來表示多國語言。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 在位元數需求較少的資訊傳輸時,例如義大利文或英文這類由拉丁文,阿拉伯數字和一般常見符號構成的語言,ASCII 仍是目前主要用來交換資訊的編碼法。-位元組 byte儲存的數值範圍為0 到 255。如同字元一樣位元組型態的變數只需要用一個位元組(8 位元) 的記憶體空間儲存。整數 int整數資料型態用到2 位元組的記憶體空間,可表示的整數範圍為

6、32,768 到32,767; 整數變數是 Arduino 內最常用到的資料型態。整數 unsigned int無號整數同樣利用2 位元組的記憶體空間, 無號意謂著它不能儲存負的數值,因此無號整數可表示的整數範圍為0 到 65,535 。長整數 long長整數利用到的記憶體大小是整數的兩倍,因此它可表示的整數範圍從2,147,483,648 到 2,147,483,647。長整數 unsigned long無號長整數可表示的整數範圍為0 到 4,294,967,295。浮點數 float浮點數就是用來表達有小數點的數值,每個浮點數會用掉四位元組的RAM ,注意晶片記憶體空間的限制,謹慎的使用浮

7、點數。雙精準度浮點數 double雙精度浮點數可表達最大值為 1.7976931348623157 x 10308 。字串 string字串用來表達文字信息,它是由多個ASCII 字元組成 ( 你可以透過序串埠發送一個文字訊息或者將之顯示在液晶顯示器上) 。字串中的每一個字元都用一個組元組空間儲存,並且在字串的最尾端加上一個空字元以提示Ardunio 處理器字串的結束。下面兩種宣告方式是相同的。char string1 = Arduino; / 7 字元 + 1 空字元char string28 = Arduino; / 與上行相同名师资料总结 - - -精品资料欢迎下载 - - - - -

8、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 陣列 array一串變數可以透過索引去直接取得。假如你想要儲存不同程度的LED亮度時,你可以宣告六個變數light01,light02,light03,light04 ,light05 ,light06 ,但其實你有更好的選擇,例如宣告一個整數陣列變數如下:int light6 = 0, 20, 50, 75, 100; array 這個字為沒有直接用在變數宣告,而是 和 宣告陣列。控制指令Ardunio 利用一些關鍵字控制程式碼的邏輯。if

9、 elseIf 必須緊接著一個問題表示式(expression),若這個表示式為真,緊連著表示式後的代碼就會被執行。 若這個表示式為假, 則執行緊接著 else 之後的代碼 . 只使用 if不搭配 else 是被允許的。範例:if (val = 1) digitalWrite(LED,HIGH); for用來明定一段區域代碼重覆指行的次數。範例:for (int i = 0; i 10; i+) Serial.print(ciao); switch caseif 敘述是程式裡的分叉路口,switch case 是更多選項的路口。 Swith case 根據變數值讓程式有更多的選擇,比起一串冗長

10、的if敘述,使用 swith case 可使程式代碼看起來比較簡潔。範例 : switch (sensorValue) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - case 23: digitalWrite(13,HIGH); break; case 46: digitalWrite(12,HIGH); break; default: / 以上條件都不符合時,預設執行的動作digitalWrite(12,LOW); digi

11、talWrite(13,LOW); while當 while 之後的條件成立時,執行括號內的程式碼。範例 : / 當 sensor 值小於 512 ,閃爍 LED 燈sensorValue = analogRead(1); while (sensorValue 512) digitalWrite(13,HIGH); delay(100); digitalWrite(13,HIGH); delay(100); sensorValue = analogRead(1); do while和 while 相似,不同的是 while 前的那段程式碼會先被執行一次,不管特定的條件式為真或為假。因此若有一段

12、程式代碼至少需要被執行一次,就可以使用dowhile 架構。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 範例 : do digitalWrite(13,HIGH); delay(100); digitalWrite(13,HIGH); delay(100); sensorValue = analogRead(1); while (sensorValue 512); breakBreak 讓程式碼跳離迴圈,並繼續執行這個迴圈之

13、後的程式碼。此外,在break也用於分隔 switch case 不同的敘述。範例 : /當 sensor 值小於 512 ,閃爍 LED 燈do / 按下按鈕離開迴圈if (digitalRead(7) = HIGH) break; digitalWrite(13,HIGH); delay(100); digitalWrite(13,HIGH); delay(100); sensorValue = analogRead(1); while (sensorValue 512); continuecontinue 用於迴圈之內,它可以強制跳離接下來的程式,並直接執行下一個迴圈。名师资料总结 -

14、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 範例 : for (light = 0; light 140) & (x 200) continue; analogWrite(PWMpin, light); delay(10); return函數的結尾可以透過return回傳一個數值。例如,有一個計算現在溫度的函數叫 computeTemperature() ,你想要回傳現在的溫度給 temperature 變數,你可以這樣寫:int tempe

15、rature = computeTemperature(); int computeTemperature() int temperature = 0; temperature = (analogRead(0) + 45) / 100; return temperature; 算術運算和方程式你可以透過特殊的語法用 Arduino 去做一些複雜的計算。 + 和就是一般學校教的加減法,乘法用 *示,而除法用 / 表示。另外餘數除法 (%),用於計算整數除法的餘數值。你可以透過多層次的括弧去指定算術之間的循序。 和數學函式不一樣, 中括號和大括號在此被保留在不同的用途(分別為陣列索引,和宣告區域程

16、式碼) 。範例 : a = 2 + 2; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - light = (12 * sensorValue) - 5 ) / 2; remainder = 3 % 2; 比較運算符號當你在指定 if,while, for 敘述句時,可以運用下面這個運算符號:= 等於!= 不等於 大於= 大於等於布林運算符號當你想要結合多個條件式時,可以使用布林運算符號。例如你想要檢查從感測器傳回的數值是否於5

17、到 10,你可以這樣寫:if (sensor = 5) & (sensor =10) 這裡有三個運算符號 : 交集(and) 用 & 表示; 聯集(or) 用 | 表示; 反相(finally not)用 ! 表示。復合運算符號有一般特殊的運算符號可以使程式碼比較簡潔,例如累加運算符號。例如將一個值加 1,你可以這樣寫 : value = value +1; 你也可以用一個復合運算符號累加(+) :value+; 累加和遞減 (+ 和 -)當你在累加 1 或遞減 1 到一個數值時。請小心i+ 和+i 之間的不同。如果你用的是 i+ ,i 會被累加並且 i 的值等於 i+1 ;但當你使用 +i

18、時,i 的值等於 i ,直到這行指令被執行完時i 再加 1。同理應用於。+= , =, *= and /=這些運算符號可讓表示式更精簡,下面二個表示式是等價的:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - a = a + 5;a += 5; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁