● 安裝軟件環境,給Arduino上電,開始上傳項目
● 理解C語言編程基礎
● 為項目添加函數、數組和字符串
● 用程序控制Arduino的數字和模擬輸入/輸出接口
● 使用標準Arduino庫中的函數
● 編寫將數據存儲于EEPROM或閃存中的項目
● 連接顯示器,包括與OLED和LCD顯示器的連接
● 連接到互聯網并將Arduino作為Web服務器
● 開發關于物聯網的有趣項目
● 構建自己的庫文件并使用面向對象編程方法
新版特色:
● 新增介紹Arduino物聯網程序設計的內容
● 介紹新的Arduino型號和軟件
《Arduino編程從零開始 使用C和C (第2版)》從C語言基礎開始,深入淺出地介紹了Arduino編程,對于零基礎的初學者和有一定基礎的Arduino玩家都有一定的幫助。全書使用大量的程序范例一步步、手把手地教讀者怎樣為所有Arduino板編程,包括Arduino Uno R3,進而實現想要的功能,從讓Arduino板載LED以各種不同的方式來閃爍,一直到通過附加擴展板實現更加復雜和實用的功能,甚至讓Arduino板變成一個小型Web服務器。
前 言
Arduino接口的開發板提供了一種低成本、便于使用的技術來創作基于微控制器的項目。只需要掌握很少的電子學基礎知識,就可以讓Arduino實現從控制藝術裝置的燈光到管理太陽能系統的電力在內的方方面面。有很多基于項目的書會向你展示如何把設備連接到你的Arduino上,包括《Arduino編程從零開始 使用C和C (第2版)》作者的30 Arduino Projects for the Evil Genius一書。但是,《Arduino編程從零開始 使用C和C (第2版)》重點關注如何編寫Arduino程序。《Arduino編程從零開始 使用C和C (第2版)》將會向你講解如何讓Arduino編程變得簡單有趣,避免使用那些往往會讓項目受阻的、棘手的代碼。在《Arduino編程從零開始 使用C和C (第2版)》指導下,你會從Arduino使用的最基礎的C語言開始,一步步徹底了解Arduino編程過程。0.1 什么是ArduinoArduino是一款小型微控制器開發板,使用USB (Universal Serial Bus,通用串口總線)接口連接到計算機,并且擁有大量可以用來連接像電機、繼電器、光傳感器、激光二極管、擴音器、麥克風等外部電子元件的接口。這些外部設備可以通過計算機的USB連接、9V電池或外部電源供電。它們可以通過計算機直接控制或在編程后獨立運行。Arduino開發板的設計是開源的,這意味著任何人都可以制作Arduino兼容的開發板。這種競爭帶來了低成本的開發板和在標準開發板基礎上加以改型的各類板型。Arduino主控板可以通過在頂部插入擴展板的方式進行功能擴充。用于Arduino編程的軟件簡單易用,并且可以輕松地為Windows、Mac和Linux系統免費獲得。0.2 需要準備什么?這是一本面向初學者的書,但也可以為那些已經用過一段時間Arduino,并且想了解關于Arduino編程更多知識,或者想更深入了解其中原理的人帶來幫助。依照這個定位,《Arduino編程從零開始 使用C和C (第2版)》把注意力放在Arduino Uno開發板的使用上;當然,幾乎所有的代碼都可以不經修改地直接在Arduino的其他型號和變種上使用。不需要擁有任何編程經驗或技術背景,《Arduino編程從零開始 使用C和C (第2版)》的全部練習也不需要焊接。你所需要的全部就是對創造的渴望。如果想充分利用《Arduino編程從零開始 使用C和C (第2版)》并嘗試其中的一些實驗,那么手頭有以下物品是很有幫助的:· 幾根實心導線· 一臺便宜的數字萬用表只需要花幾塊錢就可以很容易地從電子元器件商店或網絡經銷商(如Adafruit或Sparkfun)那里買到它們。當然,你還需要一塊Arduino Uno開發板。如果想要更進一步了解并且嘗試一些使用顯示器和網絡連接的實驗,需要從網上購買一些擴展板,詳見第9章和第10章。0.3 如何使用《Arduino編程從零開始 使用C和C (第2版)》《Arduino編程從零開始 使用C和C (第2版)》在內容安排上循序漸進,可以讓你用一種簡單的方式上手。但是當你找到合適的定位并開始閱讀《Arduino編程從零開始 使用C和C (第2版)》時,你可能會發現自己可以跳過或只需要粗略閱讀前面的章節。《Arduino編程從零開始 使用C和C (第2版)》按如下順序組織章節內容:第1章:Arduino介紹。這是關于Arduino硬件的引言,該章介紹Arduino的功能和大量可獲得的不同型號的Arduino開發板。第2章:啟程。你將使用Arduino開發板開始自己的首個實驗:安裝軟件,上電,下載你的第一個項目。第3章:C語言基礎。該章涵蓋C語言的基礎語法;對于編程初學者,該章也可以作為一本大體的編程教材。第4章:函數。該章講解在Arduino項目中使用和編寫函數的關鍵概念。這些項目都包含用來示范的可運行的示例代碼。第5章:數組和字符串。該章將介紹如何使用比整型變量更高級的數據結構。通過逐步開發一個摩爾斯電碼例程來解釋這些概念。第6章:輸入和輸出。該章介紹如何在程序中使用Arduino開發板上的數字和模擬輸入/輸出接口。通過萬用表有助于了解Arduino輸入/輸出接口上所發生的情況。第7章:Arduino標準類庫。該章講解如何利用Arduino標準類庫中的函數。第8章:數據存儲。在該章中可以學習如何編寫可以在EEPROM (Electrically Erasable Programmable Read Only Memory,電可擦可編程只讀存儲器)中存儲數據并利用Arduino內置閃存(Flash Memory)的項目。第9章:顯示器。在該章中,你會學到如何將Arduino和顯示器連接起來并制作USB留言板。第10章:Arduino物聯網程序設計。該章講解如何讓Arduino像網絡服務器那樣運行并像dweet和IFTTT那樣與互聯網應用服務通信。第11章:C 和庫。你已經攻克了C語言,嘗試一下面向對象編程,然后編寫自己的Arduino類庫。0.4 資源《Arduino編程從零開始 使用C和C (第2版)》由以下網站提供技術支持:www.arduinobook.com。可以從這個網站以及諸如勘誤表之類的其他來源找到《Arduino編程從零開始 使用C和C (第2版)》使用的所有源代碼。也可以通過掃描封底的二維碼來得到這些資源。
Simon Monk,模擬控制與計算機科學學士,軟件工程博士。從少年時代起,他就是一名活躍的電子玩家,并擔任業余電路雜志的兼職作者。Monk博士撰寫了20余本有關創客和電子題材的著作,尤其是Arduino和樹莓派。你可以在網站http://simonmonk.org上找到他的更多作品,也可以關注他的推特@simonmonk2。
第1章 Arduino介紹 1
1.1 微控制器 1
1.2 Arduino開發板的探索之旅 3
1.2.1 電源接口 4
1.2.2 供電接口 4
1.2.3 模擬輸入接口 4
1.2.4 數字接口 5
1.2.5 微控制器 5
1.2.6 其他元件 6
1.3 Arduino的起源 7
1.4 Arduino家族 8
1.4.1 Uno和Leonardo 9
1.4.2 Mega和Due 9
1.4.3 微型和小型Arduino開發板 10
1.4.4 Yun 11
1.4.5 Lilypad 12
1.4.6 其他官方開發板 12
1.5 Arduino復制品和變型 13
1.6 本章小結 13
第2章 啟程 15
2.1 上電 15
2.2 安裝軟件 16
2.3 上傳你的第一個項目 16
2.4
Arduino應用程序 21
2.5 本章小結 23
第3章 C語言基礎 25
3.1 編程 25
3.2 什么是編程語言? 27
3.3 Blink再來一次! 31
3.4 變量 33
3.5 C語言實驗 35
3.6 數值變量和算術運算符 36
3.7 控制語句 39
3.7.1 if語句 39
3.7.2 for語句 41
3.7.3 while語句 44
3.8 常量 45
3.9 本章小結 45
第4章 函數 47
4.1 什么是函數? 47
4.2 參數 48
4.3 全局變量、局部變量和靜態變量 50
4.4 返回值 53
4.5 其他變量類型 54
4.5.1 float(浮點型) 54
4.5.2 boolean(布爾型) 55
4.5.3 其他數據類型 56
4.6 代碼風格 58
4.6.1 縮進 58
4.6.2 花括號 59
4.6.3 空白 60
4.6.4 注釋 60
4.7 本章小結 62
第5章 數組和字符串 63
5.1 數組 63
5.2 字符串 67
5.2.1 字符串常量 68
5.2.2 字符串變量 69
5.3 摩爾斯電碼轉換器 70
5.3.1 數據 71
5.3.2 全局變量和setup函數 72
5.3.3 loop函數 72
5.3.4
flashSequence函數 75
5.3.5
flashDotOrDash函數 76
5.3.6 整合 77
5.4 本章小結 79
第6章 輸入和輸出 81
6.1 數字輸出 81
6.2 數字輸入 85
6.2.1 上拉電阻 85
6.2.2 內部上拉電阻 88
6.2.3 防抖動 89
6.3 模擬輸出 94
6.4 模擬輸入 96
6.5 本章小結 98
第7章 Arduino標準類庫 99
7.1 隨機數 99
7.2 數學函數 102
7.3 位操作 103
7.4 高級I/O 105
7.4.1 生成音調 105
7.4.2 移位寄存器 107
7.4.3 中斷 107
7.5 本章小結 109
第8章 數據存儲 111
8.1 常量 111
8.2 將數據存儲在閃存中 112
8.3 EEPROM 114
8.3.1 在EEPROM中存儲整數 116
8.3.2 使用AVR EEPROM庫 117
8.3.3 在EEPROM中存儲浮點數 118
8.3.4 在EEPROM中存儲字符串 118
8.3.5 清除EEPROM的內容 120
8.4 壓縮 121
8.5 本章小結 122
第9章 顯示器 123
9.1 字母數字LCD顯示器 124
9.2 USB留言板 125
9.3 使用顯示器 127
9.4 其他LCD庫函數 128
9.5 OLED圖形顯示器 128
9.6 連接OLED顯示器 129
9.7 軟件 130
9.8 本章小結 132
第10章 Arduino物聯網程序設計 133
10.1
與Web服務器通信 134
10.1.1 HTTP 134
10.1.2 HTML 134
10.2
將Arduino Uno作為Web服務器 136
10.3
網絡控制的Arduino 139
10.4
Node MCU Web服務器 145
10.5
網絡控制的Node MCU 150
10.6
呼叫Web服務器 153
10.7
Arduino Uno和IFTTT 156
10.8
Node MCU ESP8266開發板和IFTTT 158
10.9
其他物聯網選擇 160
10.9.1 Arduino Yun 160
10.9.2 Particle
Photon 161
10.10
本章小結 161
第11章 C 和庫 163
11.1
面向對象 163
11.2
內置庫示例 164
11.3
編寫自己的庫 165
11.3.1 頭文件 165
11.3.2 實現文件 166
11.3.3 完成你的庫 167
11.3.4 關鍵字 168
11.3.5 示例 168
11.4
本章小結 171