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