第1章入門…1
1.0 介紹……………………1
1.1 安裝集成開發(fā)環(huán)境(IDE)………………………3
1.2 設(shè)置Arduino板………5
1.3 使用集成開發(fā)環(huán)境(IDE)準(zhǔn)備一個Arduino程序………………………7
1.4上傳并運(yùn)行閃爍素描……………………………8
1.5創(chuàng)建并保存程序………9
1.6使用Arduino…………11
第2章讓程序為你工作……………15
2.0介紹…………………15
2.1構(gòu)建一個Arduino程序………………………15
2.2使用簡單的原始類型(變量)………………17
2.3使用浮點(diǎn)數(shù)…………18
2.4使用一組數(shù)值………20
2.5使用Arduino的String功能…………………22
2.6使用C字符串………26
2.7把逗號分隔的文本拆分成組…………………27
2.8把一個數(shù)字轉(zhuǎn)換為字符串……………………29
2.9將字符串轉(zhuǎn)換為數(shù)字31
2.10將你的代碼劃分為多個功能塊………………34
2.11從函數(shù)返回多個值…38
2.12根據(jù)條件采取行動…40
2.13重復(fù)一個語句序列…42
2.14使用計數(shù)器重復(fù)執(zhí)行語句……………………44
2.15跳出循環(huán)……………46
2.16基于單個變量進(jìn)行不同的操作………………47
2.17字符和數(shù)量值的比較49
2.18字符串的比較………51
2.19邏輯比較的操作……52
2.20執(zhí)行位運(yùn)算…………53
2.21復(fù)合運(yùn)算和賦值……55
第3章使用數(shù)學(xué)運(yùn)算符……………56
3.0介紹…………………56
3.1加,減,乘,除……56
3.2值的遞增和遞減……57
3.3找出兩個值相除的余數(shù)………………………58
3.4確定絕對值…………59
3.5把一個數(shù)約束在一個數(shù)值范圍內(nèi) ……………59
3.6尋找一些值的最小或最大值…………………60
3.7計算一個數(shù)的乘方…61
3.8取平方根……………61
3.9浮點(diǎn)數(shù)向上和向下取整………………………62
3.10使用三角函數(shù)………63
3.11生成隨機(jī)數(shù)…………63
3.12設(shè)置和讀取位………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ā)送調(diào)試信息到你的計算機(jī)……77
4.2從Arduino發(fā)送格式化的文本和數(shù)值數(shù)據(jù)…80
4.3在Arduino接收串口數(shù)據(jù)……………………83
4.4在單個消息中從Arduino發(fā)送多個文本字段88
4.5在Arduino上從單個消息中接收多個文本字段………………………93
4.6從Arduino發(fā)送二進(jìn)制數(shù)據(jù)…………………96
4.7在計算機(jī)上接收來自Arduino的二進(jìn)制數(shù)據(jù)100
4.8從Processing向Arduino發(fā)送二進(jìn)制值……101
4.9發(fā)送多個Arduino引腳的值…………………104
4.10如何移動PC或Mac上的鼠標(biāo)光標(biāo)…………108
4.11使用Arduino控制谷歌地球…………………112
4.12在你的計算機(jī)中的文件里記錄Arduino數(shù)據(jù)118
4.13在同一時間將數(shù)據(jù)發(fā)送到兩個串口設(shè)備……121
4.14在同一時間接收來自兩個串口設(shè)備的數(shù)據(jù)…124
4.15設(shè)置你的計算機(jī)上的Processing以發(fā)送和接收串口數(shù)據(jù)…………127
第5章簡單數(shù)字和模擬輸入……129
5.0介紹…………………129
5.1使用一個開關(guān)………131
5.2不用外部電阻使用一個開關(guān)…………………134
5.3可靠地檢測一個開關(guān)的閉合…………………136
5.4確定開關(guān)被按下多長時間……………………139
5.5讀取數(shù)字鍵盤………143
5.6讀取模擬值…………146
5.7改變值的范圍………147
5.8讀取超過六路模擬輸入………………………149
5.9顯示5V以內(nèi)的電壓…152
5.10響應(yīng)電壓變化………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標(biāo)簽………178
6.10跟蹤旋轉(zhuǎn)動作………181
6.11跟蹤一個以上的旋轉(zhuǎn)編碼器的運(yùn)動…………183
6.12在繁忙的程序里跟蹤旋轉(zhuǎn)動作………………185
6.13使用鼠標(biāo)……………187
6.14從GPS獲取位置…191
6.15使用陀螺儀檢測旋轉(zhuǎn)195
6.16方向檢測……………200
6.17從游戲控制板(PlayStation)獲取輸入……205
6.18讀取加速度…………207
第7章可視輸出…………………210
7.0介紹…………………210
7.1連接和使用LED……212
7.2調(diào)節(jié)LED的亮度……215
7.3驅(qū)動高功率LED……216
7.4調(diào)整LED的顏色……218
7.5多個LED排序:創(chuàng)建一個條形圖……………221
7.6多個LED排序:制作一個追逐序列(霹靂游俠)……………………224
7.7使用復(fù)用技術(shù)控制一個LED陣列……………225
7.8顯示圖像上的LED矩陣………………………228
7.9控制LED陣列:Charlieplexing方法…………231
7.10驅(qū)動7段LED顯示器………………………236
7.11使用復(fù)用技術(shù)驅(qū)動多位7段LED顯示器…239
7.12使用MAX7221移位寄存器驅(qū)動多位7段LED顯示器……………242
7.13使用MAX72xx 移位寄存器控制LED陣列…244
7.14使用PWM擴(kuò)展芯片(TLC5940)增加模擬輸出的數(shù)量……………247
7.15使用模擬面板表作為顯示器…………………250
第8章物理輸出…………………252
8.0簡介…………………252
8.1控制舵機(jī)的位置……254
8.2使用電位器或傳感器控制一個或兩個舵機(jī)…256
8.3控制連續(xù)旋轉(zhuǎn)舵機(jī)的速度……………………257
8.4使用計算機(jī)指令控制舵機(jī)……………………258
8.5驅(qū)動無刷電機(jī)(使用業(yè)余調(diào)速器)…………260
8.6控制電磁鐵和繼電器261
8.7使物體振動…………262
8.8使用晶體管驅(qū)動有刷電機(jī)……………………264
8.9使用H橋控制有刷電機(jī)的旋轉(zhuǎn)方向…………266
8.10控制有刷電機(jī)H橋的方向和速度……………269
8.11使用傳感器來控制有刷電機(jī)的方向和轉(zhuǎn)速(L293 H橋)…………271
8.12驅(qū)動雙極步進(jìn)電機(jī)…277
8.13驅(qū)動雙極步進(jìn)電機(jī)(使用EasyDriver板)…279
8.14驅(qū)動單極步進(jìn)電機(jī)(ULN2003A)…………283
第9章音頻輸出…………………285
9.0簡介…………………285
9.1音調(diào)播放……………286
9.2演奏簡單的旋律……288
9.3產(chǎn)生一個以上的同步音………………………290
9.4生成音頻音調(diào)的同時使LED漸暗……………292
9.5播放一個WAV文件…295
9.6MIDI控制……………298
9.7制作音頻合成器……301
第10章遙控外部設(shè)備……………303
10.0簡介…………………303
10.1對一個紅外遙控器做出響應(yīng)…………………303
10.2解碼紅外遙控信號…306
10.3模仿遙控器信號……309
10.4控制數(shù)碼相機(jī)………312
10.5通過改裝遙控開關(guān)來控制交流設(shè)備…………314
第11章顯示屏的使用……………318
11.0 介紹…………………318
11.1 文字LCD屏的連接和使用…………………318
11.2 格式化文本…………321
11.3 光標(biāo)和顯示的開啟和關(guān)閉……………………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 在電視機(jī)上顯示文本………………………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)建一個可以周期性調(diào)用函數(shù)的鬧鐘………364
12.6 使用一個實(shí)時時鐘…367
第13章使用I2C和SPI進(jìn)行通信………………………372
13.0 簡介…………………372
13.1 使用BlinkM模塊控制RGB LED……………375
13.2 使用Wii的雙節(jié)棍加速度計…………………380
13.3 外部實(shí)時時鐘的接口384
13.4 添加外部EEPROM存儲器…………………386
13.5 用數(shù)字溫度計讀取溫度………………………390
13.6 只用兩條導(dǎo)線驅(qū)動4位7段LED顯示……394
13.7 集成一個I2C端口擴(kuò)展器……………………397
13.8 使用SPI驅(qū)動多位7段LED顯示器………400
13.9 兩個或兩個以上的Arduino板之間的通信…402
第14章無線通信…………………406
14.0 介紹…………………406
14.1 使用低成本無線模塊發(fā)送消息………………406
14.2 把Arduino接入ZigBee或802.15.4網(wǎng)絡(luò)…412
14.3 將消息發(fā)送到一個特定的XBee……………417
14.4 在XBee間互傳傳感器數(shù)據(jù)…………………420
14.5 激活連接到XBee的執(zhí)行器…………………425
14.6 使用低成本收發(fā)器發(fā)送消息…………………429
14.7 與藍(lán)牙設(shè)備通訊……434
第15章以太網(wǎng)和網(wǎng)絡(luò)……………437
15.0 簡介…………………437
15.1 以太網(wǎng)擴(kuò)展板的設(shè)置439
15.2 自動獲取你的IP地址………………………441
15.3 解析主機(jī)名到IP地址(DNS)……………443
15.4 從Web服務(wù)器請求數(shù)據(jù)……………………445
15.5 使用XML從Web服務(wù)器請求數(shù)據(jù)…………451
15.6 把Arduino設(shè)置成一個Web服務(wù)器………454
15.7 處理進(jìn)入的Web請求………………………457
15.8 處理針對特定頁面的請求……………………460
15.9 使用HTML格式化Web服務(wù)器響應(yīng)………465
15.10 使用表單的網(wǎng)頁服務(wù)(POST)……………469
15.11 包含大量數(shù)據(jù)的網(wǎng)頁服務(wù)…………………472
15.12 發(fā)送Twitter消息…480
15.13 發(fā)送和接收簡單消息(UDP)……………485
15.14 從Internet時間服務(wù)器獲取時間…………492
15.15 監(jiān)測Pachube數(shù)據(jù)饋送……………………498
15.16 將信息發(fā)送到Pachube……………………504
第16章庫的使用修改和創(chuàng)建……510
16.0 簡介…………………510
16.1 使用內(nèi)置庫…………510
16.2 安裝第三方庫………511
16.3 庫的修改……………512
16.4 創(chuàng)建你自己的庫……516
16.5 創(chuàng)建一個使用其他庫的庫……………………521
16.6 為Arduino 1.0版更新第三方庫……………527
第17章高級編程和內(nèi)存操作……529
17.0 介紹…………………529
17.1 了解Arduino程序的構(gòu)建過程………………530
17.2 判斷可用和已用的RAM 量…………………532
17.3 存儲和讀取程序存儲器中的數(shù)字值…………534
17.4 存儲和檢索字符串在程序存儲器……………537
17.5 使用#define 和const而不用整數(shù)型變量…539
17.6 使用條件編譯………540
第18章使用控制器芯片的硬件…543
18.0 介紹…………………543
18.1 在永久性EEPROM存儲器中存儲數(shù)據(jù)……546
18.2 使用硬件中斷………550
18.3 設(shè)置定時器持續(xù)時間552
18.4 設(shè)置定時器脈沖寬度和持續(xù)時間……………554
18.5 創(chuàng)建一個脈沖發(fā)生器556
18.6 更改定時器的PWM頻率……………………560
18.7 脈沖計數(shù)……………562
18.8 更精確的脈沖測量…564
18.9 快速測量模擬值……567
18.10 減少電池消耗……568
18.11 快速設(shè)定數(shù)字引腳572
18.12 使用編程器上傳程序………………………576
18.13 更換Arduino的Bootloader………………577
18.14 對Uno重新編程來模擬原生的USB設(shè)備577
附件A電子元件…………………581
附件B使用原理圖和數(shù)據(jù)手冊…585
附件C電路的構(gòu)建和連接………591
附件D軟件問題排錯訣竅………593
附件E硬件問題排錯訣竅………596
附件F數(shù)字和模擬引腳……………598
附件GASCII和擴(kuò)展字符集……601
附錄H?