本書基于Atmel Studio+Arduino IDE開發(fā)平臺(tái)和Proteus硬件仿真平臺(tái),精心編寫了100項(xiàng)Arduino C語言程序設(shè)計(jì)案例并分別提出了難易適中的實(shí)訓(xùn)目標(biāo)。全書基礎(chǔ)設(shè)計(jì)類案例涵蓋Arduino最基本的端口I/O、定時(shí)控制、A/D轉(zhuǎn)換、中斷控制、串口通信等程序設(shè)計(jì);硬件應(yīng)用類案例涵蓋編/解碼器件,串/并與并/串轉(zhuǎn)換器件,LED顯示及驅(qū)動(dòng)器件,字符/圖形液晶,TFT彩屏,實(shí)時(shí)日歷時(shí)鐘器件,I2C/SPI/1-Wire總線器件,電動(dòng)機(jī),溫/濕度、壓力、雷達(dá)傳感器,SD卡等器件;綜合設(shè)計(jì)類案例包括大量實(shí)用型項(xiàng)目設(shè)計(jì),如多功能電子萬年歷、計(jì)算器、電子秤、密碼鎖、大幅面LED點(diǎn)陣屏設(shè)計(jì)、交流電壓檢測、K型熱電偶及鉑電阻溫度計(jì)、GPS、紅外遙控、測距、溫室監(jiān)控、游戲設(shè)計(jì)、Arduino Web應(yīng)用等,因全書大量案例基于庫進(jìn)行設(shè)計(jì),很多復(fù)雜的程序均可通過便捷的代碼實(shí)現(xiàn)。
目 錄
第1章 Arduino C語言程序設(shè)計(jì)概述 1
1.1 Arduino簡介 1
1.2 Arduino開發(fā)環(huán)境 2
1.3 Arduino開發(fā)語言 6
1.4 Arduino程序結(jié)構(gòu) 6
1.5 基本數(shù)據(jù)類型、有符號數(shù)與無符號數(shù)的應(yīng)用及位相關(guān)操作 8
1.6 數(shù)組、字符串與指針應(yīng)用 11
1.7 全局變量、靜態(tài)變量、外部變量及修飾符 13
1.8 運(yùn)算符的優(yōu)先級 14
1.9 關(guān)于中英文、數(shù)字字符的編碼處理及應(yīng)用 15
1.10 Arduino的常用函數(shù) 20
1.11 Arduino的特殊寄存器 21
1.12 Arduino相關(guān)在線資源 22
第2章 Proteus操作基礎(chǔ) 24
2.1 Proteus操作界面簡介 24
2.2 仿真電路原理圖設(shè)計(jì) 25
2.3 選擇元件 27
2.4 仿真運(yùn)行 31
第3章 基礎(chǔ)程序設(shè)計(jì) 32
3.1 閃爍的LED 32
3.2 雙向來回的流水燈 35
3.3 花樣流水燈 36
3.4 LED模擬交通燈 38
3.5 分立式數(shù)碼管循環(huán)顯示0~9 40
3.6 集成式數(shù)碼管動(dòng)態(tài)掃描顯示 42
3.7 按鍵控制LED開關(guān) 45
3.8 按鍵消抖處理 46
3.9 按鍵調(diào)節(jié)數(shù)碼管閃爍增/減顯示 49
3.10 繼電器及雙向晶閘管控制照明設(shè)備 53
3.11 數(shù)碼管顯示4×4鍵盤矩陣按鍵 54
3.12 INT0中斷計(jì)數(shù) 58
3.13 INT0~I(xiàn)NT3中斷計(jì)數(shù) 62
3.14 Timer0控制LED閃爍 65
3.15 使用TimerOne庫實(shí)現(xiàn)Timer1控制LED閃爍 72
3.16 Timer1定時(shí)器中斷控制數(shù)碼管動(dòng)態(tài)顯示 75
3.17 Timer1定時(shí)器中斷控制5×7 LED點(diǎn)陣屏顯示 77
3.18 Timer2控制門鈴聲音輸出 79
3.19 使用FreqencyTimer2庫實(shí)現(xiàn)Timer2控制音階演奏 83
3.20 使用MsTimer2庫實(shí)現(xiàn)Timer2控制交通指示燈 86
3.21 Timer1、Timer2及INT0控制報(bào)警器與旋轉(zhuǎn)燈 89
3.22 按鍵控制定時(shí)器選播多段音樂 92
3.23 用模擬與數(shù)字輸出方法實(shí)現(xiàn)PWM控制LED漸變 94
3.24 模數(shù)轉(zhuǎn)換與數(shù)碼管顯示 97
3.25 通過A/D轉(zhuǎn)換實(shí)現(xiàn)5路按鍵檢測 100
3.26 硬件及軟件串口應(yīng)用 103
3.27 雙機(jī)串口雙向通信 106
3.28 PC與Arduino雙向串口通信 111
3.29 Arduino內(nèi)置EEPROM讀/寫測試 117
3.30 Flash數(shù)據(jù)訪問 120
第4章 硬件應(yīng)用 124
4.1 74HC138譯碼器與反向緩沖器控制數(shù)碼管顯示 124
4.2 用74HC164驅(qū)動(dòng)多位數(shù)碼管顯示 127
4.3 串入并出芯片74HC595控制數(shù)碼管顯示4位數(shù)字 129
4.4 并/串轉(zhuǎn)換器74HC165的應(yīng)用 133
4.5 用74HC148擴(kuò)展中斷 135
4.6 串行發(fā)送數(shù)據(jù)到2片8×8點(diǎn)陣屏滾動(dòng)顯示 138
4.7 數(shù)碼管BCD解碼驅(qū)動(dòng)器CD4511與DM7447的應(yīng)用 140
4.8 撥碼開關(guān)及74HC245的應(yīng)用 142
4.9 14段與16段數(shù)碼管演示 144
4.10 16鍵解碼芯片74C922的應(yīng)用 148
4.11 1602字符液晶工作于8位模式切換顯示 150
4.12 1602字符液晶工作于4位模式顯示 162
4.13 LGM12864(KS0108)液晶屏顯示測試 163
4.14 UG-2864(SSD1306)OLED屏顯示測試 170
4.15 Nokia5110(PCD8544)液晶屏顯示測試 175
4.16 PG160128A(T6963C)液晶屏圖文演示 178
4.17 EADOGS102液晶屏顯示測試 182
4.18 TFT彩屏ILI9341顯示測試 184
4.19 WS2812串行全彩燈顯示測試 190
4.20 DS1302實(shí)時(shí)時(shí)鐘應(yīng)用 196
4.21 I2C接口時(shí)鐘日歷芯片DS1307的應(yīng)用 200
4.22 日歷時(shí)鐘芯片PCF8583的應(yīng)用 206
4.23 I2C接口存儲(chǔ)器AT24C04的讀/寫與顯示(4片) 210
4.24 用I2C存儲(chǔ)器設(shè)計(jì)的中文硬件字庫的應(yīng)用 217
4.25 I2C接口DS1621溫度傳感器測試 220
4.26 用I2C接口芯片PCF8574驅(qū)動(dòng)LM044L液晶屏 224
4.27 I2C接口數(shù)字電位器AD5242的應(yīng)用 226
4.28 用兼容I2C接口的MAX6953驅(qū)動(dòng)4片5×7點(diǎn)陣顯示器 228
4.29 用I2C接口控制MAX6955驅(qū)動(dòng)16段數(shù)碼管顯示 232
4.30 用帶I2C接口的MCP23017擴(kuò)展16位通用I/O端口 235
4.31 使用I2C接口器件PCA9555擴(kuò)展接口 239
4.32 I2C接口18位ADC芯片MCP3421的應(yīng)用 244
4.33 SPI接口存儲(chǔ)器AT25F1024的讀/寫與顯示 249
4.34 SPI接口數(shù)字電位器AD5206的應(yīng)用測試 258
4.35 SPI接口串行共陰驅(qū)動(dòng)器MAX7219控制4+2+2數(shù)碼管顯示 260
4.36 8位數(shù)碼管段位復(fù)用串行驅(qū)動(dòng)芯片MAX6951的應(yīng)用 264
4.37 SPI接口溫度傳感器TC72的應(yīng)用測試 270
4.38 NTC熱敏電阻應(yīng)用測試 273
4.39 溫度傳感器LM35全量程應(yīng)用測試 275
4.40 8路12位模數(shù)轉(zhuǎn)換芯片MCP3208的應(yīng)用 278
4.41 壓力傳感器MPX4250的應(yīng)用 282
4.42 直流電動(dòng)機(jī)正/反轉(zhuǎn)及PWM調(diào)速控制 284
4.43 ULN2803驅(qū)動(dòng)單極步進(jìn)電動(dòng)機(jī)的正/反轉(zhuǎn) 287
4.44 L298N驅(qū)動(dòng)雙極步進(jìn)電動(dòng)機(jī)運(yùn)行 292
4.45 伺服電動(dòng)機(jī)控制測試 296
4.46 用M145026與M145027設(shè)計(jì)的無線收發(fā)系統(tǒng) 299
4.47 溫/濕度傳感器DHT22的應(yīng)用 302
4.48 SRF04雷達(dá)測距傳感器的應(yīng)用 307
4.49 DS18B20溫度傳感器的測試 309
4.50 SD卡FAT文件系統(tǒng)讀/寫測試 315
第5章 綜合設(shè)計(jì) 324
5.1 帶日歷時(shí)鐘及溫度顯示的電子萬年歷 324
5.2 簡易計(jì)算器設(shè)計(jì) 329
5.3 電子秤仿真設(shè)計(jì) 333
5.4 簡易加密電子密碼鎖 337
5.5 用T6963C液晶與DS1302設(shè)計(jì)的可調(diào)指針式電子鐘 342
5.6 溫度控制L298N驅(qū)動(dòng)直流電動(dòng)機(jī)調(diào)節(jié)轉(zhuǎn)速 349
5.7 ULN2003驅(qū)動(dòng)5路繼電器及74HC595控制電梯數(shù)字點(diǎn)陣屏滾動(dòng)顯示 351
5.8 用74LS595與74LS154及反向驅(qū)動(dòng)器7406控制16×16LED點(diǎn)陣屏顯示 354
5.9 紅外遙控收發(fā)仿真 358
5.10 交流電壓檢測與數(shù)字顯示仿真 363
5.11 3端可調(diào)正穩(wěn)壓器LM317應(yīng)用測試 367
5.12 GP2D12紅外測距傳感器的應(yīng)用 370
5.13 帶液晶顯示的K型熱電偶溫度計(jì) 377
5.14 用MCP3421與RTD-PT100設(shè)計(jì)的鉑電阻溫度計(jì) 381
5.15 T6963C液晶顯示的模擬射擊訓(xùn)練游戲 388
5.16 簡易飛船游戲 392
5.17 可接收串口信息的帶中英文硬字庫的80×16LED點(diǎn)陣屏 399
5.18 GPS導(dǎo)航系統(tǒng)仿真 405
5.19 溫室綜合監(jiān)控系統(tǒng)仿真設(shè)計(jì) 409
5.20 Arduino Web服務(wù)應(yīng)用 415