圖書簡介
《Arduino權威指南(第2版)》(Arduino Cookbook)是關於Arduino的基礎知識和套用的權威入門手冊,從基本概念、常見任務到高級技術,本書應有盡有。前4章介紹簡單的入門知識,使你初步認識Arduino並與計算機和其他設備進行通信。5~9章針對輸入和輸出進行細緻講解。第10章開始介紹高級編程和技術套用。本書將通過200個常見的實例來幫助你在實踐中成為Arduino的使用高手。本書的講解細緻,不需要有軟體和硬體的經驗,通過這本書,可以利用計算機技術和環境互動找到快速解決硬體、軟體問題的方法。有經驗的程式設計師也可以在本書中得到試用底層的AVR資源構建使用Arduino環境的套用。
目錄
第 1章入門1
1.0 介紹1
1.1 安裝集成開發環境(IDE)3
1.2 設定Arduino板5
1.3 使用集成開發環境(IDE)準備一個Arduino程式7
1.4上傳並運行閃爍素描8
1.5創建並保存程式9
1.6使用Arduino11
第 2章讓程式為你工作15
2.0介紹15
2.1構建一個Arduino程式15
2.2使用簡單的原始類型(變數)17
2.3使用浮點數18
2.4使用一組數值20
2.5使用Arduino的String功能22
2.6使用C字元串26
2.7把逗號分隔的文本拆分成組27
2.8把一個數字轉換為字元串29
2.9將字元串轉換為數字31
2.10將你的代碼劃分為多個功能塊34
2.11從函式返回多個值38
2.12根據條件採取行動40
2.13重複一個語句序列42
2.14使用計數器重複執行語句44
2.15跳出循環46
2.16基於單個變數進行不同的操作47
2.17字元和數量值的比較49
2.18字元串的比較51
2.19邏輯比較的操作52
2.20執行位運算53
2.21複合運算和賦值55
第3章使用數學運算符56
3.0介紹56
3.1加,減,乘,除56
3.2值的遞增和遞減57
3.3找出兩個值相除的餘數58
3.4確定**值59
3.5把一個數約束在一個數值範圍內 59
3.6尋找一些值的**小或**大值60
3.7計算一個數的乘方61
3.8取平方根61
3.9浮點數向上和向下取整62
3.10使用三角函式63
3.11生成隨機數63
3.12設定和讀取位66
3.13位的移動69
3.14在一個int或long值里提取高位元組和低位元組70
3.15從高位元組和低位元組組合成一個int或long值71
第4章串口通信74
4.0簡介 74
4.1從Arduino傳送調試信息到你的計算機77
4.2從Arduino傳送格式化的文本和數值數據80
4.3在Arduino接收串口數據83
4.4在單個訊息中從Arduino傳送多個文本欄位88
4.5在Arduino上從單個訊息中接收多個文本欄位93
4.6從Arduino傳送二進制數據96
4.7在計算機上接收來自Arduino的二進制數據100
4.8從Processing向Arduino傳送二進制值101
4.9傳送多個Arduino引腳的值104
4.10如何移動PC或Mac上的滑鼠游標108
4.11使用Arduino控制谷歌地球112
4.12在你的計算機中的檔案里記錄Arduino數據118
4.13在同一時間將數據傳送到兩個串口設備121
4.14在同一時間接收來自兩個串口設備的數據124
4.15設定你的計算機上的Processing以傳送和接收串口數據127
第5章簡單數字和模擬輸入129
5.0介紹129
5.1使用一個開關131
5.2不用外部電阻使用一個開關134
5.3可靠地檢測一個開關的閉合136
5.4確定開關被按下多長時間139
5.5讀取數字鍵盤143
5.6讀取模擬值146
5.7改變值的範圍147
5.8讀取超過六路模擬輸入149
5.9顯示5V以內的電壓152
5.10回響電壓變化155
5.11測量超過5V的電壓(分壓器)156
第6章獲取感測器輸入158
6.0介紹158
6.1動作檢測159
6.2光的探測161
6.3動作檢測(集成被動紅外探測器)163
6.4距離測量164
6.5**測量距離168
6.6振動檢測171
6.7聲音檢測172
6.8溫度測量175
6.9讀取RFID標籤178
6.10跟蹤旋轉動作181
6.11跟蹤一個以上的旋轉編碼器的運動183
6.12在繁忙的程式里跟蹤旋轉動作185
6.13使用滑鼠187
6.14從GPS獲取位置191
6.15使用陀螺儀檢測旋轉195
6.16方向檢測200
6.17從遊戲控制板(PlayStation)獲取輸入205
6.18讀取加速度207
第7章可視輸出210
7.0介紹210
7.1連線和使用LED212
7.2調節LED的亮度215
7.3驅動高功率LED216
7.4調整LED的顏色218
7.5多個LED排序:創建一個條形圖221
7.6多個LED排序:製作一個追逐序列(霹靂遊俠)224
7.7使用復用技術控制一個LED陣列225
7.8顯示圖像上的LED矩陣228
7.9控制LED陣列:Charlieplexing方法231
7.10驅動7段LED顯示器236
7.11使用復用技術驅動多位7段LED顯示器239
7.12使用MAX7221移位暫存器驅動多位7段LED顯示器242
7.13使用MAX72xx 移位暫存器控制LED陣列244
7.14使用PWM擴展晶片(TLC5940)增加模擬輸出的數量247
7.15使用模擬面板表作為顯示器250
第8章物理輸出252
8.0簡介252
8.1控制舵機的位置254
8.2使用電位器或感測器控制一個或兩個舵機256
8.3控制連續旋轉舵機的速度257
8.4使用計算機指令控制舵機258
8.5驅動無刷電機(使用業餘調速器)260
8.6控制電磁鐵和繼電器261
8.7使物體振動262
8.8使用電晶體驅動有刷電機264
8.9使用H橋控制有刷電機的旋轉方向266
8.10控制有刷電機H橋的方向和速度269
8.11使用感測器來控制有刷電機的方向和轉速(L293 H橋)271
8.12驅動雙極步進電機277
8.13驅動雙極步進電機(使用EasyDriver板)279
8.14驅動單極步進電機(ULN2003A)283
第9章音頻輸出285
9.0簡介285
9.1音調播放286
9.2演奏簡單的旋律288
9.3產生一個以上的同步音290
9.4生成音頻音調的同時使LED漸暗292
9.5播放一個WAV檔案295
9.6MIDI控制298
9.7製作音頻合成器301
第 10章遙控外部設備303
10.0簡介303
10.1對一個紅外遙控器做出回響303
10.2解碼紅外遙控信號306
10.3模仿遙控器信號309
10.4控制數位相機312
10.5通過改裝遙控開關來控制交流設備314
第 11章顯示屏的使用318
11.0 介紹318
11.1 文字LCD屏的連線和使用318
11.2 格式化文本321
11.3 游標和顯示的開啟和關閉323
11.4 滾動文字325
11.5 顯示特殊符號328
11.6 創建自定義字元331
11.7 顯示比單個字元更大的符號333
11.8 顯示小於單個字元的像素336
11.9 連線和使用圖形LCD顯示器338
11.10 創建用於圖形顯示器的點陣圖341
11.11 在電視機上顯示文本343
第 12章時間和日期的使用348
12.0 介紹348
12.1 創建延時348
12.2 使用millis來確定持續時間349
12.3 更**地測量一個脈衝的持續時間353
12.4 把Arduino作為一個時鐘來用355
12.5 創建一個可以周期性調用函式的鬧鐘364
12.6 使用一個實時時鐘367
第 13章使用I2C和SPI進行通信372
13.0 簡介372
13.1 使用BlinkM模組控制RGB LED375
13.2 使用Wii的雙節棍加速度計380
13.3 外部實時時鐘的接口384
13.4 添加外部EEPROM存儲器386
13.5 用數字溫度計讀取溫度390
13.6 只用兩條導線驅動4位7段LED顯示394
13.7 集成一個I2C連線埠擴展器397
13.8 使用SPI驅動多位7段LED顯示器400
13.9 兩個或兩個以上的Arduino板之間的通信402
第 14章無線通信406
14.0 介紹406
14.1 使用低成本無線模組傳送訊息406
14.2 把Arduino接入ZigBee或802.15.4網路412
14.3 將訊息傳送到一個特定的XBee417
14.4 在XBee間互傳感測器數據420
14.5 激活連線到XBee的執行器425
14.6 使用低成本收發器傳送訊息429
14.7 與藍牙設備通訊434
第 15章乙太網和網路437
15.0 簡介437
15.1 乙太網擴展板的設定439
15.2 自動獲取你的IP位址441
15.3 解析主機名到IP位址(DNS)443
15.4 從Web伺服器請求數據445
15.5 使用XML從Web伺服器請求數據451
15.6 把Arduino設定成一個Web伺服器454
15.7 處理進入的Web請求457
15.8 處理針對特定頁面的請求460
15.9 使用HTML格式化Web伺服器回響465
15.10 使用表單的網頁服務(POST)469
15.11 包含大量數據的網頁服務472
15.12 傳送Twitter訊息480
15.13 傳送和接收簡單訊息(UDP)485
15.14 從Internet時間伺服器獲取時間492
15.15 監測Pachube數據饋送498
15.16 將信息傳送到Pachube504