版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
應(yīng)用實踐——Arduino
編程基礎(chǔ)yuanyc@njcit.cn※通常我們說的Arduino語言,是指Arduino核心庫文件提供的各種應(yīng)用程序編程接口(Application
Programming
Interface,簡稱API)的集合
。必這些API是對更底層的單片機支持庫進(jìn)行二次封裝所形成的?!鶄鹘y(tǒng)開發(fā)方式中,需要理清楚每個寄存器的意義及之間的關(guān)系,然
后通過配置多個寄存器來達(dá)到目的。而
在Arduino中,使用了清楚明了的API替代繁雜的寄存器配置過程。Arduino語言Arduino語言代碼pinMode(13,OUTPUT);digitalWrite(13,HIGH);pinMode(13,OUTPUT)即是設(shè)置引腳的模式,這里設(shè)定了13腳為輸
出模式;而digitalWrite(13,HIGH)是讓13腳輸出高電平數(shù)字信號?!?/p>
這些封裝好的API,使得程序中的語句更容易被理解,我們不用理
會單片機中繁雜的寄存器配置,就能直觀的控制Arduino,增強程序
的可讀性的同時,也提高了開發(fā)效率。Arduino
程序的基本結(jié)構(gòu)void
setup()//put
your
setup
code
here,to
run
once://在這里加入你的setup
代碼,它只會運行
一次:void
loop()//put
your
main
code
here,to
run
repeatedly://
在這里加入你的loop
代碼,它會不斷重復(fù)運行:sketch_nov09a§Arduino/Genuino
Mega
or
Mega
2580,ATmega2580(Mega
2580)在COM3 sketch_nov09a|Arduino
1.8.7文
件
編
輯
項
目
工
具
幫
助Arduino
程序的基本結(jié)構(gòu)Arduino程序基本結(jié)構(gòu)由setup()和loop()兩個函數(shù)組成。※Arduino
控制器通電或復(fù)位后,即會開始執(zhí)行setup()
函數(shù)中的程序,
該部分只會執(zhí)行一次?!ǔN覀儠趕etup()
函數(shù)中完成Arduino
的初始化設(shè)置,如配置I/O
口狀態(tài),初始化串口等操作?!趕etup()函數(shù)中的程序執(zhí)行完后,
Arduino
會接著執(zhí)行
loop()函數(shù)
中的程序?!鵯oop()
函數(shù)是一個循環(huán),其中的程序會不斷的重復(fù)運行?!?/p>
通常我們會在loop()
函數(shù)中完成程序的主要功能,如驅(qū)動各種模塊,
采集數(shù)據(jù)等。特殊標(biāo)點及符號Arduino語言運用了一些符號來描繪程序代碼,例如,注釋和程序
部
分
。;
(
分
號
)Arduino每條指令(代碼行)都以分號結(jié)束。這樣的語法可以讓你自
由安排代碼,甚至可以將兩條指令放在同一行,只要你用一個分號
把它們隔開就行了(然而,這樣做會讓你的程序代碼更難以閱讀)。例
如
:delay(100);大括號※{
(
大
括
號
)用來注釋程序代碼的分區(qū)。例如,當(dāng)你為loop()函數(shù)編寫代碼時,必
須把編碼的前后用大括號括起來。例
如
:void
loop()serial.println(“TSRobot”);注釋注釋這是Arduino程序編譯中忽略的一部分,但是它有助于提醒你自己或
別人這小段程序代碼的功能。在Arduino里有兩種形式的注釋。//單行注釋:這行會被忽略掉1*多行注釋:你可以在這里寫出一整首詩*/常量常量Arduino語言有一些特殊意義的關(guān)鍵字。例
如
:HIGH
和LOW
用來表示打開或關(guān)閉(高電平或者低電平);Arduino的一個引腳(pin),INPUT
和OUTPUT用來設(shè)定某個特定
引腳是輸入接口還是輸出接口;True和False
,
像它們的字面意思一樣;表示一個條件或一個運算是
真還是假。變量※變量變量保存在Arduino內(nèi)存中,它可以用來保存數(shù)據(jù),你可以應(yīng)用這個
變量的數(shù)據(jù)來計算或者將這個數(shù)據(jù)應(yīng)用到程序中?!兞吭诔绦蛑惺强梢愿牡?。※因為Arduino是一個非常簡單的微處理器,所以當(dāng)你聲明一個變量
時,還必須指定它的類型。必這意味著告訴處理器為你所要存儲的數(shù)據(jù)留出多大的空間。變量范圍※有三個地方可以聲明變量。它們是:※·
在函數(shù)或代碼塊內(nèi)部,稱為局部變量?!?/p>
在函數(shù)參數(shù)的定義中,稱為形式參數(shù)。※·
在所有函數(shù)之外,稱為全局變量?!植孔兞俊诤瘮?shù)或代碼塊中聲明的變量是局部變量。它們只能由該函數(shù)或代碼塊中的語句使用。局部變量不能在它們自己之外運行?!肿兞勘厝肿兞吭谒泻瘮?shù)之外定義,通常位于程序的頂部。全局變量將在程序的整
個生命周期中保持其價值。必全局變量可以被任何函數(shù)訪問。也就是說,
一個全局變量可以在整個程序中聲
明后使用。字符串必字符串用于存儲文本。它們可用在LCD
或Arduino
IDE串口監(jiān)視器窗
口中顯示文本。字符串也可用于存儲用戶輸入。例如,用戶在連接到Arduino的鍵盤上鍵入的字符。字符串的定義方式有兩種,一種是以字符型數(shù)組方式定義,char
字符串名稱[字符個數(shù)];另一種是使用String類型定義。String
字符串名稱;數(shù)組就是通過索引存取的變量列表,它們用來建立數(shù)值的表格。※例如,如果你想存儲不同亮度的LED值,你固然可以創(chuàng)立6個變量,分別為light01
、light02等
,※但更好的方法是用一個如下的數(shù)組int
light[6]={0,20,50,75,100,150};數(shù)組array(
數(shù)
組
)變量類型
Boolean(布爾)真,假char(字符)128到127占用一字節(jié)byte(字節(jié))0-255
一字節(jié)int(整型)-32768到32767
兩字節(jié)unsigned
int(無符號整型0-65535short(短整型)-32768到32767long(長整型)-2147483648到2417483647float(浮點型)占4個字節(jié),很大double(雙精度浮點型)占8個字節(jié),非常大描述將等號右側(cè)的值存儲
在等號左邊的變量中。兩個操作數(shù)相加從第一個操作數(shù)中減
去第二個操作數(shù)將兩個操作數(shù)相乘用分母除分子模數(shù)運算符和整數(shù)除
后的余數(shù)例子A=BA+B將得出30A-B將得出-10A*B將得出200B/A將得出2B%A將得出0運算符名稱賦值運算符加號減號乘號除號模數(shù)運算符簡寫二十*%運算符/運算符
運算符名稱運算符簡寫描述例子等于==檢查兩個操作數(shù)的值是否相等,如果相
等,則條件為真(true)。(A==B)不為真不等于!=檢查兩個操作數(shù)的值是否相等,如果值
不相等,則條件為真。(A!=B)為真小于<檢查左操作數(shù)的值是否小于右操作數(shù)的
值,如果是,則條件為真。(A<B)為真大于>檢查左操作數(shù)的值是否大于右操作數(shù)的
值,如果是,則條件為真。(A>B)不為真小于或等于<=檢查左操作數(shù)的值是否小于或等于右操
作數(shù)的值,如果是,則條件為真。(A<=B)為真大于或等于>=檢查左操作數(shù)的值是否大于或等于右操
作數(shù)的值,如果是,則條件為真。(A>=B)不為真運算符名稱運算符簡寫描述例子and(與)&&稱為邏輯運算符與。如果兩個操
作數(shù)都是非零,那么條件為真。(A&&B)為真or(或)稱為邏輯運算符或。如果兩個操
作數(shù)中的任何一個是非零,則條
件為真。(A||B)為真not(非)■稱為邏輯運算符非。用于反轉(zhuǎn)其操作數(shù)的邏輯狀態(tài)。如果條件為真,則邏輯運算符非將為假。!(A&&B)為假運算符位運算符描述如果同時存在于兩個操作數(shù)中,二進(jìn)
制AND運算符復(fù)制一位到結(jié)果中。如果存在于任一操作數(shù)中,二進(jìn)制
OR運算符復(fù)制一位到結(jié)果中。如果存在于其中一個操作數(shù)中但不同
時存在于兩個操作數(shù)中,二進(jìn)制XOR運算符復(fù)制一位到結(jié)果中。二進(jìn)制NOT運算符是一元運算符,
具有“翻轉(zhuǎn)”位效果。二進(jìn)制左移運算符。左操作數(shù)的值向
左移動右操作數(shù)指定的位數(shù)。二進(jìn)制右移運算符。左操作數(shù)的值向
右移動右操作數(shù)指定的位數(shù)。例子(A&B)將得出12,即0000
1100(A|B)將得出61,即0011
1101(A^B)將得出49,即0011
0001(一A)將得出-60,即1100
0011A<<2將得出240,即1111
0000A>>2將得出15,即0000
1111運算符名稱a
n
d(
與
)o
r(
或
)xor(異或)not(非)shift
left(左移)shift
right(右移
)運算符簡寫&~<<>>
復(fù)合運算符運算符名稱運算符簡寫描述例子自
增++自增運算符,將整數(shù)值增加1A++將得出11--自減運算符,將整數(shù)值減1A--將得出9復(fù)合加十=加且賦值運算符。把右邊操作數(shù)加上左邊操
作數(shù)的結(jié)果賦值給左邊操作數(shù)。B
+
=
A
等
效
于
B
=
B
+
A復(fù)合減-=減且賦值運算符。把左邊操作數(shù)減去右邊操
作數(shù)的結(jié)果賦值給左邊操作數(shù)。B
-
=A等效于B=B
-A復(fù)合乘*=乘且賦值運算符。把右邊操作數(shù)乘以左邊操
作數(shù)的結(jié)果賦值給左邊操作數(shù)。B*=A等價于B=B*A復(fù)合除/=除且賦值運算符。把左邊操作數(shù)除以右邊操
作數(shù)的結(jié)果賦值給左邊操作數(shù)。B/=A等效于B=B/A復(fù)合模數(shù)%=求模且賦值運算符。求兩個操作數(shù)的模賦值
給左邊操作數(shù)B
%
=
A
等
效
于
B
=
B
%
A復(fù)合按位或|=按位或且賦值運算符A|=2與A=A|2相同復(fù)合按位與&=按位與且賦值運算符A&=2與A=A&2相同自減序號函數(shù)和描述delay()函數(shù)delay()函數(shù)的工作方式非常簡單。它接受單個
整數(shù)(或數(shù)字)參數(shù)。此數(shù)字表示時間(以毫秒為單位)。delayMicroseconds()函數(shù)delayMicroseconds()函數(shù)接受單個整數(shù)(或
數(shù)字)參數(shù)。一毫秒內(nèi)有一千微秒,一秒內(nèi)有
一百萬微秒。millis()函數(shù)此函數(shù)用于返回Arduino板開始運行當(dāng)前程序時的毫秒數(shù)。micros()函數(shù)micros()函數(shù)返回Arduino板開始運行當(dāng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年鄉(xiāng)村旅游師面試技巧及考核要點
- 日光性皮炎的防治
- 人教A版必修第二冊高一(下)數(shù)學(xué)10.2 事件的相互獨立性【課件】
- 高考生物一輪總復(fù)習(xí)-第3章-細(xì)胞的基本結(jié)構(gòu)-第2節(jié)-細(xì)胞器-系統(tǒng)內(nèi)的分工合作講義-必修
- 高考語文一輪復(fù)習(xí)-第二部分-古代詩文閱讀-專題一-文言文閱讀-1-高考體驗講義-蘇教版
- 李白詩歌解析課件
- 機電工安全生產(chǎn)知識培訓(xùn)課件
- 2026年河南工業(yè)貿(mào)易職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性考試模擬試題帶答案解析
- 2026年通遼職業(yè)學(xué)院單招綜合素質(zhì)筆試模擬試題附答案詳解
- 2026年安慶職業(yè)技術(shù)學(xué)院單招職業(yè)技能筆試備考試題帶答案解析
- 國家開放大學(xué)電大本科《流通概論》復(fù)習(xí)題庫
- 2025-2026學(xué)年統(tǒng)編版二年級語文上冊期末質(zhì)量檢測卷(含答案)
- 2025年學(xué)法減分試題及答案
- 2025年德州樂陵市市屬國有企業(yè)公開招聘工作人員(6人)參考筆試題庫及答案解析
- 邢臺課件教學(xué)課件
- 醫(yī)防融合視角下家庭醫(yī)生簽約慢病管理策略
- 2025年新能源市場開發(fā)年度總結(jié)與戰(zhàn)略展望
- 中職歷史期末考試及答案
- 從指南看慢性乙型病毒性肝炎的防治策略
- 隱蔽工程照片歸檔格式
- 項目建設(shè)全過程管理經(jīng)典講義(PPT)
評論
0/150
提交評論