《Arduino程序設(shè)計(jì)基礎(chǔ)(第2版)》涵蓋Arduino基礎(chǔ)知識(shí)及高級(jí)應(yīng)用,中途穿插簡(jiǎn)單項(xiàng)目制作,用于鞏固知識(shí)與擴(kuò)展提高,同時(shí)提供常用的API參考,以便讀者實(shí)踐時(shí)查閱。第2版中,作者修正了之第1版的紕漏,并根據(jù)Arduino近年來(lái)的發(fā)展,更新了部分內(nèi)容,重寫(xiě)了部分章節(jié),也融入了更多作者對(duì)Arduino開(kāi)發(fā)的思考。
本書(shū)主要針對(duì)本科生及研究生階段的Arduino教學(xué)實(shí)驗(yàn)進(jìn)行編寫(xiě),亦適用于相關(guān)開(kāi)發(fā)人員及入門(mén)者學(xué)習(xí)。
Arduino不僅僅是全球*流行的開(kāi)源硬件,也是一個(gè)優(yōu)秀的硬件開(kāi)發(fā)平臺(tái),更是硬件開(kāi)發(fā)的趨勢(shì)。Arduino簡(jiǎn)單的開(kāi)發(fā)方式使得開(kāi)發(fā)者更關(guān)注于創(chuàng)意與實(shí)現(xiàn),更快地完成自己的項(xiàng)目開(kāi)發(fā),大大節(jié)約學(xué)習(xí)的成本,縮短開(kāi)發(fā)的周期。
《Arduino程序設(shè)計(jì)基礎(chǔ)(第2版)》是作者幾年間開(kāi)發(fā)Arduino的經(jīng)驗(yàn)總結(jié),純干貨分享。本書(shū)針對(duì)大學(xué)教育編寫(xiě),體系結(jié)構(gòu)清晰,開(kāi)發(fā)細(xì)節(jié)完善,適合初學(xué)者學(xué)習(xí),亦可以用于專業(yè)開(kāi)發(fā)者查閱。
陳呂洲:Arduino中文社區(qū)創(chuàng)始人,曾今的機(jī)器人競(jìng)賽選手,F(xiàn)從事3D打印機(jī)設(shè)計(jì)與開(kāi)發(fā),業(yè)余從事開(kāi)源硬件開(kāi)發(fā)與推廣。
第1章 初識(shí)Arduino
1.1什么是Arduino
1.2 Arduino的由來(lái)
1.3為什么使用Arduino作為開(kāi)發(fā)平臺(tái)
1.4 Arduino硬件——選擇一款適合自己的Arduino控制器
1.4.1認(rèn)識(shí)不同型號(hào)的Arduino控制器
1.4.2眾多的Arduino外圍模塊
1.4.3從Arduino UNO開(kāi)始
1.5 Arduino軟件
1.5.1下載配置Arduino開(kāi)發(fā)環(huán)境
1.5.2認(rèn)識(shí)Arduino IDE
1.5.3安裝Arduino驅(qū)動(dòng)程序
1.6 Blink——Arduino的Hello World!
第2章 基礎(chǔ)篇
2.1 Arduino語(yǔ)言及程序結(jié)構(gòu)
2.1.1 Arduino語(yǔ)言
2.1.2 Arduino程序結(jié)構(gòu)
2.2 C/C++語(yǔ)言基礎(chǔ)
2.2.1數(shù)據(jù)類(lèi)型
2.2.2運(yùn)算符
2.2.3表達(dá)式
2.2.4數(shù)組
2.2.5字符串
2.2.6注釋
2.2.7用流程圖表示程序
2.2.8順序結(jié)構(gòu)
2.2.9選擇結(jié)構(gòu)
2.2.10循環(huán)結(jié)構(gòu)
2.3電子元件和Arduino擴(kuò)展模塊
2.4傳感器擴(kuò)展板的使用
2.5 Arduino I/O的簡(jiǎn)單控制
2.5.1數(shù)字I/O的使用
2.5.2項(xiàng)目:人體感應(yīng)燈(繼電器模塊與數(shù)字傳感器)
2.5.3模擬I/O的使用
2.5.4項(xiàng)目:電子溫度計(jì)
2.5.5數(shù)字傳感器與模擬傳感器的使用
2.6與計(jì)算機(jī)交流——串口的使用
2.6.1串口輸出
2.6.2串口輸入
2.6.3實(shí)驗(yàn):串口控制開(kāi)關(guān)燈
2.7時(shí)間控制函數(shù)
2.7.1運(yùn)行時(shí)間函數(shù)
2.7.2延時(shí)函數(shù)
第3章I/O口高級(jí)應(yīng)用
3.1調(diào)聲函數(shù)
3.2項(xiàng)目:簡(jiǎn)易電子琴
3.3脈沖寬度測(cè)量函數(shù)及超聲波測(cè)距
3.3.1脈沖寬度測(cè)量函數(shù)
3.3.2超聲波測(cè)距
3.4設(shè)置ADC參考電壓
3.5外部中斷
3.5.1外部中斷的使用
3.5.2實(shí)驗(yàn):外部中斷觸發(fā)蜂鳴器報(bào)警
第4章 使用和編寫(xiě)類(lèi)庫(kù)
4.1編寫(xiě)并使用函數(shù),提高程序的可讀性
4.2使用Arduino類(lèi)庫(kù)
4.3編寫(xiě)Arduino類(lèi)庫(kù)
4.3.1編寫(xiě)頭文件
4.3.2預(yù)處理命令
4.3.3宏定義
4.3.4文件包含
4.3.5條件編譯
4.3.6版本兼容
4.3.7編寫(xiě).cpp文件
4.3.8關(guān)鍵字高亮顯示
4.3.9建立示例程序
4.4類(lèi)庫(kù)優(yōu)化與發(fā)布
第5章 通信篇
5.1硬件串口通信——HardwareSerial類(lèi)庫(kù)的使用
5.1.1 HardwareSerial類(lèi)庫(kù)成員函數(shù)
5.1.2 print()和write()輸出方式的差異
5.1.3 read()和peek()輸入方式的差異
5.1.4串口讀取字符串
5.1.5串口事件
5.1.6串口緩沖區(qū)
5.1.7實(shí)驗(yàn):串口控制RGB LED調(diào)光
5.1.8更好的串口監(jiān)視器——串口調(diào)試助手
5.2軟件模擬串口通信——SoftwareSerial類(lèi)庫(kù)的使用
5.2.1 SoftwareSerial類(lèi)庫(kù)的局限性
5.2.2 SoftwareSerial類(lèi)庫(kù)成員函數(shù)
5.2.3建立一個(gè)軟串口通信
5.2.4實(shí)驗(yàn):Arduino間的串口通信
5.2.5同時(shí)使用多個(gè)軟串口
5.3 IIC總線的使用——Wire類(lèi)庫(kù)的使用
5.3.1 IIC主機(jī)、從機(jī)與引腳
5.3.2 Wire類(lèi)庫(kù)成員函數(shù)
5.3.3 IIC連接方法
5.3.4主機(jī)寫(xiě)數(shù)據(jù),從機(jī)接收數(shù)據(jù)
5.3.5從機(jī)發(fā)送數(shù)據(jù),主機(jī)讀取數(shù)據(jù)
5.4 SPI總線的使用——SPI類(lèi)庫(kù)的使用
5.4.1 SPI引腳
5.4.2 SPI總線上的從設(shè)備選擇
5.4.3 SPI類(lèi)庫(kù)成員函數(shù)
5.4.4 SPI總線上的數(shù)據(jù)發(fā)送與接收
5.4.5實(shí)驗(yàn):使用數(shù)字電位器AD5206
5.4.6軟件模擬SPI通信
5.4.7實(shí)驗(yàn):使用74HC595擴(kuò)展I/O口
第6章 存儲(chǔ)篇
6.1斷電也能保存數(shù)據(jù)——EEPROM類(lèi)庫(kù)的使用
6.1.1 EEPROM類(lèi)庫(kù)成員函數(shù)
6.1.2寫(xiě)入操作
6.1.3讀取操作
6.1.4清除操作
6.1.5存儲(chǔ)各類(lèi)型數(shù)據(jù)到EEPROM
6.2保存大量數(shù)據(jù)——SD卡類(lèi)庫(kù)的使用
6.2.1格式化SD卡
6.2.2 SD卡類(lèi)庫(kù)成員函數(shù)
6.2.3使用SD卡讀/寫(xiě)模塊
6.2.4創(chuàng)建文件
6.2.5刪除文件
6.2.6寫(xiě)文件
6.2.7讀文件
6.3項(xiàng)目:SD卡環(huán)境數(shù)據(jù)記錄器
6.3.1 DHT11溫濕度檢測(cè)模塊的使用
6.3.2硬件連接方法
6.3.3溫濕度記錄器
6.3.4在Excel中分析數(shù)據(jù)
第7章 無(wú)線通信篇——紅外遙控
7.1 IRremote類(lèi)庫(kù)成員函數(shù)
7.2紅外接收
7.3紅外發(fā)射
7.4實(shí)驗(yàn):遙控家電設(shè)備
第8章LCD顯示篇
8.1 1602 LCD的使用——LiquidCrystal類(lèi)庫(kù)的使用
8.1.1將1602 LCD與Arduino連接
8.1.2 1602 LCD相關(guān)參數(shù)
8.1.3 LiquidCrystal類(lèi)庫(kù)成員函數(shù)
8.1.4實(shí)驗(yàn):“hello,world!”
8.1.5實(shí)驗(yàn):將串口輸入數(shù)據(jù)顯示到1602 LCD上
8.1.6實(shí)驗(yàn):顯示滾動(dòng)效果
8.1.7實(shí)驗(yàn):顯示自定義字符
8.2項(xiàng)目:制作電子時(shí)鐘
8.2.1 DS1307時(shí)鐘模塊的使用
8.2.2電子時(shí)鐘
8.3圖形顯示器的使用——u8glib類(lèi)庫(kù)的使用
8.3.1使用MINI12864顯示屏
8.3.2使用其他圖形液晶顯示器
8.3.3 u8glib程序結(jié)構(gòu)
8.3.4純文本顯示
8.3.5數(shù)據(jù)顯示
8.3.6實(shí)驗(yàn):繪制圖形
8.3.7實(shí)驗(yàn):顯示圖片——位圖取模
第9章USB類(lèi)庫(kù)的使用
9.1 USB設(shè)備模擬相關(guān)函數(shù)
9.1.1 USB鼠標(biāo)類(lèi)的成員函數(shù)
9.1.2 USB鍵盤(pán)類(lèi)的成員函數(shù)
9.2模擬鍵盤(pán)輸入信息
9.2.1 Arduino Leonardo在模擬USB設(shè)備后,無(wú)法正常下載程序
9.2.2模擬鍵盤(pán)組合按鍵
9.3實(shí)驗(yàn):使用搖桿模塊控制計(jì)算機(jī)鼠標(biāo)
9.4項(xiàng)目:PPT播放遙控器
第10章Ethernet類(lèi)庫(kù)的使用
10.1 Ethernet相關(guān)硬件介紹
10.2 Ethernet類(lèi)庫(kù)
10.2.1 Ethernet 類(lèi)
10.2.2 IPAddress 類(lèi)
10.2.3 EthernetServer類(lèi)
10.2.4 EthernetClient類(lèi)
10.3 Ethernet的初始化
10.3.1自定義IP地址
10.3.2 DHCP獲取IP地址
10.4通過(guò)Telnet建立簡(jiǎn)易聊天室
10.4.1建立Arduino Telnet聊天服務(wù)器
10.4.2 Windows Telnet客戶端的使用
10.5 Ethernet與Web應(yīng)用
10.5.1 HTTP協(xié)議簡(jiǎn)介
10.5.2 HTTP響應(yīng)
10.5.3網(wǎng)頁(yè)客戶端
10.5.4網(wǎng)頁(yè)服務(wù)器
10.6 UDP通信
10.6.1 EthernetUDP類(lèi)
10.6.2使用UDP收/發(fā)數(shù)據(jù)
10.7項(xiàng)目:網(wǎng)頁(yè)控制Arduino
附錄
A.1使用專業(yè)IDE編寫(xiě)Arduino項(xiàng)目
A.2常見(jiàn)問(wèn)題及解決方法
A.3 Arduino Leonardo手冊(cè)
A.4 Arduino Due手冊(cè)
A.5 ASCII碼對(duì)照表
A.6串口通信可用的config配置
A.7 USB鍵盤(pán)庫(kù)支持的鍵盤(pán)功能按鍵列表
A.8常見(jiàn)Arduino型號(hào)的參數(shù)比較表
后記
參考文獻(xiàn)