第1章入門…1
1.0 介紹……………………1
1.1 安裝集成開發(fā)環(huán)境(IDE)………………………3
1.2 設置Arduino板………5
1.3 使用集成開發(fā)環(huán)境(IDE)準備一個Arduino程序………………………7
1.4上傳并運行閃爍素描……………………………8
1.5創(chuàng)建并保存程序………9
1.6使用Arduino…………11
第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使用計數器重復執(zhí)行語句……………………44
2.15跳出循環(huán)……………46
2.16基于單個變量進行不同的操作………………47
2.17字符和數量值的比較49
2.18字符串的比較………51
2.19邏輯比較的操作……52
2.20執(zhí)行位運算…………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值里提取高字節(jié)和低字節(jié)70
3.15從高字節(jié)和低字節(jié)組合成一個int或long值71
第4章串口通信……………………74
4.0簡介 …………………74
4.1從Arduino發(fā)送調試信息到你的計算機……77
4.2從Arduino發(fā)送格式化的文本和數值數據…80
4.3在Arduino接收串口數據……………………83
4.4在單個消息中從Arduino發(fā)送多個文本字段88
4.5在Arduino上從單個消息中接收多個文本字段………………………93
4.6從Arduino發(fā)送二進制數據…………………96
4.7在計算機上接收來自Arduino的二進制數據100
4.8從Processing向Arduino發(fā)送二進制值……101
4.9發(fā)送多個Arduino引腳的值…………………104
4.10如何移動PC或Mac上的鼠標光標…………108
4.11使用Arduino控制谷歌地球…………………112
4.12在你的計算機中的文件里記錄Arduino數據118
4.13在同一時間將數據發(fā)送到兩個串口設備……121
4.14在同一時間接收來自兩個串口設備的數據…124
4.15設置你的計算機上的Processing以發(fā)送和接收串口數據…………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連接和使用LED……212
7.2調節(jié)LED的亮度……215
7.3驅動高功率LED……216
7.4調整LED的顏色……218
7.5多個LED排序:創(chuàng)建一個條形圖……………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控制連續(xù)旋轉舵機的速度……………………257
8.4使用計算機指令控制舵機……………………258
8.5驅動無刷電機(使用業(yè)余調速器)…………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 創(chuàng)建自定義字符……331
11.7 顯示比單個字符更大的符號…………………333
11.8 顯示小于單個字符的像素……………………336
11.9 連接和使用圖形LCD顯示器………………338
11.10 創(chuàng)建用于圖形顯示器的位圖………………341
11.11 在電視機上顯示文本………………………343
第12章時間和日期的使用………348
12.0 介紹…………………348
12.1 創(chuàng)建延時……………348
12.2 使用millis來確定持續(xù)時間…………………349
12.3 更精確地測量一個脈沖的持續(xù)時間…………353
12.4 把Arduino作為一個時鐘來用………………355
12.5 創(chuàng)建一個可以周期性調用函數的鬧鐘………364
12.6 使用一個實時時鐘…367
第13章使用I2C和SPI進行通信………………………372
13.0 簡介…………………372
13.1 使用BlinkM模塊控制RGB LED……………375
13.2 使用Wii的雙節(jié)棍加速度計…………………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 使用低成本無線模塊發(fā)送消息………………406
14.2 把Arduino接入ZigBee或802.15.4網絡…412
14.3 將消息發(fā)送到一個特定的XBee……………417
14.4 在XBee間互傳傳感器數據…………………420
14.5 激活連接到XBee的執(zhí)行器…………………425
14.6 使用低成本收發(fā)器發(fā)送消息…………………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 發(fā)送Twitter消息…480
15.13 發(fā)送和接收簡單消息(UDP)……………485
15.14 從Internet時間服務器獲取時間…………492
15.15 監(jiān)測Pachube數據饋送……………………498
15.16 將信息發(fā)送到Pachube……………………504
第16章庫的使用修改和創(chuàng)建……510
16.0 簡介…………………510
16.1 使用內置庫…………510
16.2 安裝第三方庫………511
16.3 庫的修改……………512
16.4 創(chuàng)建你自己的庫……516
16.5 創(chuàng)建一個使用其他庫的庫……………………521
16.6 為Arduino 1.0版更新第三方庫……………527
第17章高級編程和內存操作……529
17.0 介紹…………………529
17.1 了解Arduino程序的構建過程………………530
17.2 判斷可用和已用的RAM 量…………………532
17.3 存儲和讀取程序存儲器中的數字值…………534
17.4 存儲和檢索字符串在程序存儲器……………537
17.5 使用#define 和const而不用整數型變量…539
17.6 使用條件編譯………540
第18章使用控制器芯片的硬件…543
18.0 介紹…………………543
18.1 在永久性EEPROM存儲器中存儲數據……546
18.2 使用硬件中斷………550
18.3 設置定時器持續(xù)時間552
18.4 設置定時器脈沖寬度和持續(xù)時間……………554
18.5 創(chuàng)建一個脈沖發(fā)生器556
18.6 更改定時器的PWM頻率……………………560
18.7 脈沖計數……………562
18.8 更精確的脈沖測量…564
18.9 快速測量模擬值……567
18.10 減少電池消耗……568
18.11 快速設定數字引腳572
18.12 使用編程器上傳程序………………………576
18.13 更換Arduino的Bootloader………………577
18.14 對Uno重新編程來模擬原生的USB設備577
附件A電子元件…………………581
附件B使用原理圖和數據手冊…585
附件C電路的構建和連接………591
附件D軟件問題排錯訣竅………593
附件E硬件問題排錯訣竅………596
附件F數字和模擬引腳……………598
附件GASCII和擴展字符集……601
附錄H?