- 作者:趙英傑
- 出版社:旗標科技股份有限公司
- 出版日期:2020.03.12
- 頁數:656頁(含索引,附錄電子書不計入頁數),雙色印刷。
- 定價:NT$680
Arduino書籍第三版的新增內容介紹和討論貼文,請按此連結。
十年來,站在Maker(創客)風潮浪尖上的Arduino,不僅是電子愛好者的微電腦互動控制首選,也因為Arduino 價格低廉,開發容易,各電子零組件、感測器廠商為了推廣他們的產品,都免不了要附上Arduino的使用範例,加上網路眾人分享的新奇、實用的DIY作品,令Arduino成為微電腦控制板的實質領導者。
打造微電腦互動作品,需要融合不同領域的軟、硬體基礎知識。本書的目標是讓沒有電子電路基礎,對微電腦、電子DIY 及互動裝置有興趣的人士,也能輕鬆閱讀,進而順利使用Arduino 控制板完成互動應用。因此,本書以手繪圖解的方式,說明基本電子學和程式設計入門。
Arduino不僅是微電腦控制板的品牌名稱,操控它的程式語言,也叫Arduino。在Arduino之前,使用者需要付費購買軟硬體開發工具,現在,市面上有數十種不同類型的控制板都能使用免費的Arduino語言和工具軟體來開發程式;換言之,一旦掌握了Arduino相關基礎知識,就不會受限於特定廠商的產品…這是非常了不起的革命性成就!
也因此,本書從第一版到第三版,封面的插圖主角是Arduino原廠控制板,第四版則是筆者焊接組裝的循跡自走車,上面的控制板並非出自Arduino原廠,但控制程式仍是Arduino。
本書DIY實驗單元的控制板,大都採用主流的Arduino UNO,第19章則使用另一款知名(非原廠)的ESP8266控制板。書中所有插圖都是筆者採用Adobe Flash軟體手繪完成(註:Flash在2015年末更名為Animate CC),零組件也全都用手繪插圖取代照片;線條插圖通常比照片更能清晰地突顯描述的要點。
撰寫第一版時,筆者最初想法是從改造身邊的電子產品和玩具著手,搭配組裝電子零件來介紹Arduino的應用範例,然而,電子產品的款式眾多,很難做一般化的步驟說明,尤其在教學上,最好要有明確可依循操作的東西。現在很容易買到「Arduino相容」電子模組,像按鍵、距離感測器、LED顯示器…等,本書也盡量採用現成的模組,但為了避免書本淪落成「電子模組操作手冊」,筆者也說明了模組的電路及其運作原理,唯有如此,讀者才能自由整合不同的軟硬體,也不會受制於某些廠商的產品。
當然,第四版也保留了改造家電和玩具的案例,強調了自己動手改造的可能和樂趣,像底下這個田宮線控機械昆蟲,承載了筆者小學時代最深刻的動力機械DIY記憶;改造這個玩具的Arduino控制板和藍牙模組,都是自己焊接的:
第四版的內容更新著重在程式設計和演算法,更加全面地介紹Arduino程式語言,包含物件導向程式設計(OOP)和自製程式庫。因篇幅有限,第三版中的Wii遊戲機體感控制器以及MIDI電子鼓,被歸納到附錄單元,以電子書形式提供。為了方便讀者查閱,書末提供了索引。例如,假設要知道#ifndef指令的語法和範例,透過索引可以很快找到。
廣告一下,《超圖解Python程式設計入門》也有索引;中文電腦書通常沒有索引,因為需要人工校對,國外某些出版社有專人負責編輯索引,筆者花費兩個工作天才整理完成。
《超圖解Arduino 互動設計入門》第四版目錄
第一章 認識 Arduino 與微電腦控制板
1-1∣認識 Arduino
1-2∣安裝 Arduino Uno 控制板的驅動程式
1-3∣Arduino 程式開發工具與開發步驟簡介
1-4∣上傳「閃爍 LED」範例程式
第二章 認識電子零件與工具
2-1∣電壓、電流與接地.
2-2∣控制板的電源供應器
2-3∣電阻
2-4∣電容
2-5∣二極體
2-6∣發光二極體(LED)
2-7∣看懂電路圖
2-8∣電子工作必備的量測工具:萬用電錶
2-9∣麵包板以及其他電子工具
第三章 Arduino 控制板與程式設計入門
3-1∣Arduino Uno 控制板的功能和接腳說明
3-2∣認識程式語言
動手做 3-1 寫一個 LED 閃爍控制程式
3-3∣用「變數」來管理程式碼
3-4∣不變的「常數」
3-5∣使用 #define 巨集指令替換資料
第四章 開關、分歧指令與歐姆定律
4-1∣認識開關
4-2∣開關電路與上 / 下拉電阻
動手做 4-1 用麵包板組裝開關電路
4-3∣改變程式流程的 if 條件式
動手做 4-2 LED 切換開關
動手做 4-3 用 RC 電路消除開關彈跳訊號
動手做 4-4 LED 跑馬燈
4-4∣迴圈
動手做 4-5 跑馬燈範例程式二:使用 for 迴圈
4-5∣認識陣列
動手做 4-6 使用陣列變數的 LED 來回跑馬燈
4-6∣用歐姆定律計算出限流電阻值
第五章 UART 序列埠通信
5-1∣並列與序列通訊簡介
5-2∣認識 UART 序列埠
5-3∣處理文字訊息:認識字元與字串資料類型
5-4∣認識程式庫:傳遞序列訊息
動手做 5-1 從序列埠監控視窗觀察變數值
5-5∣認識 String(字串)程式庫
5-6∣從 Arduino 接收序列埠資料
動手做 5-2 從序列埠控制 LED 開關
5-7∣switch…case 控制結構
5-8∣認識數字系統..
第六章 LED 七段顯示器與序列轉並列輸出 IC
6-1∣七段顯示器
動手做6-1 連接 LED 七段顯示器與 Arduino 板
6-2∣使用積體電路簡化電路
動手做 6-2 序列連接七段顯示器
動手做 6-3 不用 delay() 的延遲方法
動手做 6-4 一個 74HC595 控制多個七段顯示器
第七章 SPI 序列介面與 LED 矩陣顯示器
7-1∣建立自訂函式
動手做 7-1 建立自訂函式
7-2∣變數的有效範圍:全域、區域和靜態
7-3∣LED 矩陣簡介
7-4∣認識 SPI 序列介面與 MAX7219
動手做 7-2 組裝 LED 矩陣電路
7-5∣顯示單一矩陣圖像
動手做 7-3 在矩陣 LED 上顯示音符圖像
動手做 7-4 在序列埠監控視窗輸出矩形排列的星號
7-6∣LED 矩陣動畫與多維陣列程式設計
動手做 7-5 在矩陣 LED 上顯示動態圖像
7-7∣LED 矩陣跑馬燈
動手做 7-6 LED 矩陣逐字捲動效果程式
7-8∣認識指標(Pointer)
7-9∣將常數保存在「程式記憶體」裡
第八章 I2C 序列通訊介面與 LCD 顯示器
8-1∣認識文字型 LCD 顯示模組
動手做 8-1 並列連接 LCD 顯示器
8-2∣認識 I2C 介面
動手做 8-2 掃描 I2C 介面匯流排連接的週邊位址
8-3∣LCD 顯示器的特殊字元和自訂字元
動手做 8-3 在 LCD 上顯示自訂字元符號
動手做 8-4 透過 I2C 介面串連兩個 Arduino 板
動手做 8-5 在 I2C 介面上傳送整數資料
8-4∣DHT11 數位溫濕度感測器
動手做 8-6 製作數位溫濕度顯示器
第九章 類比信號處理
9-1∣讀取類比值
動手做 9-1 從序列埠讀取「類比輸入」值
9-2∣認識光敏電阻與分壓電路
動手做 9-2 使用光敏電阻製作小夜燈
9-3∣壓力感測器與彎曲感測器
9-4∣電容式麥克風元件與運算放大器
動手做 9-3 自製麥克風聲音放大器(拍手控制開關)
動手做 9-4 拍手控制開關改良版
第十章 變頻控制 LED 燈光和馬達
10-1∣調節電壓變化
10-2∣類比輸出(PWM)指令和預設頻率
動手做 10-1 調光器
動手做 10-2 隨機數字與燭光效果
動手做 10-3 透過序列埠調整燈光亮度
10-3∣認識直流馬達
10-4∣認識電晶體元件
動手做 10-4 電晶體馬達控制與調速器
第十一章 發音體、超音波距離感測、 物件導向程式設計與自製程式庫
11-1∣發音體和聲音
11-2∣使用 tone() 函數發出聲音
動手做 11-1 演奏一段瑪莉歐旋律
11-3∣認識超音波
動手做 11-2 使用超音波感測器製作數位量尺
11-4∣物件導向程式設計:自己寫程式庫
第十二章 馬達控制板與自動迴避 障礙物的自走車
12-1∣控制馬達正反轉的 H 橋式馬達控制電路
動手做 12-1 編寫馬達驅動程式模組
動手做 12-2 自動迴避障礙物的自走車
第十三章 伺服馬達、數位濾波、資料排序與體感控制機械雲台
13-1∣認識伺服馬達
動手做 13-1 吃錢幣存錢筒
動手做 13-2 自製伺服馬達雲台
13-2∣簡易數位濾波以及資料排序演算法
13-3∣使用陀螺儀和加速度計模組控制伺服馬達雲台
13-4∣從陀螺儀和加速度計取得角度
動手做 13-3 讀取 IMU 數據並繪圖顯示
動手做 13-4 透過「序列埠繪圖家」 呈現訊號波形
動手做 13-5 使用 IMU 感測器控制伺服馬達.
第十四章 紅外線遙控、施密特觸發器與 循跡自走車
14-1∣認識紅外線
動手做 14-1 使用 IRremote 程式庫解析紅外線遙控值
動手做 14-2 使用紅外線遙控器控制伺服馬達
動手做 14-3 從 Arduino 發射紅外線遙控電器
14-2∣認識反射型與遮光型光電開關
動手做 14-4 光電子琴製作
14-3∣紅外線循跡/避障模組與施密特觸發器
14-4∣認識電壓比較器
14-5∣製作循跡自走車
動手做 14-5 組裝自走車
第十五章 手機藍牙遙控機器人製作
15-1∣電波、頻段和無線傳輸簡介
15-2∣認識藍牙(Bluetooth)
15-3∣5V 和 3.3V 電壓準位轉換
動手做 15-1 使用軟體序列埠 (SoftwareSerial) 連接 Arduino 與藍牙模組
動手做 15-2 用 Android 手機藍牙遙控機器人
15-4∣透過 AT 命令更改藍牙模組的名稱
動手做 15-3 透過 AT 命令更改藍牙模組的名稱
第十六章 RFID 無線識別裝置
16-1∣認識條碼與 RFID
動手做 16-1 讀取 Mifare RFID 卡的 UID 碼
動手做 16-2 Mifare RFID 的門禁系統實驗
16-2∣Mifare Classic 1KB 的記憶體結構
動手做 16-3 讀寫 RFID 卡片資料(扣款與充值)實驗
第十七章 網路與 HTML 網頁基礎+嵌入式網站伺服器製作
17-1∣認識網路與 IP 位址
17-2∣網域名稱、URL 網址和傳輸協定
動手做 17-1 認識網頁與 HTML
17-3∣網路的連線標準與封包
17-4∣認識 HTTP 通訊協定
17-5∣連接乙太(Ethernet)網路卡建立 Arduino 微型網站伺服器
動手做 17-2 建立微型網站伺服器
第十八章 網路家電控制
18-1∣使用 Webduino 程式庫建立微型網站
動手做 18-1 監控遠端的溫濕度值
18-2∣傳遞資料給網站伺服器
動手做 18-2 建立網頁表單
18-3∣認識傳遞資料的 GET 方法和查詢字串
動手做 18-3 建立接收 POST 表單資料的自訂命令
18-4∣控制家電開關
動手做 18-4 使用繼電器控制家電開關
第十九章 ESP8266 控制板 Wi-Fi 物聯網應用實作
19-1∣ESP8266 模組
19-2∣Wemos D1 mini 板的接腳
19-3∣使用 Arduino IDE 開發 ESP8266 控制板程式
19-4∣認識 Wi-Fi 無線網路
19-5∣使用 ESP8266 的 WiFi 程式庫連接無線網路
動手做 19-1 使用 ESP8266WebServer 程式庫建立 HTTP 伺服器
動手做 19-2 處理 GET 或 POST 請求
19-6∣PIR 人體感應器
動手做 19-3 偵測人體移動
19-7∣從 ESP8266 串連網路服務
動手做 19-4 從 D1 板(ESP8266)連結網站伺服器
動手做 19-5 自動發送 LINE 訊息的入侵警報系統
19-8∣在 ESP8266 的快閃記憶體中儲存網頁檔案
動手做 19-6 建立非同步網站伺服器讀取並傳送網頁檔案
動手做 19-7 動態網頁調光器
19-9∣使用 MOSFET 元件轉換邏輯電位
附錄A 中斷處理與交流電調光器製作
A-1∣輪詢 VS 中斷
A-2∣調整交流電的輸出功率
A-3∣定時觸發執行的 TimerOne 程式庫
動手做 A-1 交流電調光器電路
以下附錄為PDF格式的電子書
附錄B 燒錄 ATmega 微處理器的 開機啟動程式 (bootloader)
動手做 B-1 用麵包板組裝 Arduino 微電腦實驗板
動手做 B-2 使用 Arduino Uno 控制板燒錄 bootloader
動手做 B-3 連接電腦的 USB 介面並上傳程式檔
附錄C 改造 3C 小玩意的控制鈕
C-1∣認識光電耦合元件
附錄D 認識焊接工具:焊錫、電烙鐵及焊接助手
D-1∣焊接工具
動手做 D-1 基礎焊接練習
動手做 D-2 焊接鱷魚夾
D-2∣印刷電路板及萬用板
動手做 D-3 焊接電路板
動手做 D-4 活用 USB 電源供應器
附錄E 使用 App Inventor 開發 Android App
E-1∣認識 App Inventer 2.0
E-2∣建立第一個 App Inventor 專案:聲音播放程式
E-3∣藍牙遙控機器人 App 的程式碼說明
附錄F 使用 Wii 搖桿控制機械手臂
F-1∣認識 Wii 左手把的通訊介面:I2C
動手做 F-1 讀取 Wii 左手把的搖桿、按鈕與加速度計值
動手做 F-2 使用 Wii 左手把控制機械手臂
附錄G Arduino + Flash 整合互動應用
G-1∣Arduino + Flash = 多元互動媒體
動手做 G-1 測試 Arduino 與 Flash 連線
動手做 G-2 「接電子零件」互動遊戲
G-2∣認識 Arduino 的 String(字串)程式庫
動手做 G-3 Flash 燈光開關和調光器
G-3∣使用 Firmata 在 Flash 和 Arduino 之間傳遞資料
附錄H 使用 RFID 製作問答遊戲
H-1∣RFID 模組介紹與標籤讀取實驗
動手做 H-1 讀取 RFID 標籤
H-2∣儲存與比對 RFID 編碼
動手做 H-2 使用 RFID 控制開關
動手做 H-3 使用 RFID 進行 Flash 問答遊戲
附錄I 製作 MIDI 電子鼓
I-1∣認識 MIDI
I-2∣MIDI 訊息格式
動手做 I-1 透過 Arduino 演奏 MIDI 音樂
動手做 I-2 透過「虛擬 MIDI」介面演奏音樂
動手做 I-3 製作 MIDI 電子鼓
恭喜Cubie又出新版了~~~
剛剛看了一下, 跟我買的第一版, 內容增加了不少~~~ 看來又要買一本來收藏了~~~
謝謝,如果跟第一版比較,的確是改變很多。
不過你也是箇中老手了,謝謝!
thanks,
jeffrey
老师,我想问下,arduino的i2c接口A4,A5,是用软件模拟实现的还是它内部专门有一个i2c硬件模块专门实现的呢? 因为我在做uart通信实验时,有軟串口,还有就是普通的串口
A4, A5是芯片的硬件I2C接口。
thanks,
jeffrey
不知道大陆有没有卖?好想买一本学习。
台湾有些电子商务网站和网站書店有提供全球物流,但内地可能要翻墙才连得上。
thanks,
jeffrey
赵老师:
不知道《超图解Arduino互动设计入门》第四版有没有计划在中国编译成简体中文版,必竟语言习惯不同。如果能在中国内地上市简体中文版,我必定会再收藏一本。
非常感谢您的支持,但我目前有其他计划,暂不考虑授权简体中文版,谢谢!
thanks,
jeffrey
老師您好 附錄的zip檔案夾名稱是亂碼
因為範例檔是在Windows系統壓縮的,所以中文字編碼是Big5,我已經請旗標出版社的編輯用Mac重新壓縮再上傳,明日會處理好,抱歉造成您的困擾,也謝謝告知!
thanks,
jeffrey
本書編輯黃昕暐告知,在Windows系統用7zip重新壓縮,檔名沒有亂碼了,在macOS和Linux系統上測試沒問題,請重新下載範例檔。
thanks,
jeffrey
老師您好,很喜歡這本書,非常感謝老師與編輯的用心讓這本書持續更新問世。尤其索引也太佛心了!
最近在查索引的時候發現有點查不太到,例如查“陣列”, 8-35, 8-41都查不到,比較能確定的是因為在第四版中沒有 8-41頁,請老師與編輯再查校一下~~~
真是抱歉~我會再仔細校對,非常感謝告知!
thanks,
jeffrey
請問按照您書本15-4,透過AT命令更改藍牙模組名稱接線及使用實驗程式,在序列埠監控視窗中輸入AT都沒回應,可能是何問題?(BT is ready 有出現 ,使用HC-06 沒有行結尾及 9600baud都有選對)
謝謝
因為藍牙韌體有不同版本,最好先跟廠商確認。
請嘗試用115200速率、加上行結尾…等組合試試。
thanks,
jeffrey
想要做一個gps追蹤可以遠端知道位置在哪的Arduino
可以買哪一本書來學習呢?
老師你好~
不好意思 想請問一下 第四版附錄寫電子書 是要去哪裡下載呢?
不好意思 有看到範例下載的部分了~ 很抱歉沒認真看完就發問!
新年快樂!
thanks,
jeffrey
你好,第8-5頁的可變電阻應該還要再多兩條線分別接回5v和接地,才能形成完整的通路。
感謝告知!其實電源腳引線的5V和GND註釋,就是提示接電源,我會再特別說明,謝謝!
thanks,
jeffrey
在 超圖解arduino第四版 有提到電子書 請問能提供鏈接嗎? 非常感謝
包含在範例檔裡面。
thanks,
jeffrey
您好,如果手头仅有esp32开发板,能否用于学习此教程?谢谢。
不适合,请至少准备一个兼容Arduino Uno的开发板。
thanks,
jeffrey
請問有粉絲頁嗎
希望有新文章就馬上被通知到
拍謝,我沒有使用社群媒體,但是你可以在RSS閱讀器中輸入網址:https://swf.com.tw/,即可獲取這個blog的大綱內容並取得更新。
thanks,
jeffrey
老師好,最近有一個想法,請問可否使用程式使Uno開發板自動Reset呢?
(想說可以應用在365天運轉的自動記錄儀器上使其定期重置)
Uno開發板的Reset接任一數位腳,透過該數位腳發送低電位訊號,即可重置Uno板。
thanks,
jeffrey
請問第4版12-1的範例要如何執行?
找不到Arduino的file
您好,diy12_1就是那個自訂的Motor馬達控制程式庫,要搭配diy12-2單元程式一併使用。
thanks,
jeffrey
您好,动手做9-2按照实验程序下载,自定义图形在LCD上没有出现,动手做9-1下载后完全正常。
请问老师:这是什么原因?
谢谢!
咦?我可以正常运行,请在lcd.begin()叙述后一行加上lcd.clear();试试。
thanks,
jeffrey
我在lcd.writ(0)前面加上lcd.clear(),问题就解决了。看来在读取LCD自定义图形区时,要在显示前刷新一下,才能正常显示。
谢谢老师!
感谢告知!
thanks,
jeffrey
老师您好:
《互动》第三版P10-9, “…..Timer 2(数位3和9脚)的PWM……”, 是否应为”3和11脚“?
另外,对Timer2 8分频(4KHz):void setup() { TCCR1B = TCCR1B & 0b11111000 | 0x02; },
是否应为:void setup() { TCCR2B = TCCR2B & 0b11111000 | 0x02; }?
谢谢!
您好,感谢纠错,你是对的。
ATmega328P的Time 2是脚3和11。
PWM频率的配置,可参阅这个Arduino PWM Frequency列表。
thanks,
jeffrey
趙老師您好,
請教您 HC-SR-04, pulses(), 與書本 11-13 頁圖解的困惑.
我的問題在 pulseIn() 是何時開始計時?
1.我原本理解的是: 對 CH-SR04 的 Trig pin 發出 HIGH 10us 的指令, CH-SR04 因此會在發射端在 10us 內發出 8 個 40KHz 脈衝, 並立即執行 pulseIn(pin, HIGH), 超聲波脈衝撞到物體後反彈, CH-SR04 收到後在 Echo pin 輸出 HIGH, 一旦 HIGH 結束, pulseIn 就停止計時, pulseIn 傳回的時間經過計算就能得到距離.
2. 書本 11-13 明顯的說明是測量脈衝長度.
3. Arduino.cc 查詢 pulse(): if value is HIGH, pulseIn() waits for the pin to go from LOW to HIGH, starts timing, then waits for the pin to go LOW and stops timing. 依我解釋是訊號 LOW 變 HIGH 開始計時, HIGH 結束時停止, 這樣的話是與老師書本的 page 11-13一樣.
而10us 內8 個 pulse, 測回波的的 8個脈衝長度, 來知道距離 ,我不認為是合理的, 因為回波的波長一樣.
因此做了兩個實驗, 我測距離 10cm 的物體, 在 pulsein() 前加了聲波走 4cm 的時間的 delayMicrosecond(), 如果結果, 所得距離還是 10cm, ( 難到只測 8 個脈衝時間? ) 在使連續使用 pulsein() 次 , 來判斷是否是利用回波的回波修正, 結果是 10, 0, 0 cm.
因此對 pulsing() 抓取的範圍深感困惑? 而且按原文: if value is HIGH, pulseIn() waits for the pin to go from LOW to HIGH, starts timing, then waits for the pin to go LOW and stops timing. 那 pulse() 因該是只抓的第一個脈衝的半個波長時間.
問題很長, 還請趙老師能指導.
您好,11-13頁的圖說「模組內部自動發出的訊號」,指的是超音波模組會在收到觸發訊號之後,發出超音波,跟回應訊號無關,請忽視它。
pulseIn()測量的是「回應(Echo)腳」的訊號,如11-14的圖說所示,謝謝!
趙老師 您好,
我的書是超圖解Arduino互動設計入門第三版.
想請問書中:
第10章: 變頻控制LED燈光和馬達
第11章: 使用Wii搖桿控制機械手臂
第14章: 手機藍芽遙控機器人製作
這些所需的硬體零件, 有在販售嗎?
還是在哪個管道可以購買?
感謝.
拍賣網站應該都能個別買到這些零件,最初實驗時,我不是一次買很多零組件,而是依照需要慢慢添購。
趙老師您好,我有購買您出版的超圖解Arduino互動設計入門,遇到以下問題想請教您:
1. 第15章的藍芽序列通訊模組,接腳順序跟書上不同,請問是否有新版說明呢?
2. 第16章的RFID-RC522模組,接腳順序跟書上不同,請問是否有新版說明呢?
3. 第19章,我已安裝ESP8266套件,無法引用ESP8266WiFi.h與ESP8266WebServer.h,請問是否還需要做其他步驟呢?
您好,因電子模組廠商眾多,有些模組的接腳和書本的圖例不同,但是板子上通常都有印刷接腳名稱,像是藍牙序列通訊模組,只要認得電源(Vcc)、接地(GND)、傳送(TX)和接收(RX),不管它們的順序為何,照著書本的說明接線即可。
ESP8266WiFi.h與ESP8266WebServer.h都是ESP8266開發環境內建的程式庫,跟著19-8頁步驟3操作,即可安裝,謝謝!
動手做7-6 LED捲動程式 編譯會產生記憶體不足 我使用Auduino 1.8.19環境
想請教如何解 ? 謝謝
Arduino:1.8.19 (Mac OS X), 開發板:”Arduino Uno”
草稿碼使用了 3262 bytes (10%) 的程式儲存空間。上限為 32256 bytes。
全域變數使用了 2074 bytes (101%) 的動態記憶體,剩餘 -26 bytes 給區域變數。上限為 2048 bytes 。
Not enough memory; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing your footprint.
data section exceeds available space in board
開發板 Arduino Uno 編譯錯誤。
你好,請改用diy7_6_PROGMEM範例檔,前者把「字體定義」存在動態記憶體,這個版本的字體則是存在快閃記憶體。
我縮減fonts.h 不需要用到的字元. 編譯後記憶體夠用了.問題解決了 不好意思
了解!
我試了diy7_6_PROGMEM,可以執行了
趙老師 您好~
我是ARDUINO的初學者~想請教老師一個問題~就是如何讓ARDUINO燒錄程式後能獨立運作(只需供給電源)~不需依靠USB線連接電腦~~以下是我參考別人的範例~要怎修改才能不使用電腦傳輸而自己運作?
#include
#include “TinyDHT.h”
#define DHTPIN 8
#define DHTTYPE DHT11
//#define DHTTYPE DHT22 // DHT 22 如果用的是DHT22,就用這行
//#define DHTTYPE DHT21 // DHT 21
LiquidCrystal_PCF8574 lcd(0x27); // 設定i2c位址,一般情況就是0x27和0x3F兩種
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(9600);
Serial.println(“DHTxx test!”);
dht.begin(); //初始化DHT
lcd.begin(16, 2); // 初始化LCD
lcd.setBacklight(255);
lcd.clear();
lcd.setCursor(0, 0); //設定游標位置 (字,行)
lcd.print(“*~ LUPH ~*.”);
lcd.setCursor(0, 1);
lcd.print(“~* FOREVER *~.”);
delay(3000);
} // setup()
void loop()
{
delay(1000);
float h = dht.readHumidity(); //取得濕度
float t = dht.readTemperature(); //取得溫度C
Serial.print(“Humidity: “);
Serial.print(h);
Serial.print(” %\t”);
Serial.print(“Temperature: “);
Serial.print(t);
Serial.println(” *C “);
lcd.clear();
lcd.setCursor(0, 0); //設定游標位置 (字,行)
lcd.print(“RH :”);
lcd.setCursor(7, 0);
lcd.print(h);
lcd.setCursor(14, 0);
lcd.print(“%”);
lcd.setCursor(0, 1); //設定游標位置 (字,行)
lcd.print(“Temp:”);
lcd.setCursor(7, 1);
lcd.print(t);
lcd.setCursor(13, 1);
lcd.print((char)223); //用特殊字元顯示符號的”度”
lcd.setCursor(14, 1);
lcd.print(“C”);
} // loop()
接行動電源
趙老師好~~我有試過外接5V電源並拔掉USB線~但LCD確只有發亮而無顯示任何字幕
老師好~~後來我自己量了一下外部電源5.4V到板子上電壓只剩3.5V~~所以造成動作不完整~~現在已經排出異常~~可以使用外部電源驅動了~~感謝老師教導~~
感謝告知!
赵英杰先生,您好:
最近购买了您的著作《完美图解Arduion互动设计入门》,学到很多东西,也提升了DIY的兴趣。我想DIY一个开关机构,比如家里的门,自己回到家门口可以自动开门,别人却开不了。想请教一下实现的思路,非常感谢。
本人在上海,如果有机会来大陆,一定请告诉我。
此致,问候!
王其荣
「无接触」自动开门,如果不考虑安全因素,目前想到:
1. 人脸或肢体辨识
2. 使用手机蓝牙配对,靠近时门锁自动联机开启。
3. 在背包上贴RFID标签,靠近时门锁自动感应开启。
原本计划今年暑假带小孩到上海和苏杭旅游,但因疫情尚未减缓而作罢,谢谢!
1.page 18-2 webduino 是只需要page17-22搭配乙太網路卡就可以,還是需要購買webduino fly的卡
2.page 18-6引用的 include 引用的webduino程式庫,要如何找到?
arduino\匯入程式庫\管理程式庫 關鍵字是什麼??
還是要去哪裡download ??
謝謝
1. 乙太網路實作的介面,只需要用到採用W5100晶片的乙太網路模組,跟動手做17-2單元相同。
2. 書本使用的程式庫都已包含在範例原始檔,請參閱序言的最後一頁說明,謝謝!
趙老師您好: DIY18-1中程式使用了DHT11.
但範例程式與書本裡都漏掉了要 dht.begin();
所以diy18_1.ino是無法正確顯示的.
敬上
趙老師您好. 續上則 diy18_1.ino 範例中:
是否須加上 #include 程式庫宣告.
以及
if (isnan(h) || isnan(t)) 之後的判斷式相反了
建議修改為
if (isnan(h) || isnan(t)) {
server << "無法讀取溫濕度值”;
} else {
server << "溫濕度計”;
server << "溫度:” << t << "°C”;
server << "濕度:” << h << "%”;
}
就能正確顯示溫溼度了
非常感謝糾錯!
老師好,我是第二版的讀者,最近想做一個廚房計時器,希望計時結束時會有兩個led交互閃爍同時利用tone()不斷播放簡單的兩小節提示音,不過音符與音符之間的停頓似乎不適合使用delay(),因為整個系統會跟著停頓,想請教有什麼方法可以動態產生停頓的時間(拍子)?
改用「時間差」運算取代delay(),底下是個簡單的例子,令蜂鳴器發出si-so-si-so…的警報聲。
感謝老師,我已經解決了,不過現在出現另一個狀況就是我的nodemcu進入深度睡眠ESP.deepSleep時,仍有一個接LED的腳位輸出高電平,我已經在進入睡眠前直接將腳位輸出LOW了,不知老師有沒有什麼建議?感謝您撥冗答覆。
ESP8266進入睡眠狀態後,某些接腳會輸出高電位或低電位,而且它不像ESP32可透過RTC與協作處理器(ULP)維持狀態(例如,進入睡眠前,某個接腳輸出1,進入睡眠後仍維持1)。這是ESP8266進入深度睡眠後的接腳狀態變化:
D1和D2:低電位
D4~D8:高電位
D3輸出2V
相關說明可參閱“ESP8266 (ESP-12F) deep sleep and light sleep with Arduino”貼文的”Output pin states during sleep”單元。
感謝老師解惑
不客氣~
想問有沒有電子書? 我想放在IPAD裡隨時看
出版社沒有這方面的計畫,拍謝!
你好
我购买了 《超圖解 Arduino 互動設計入門 第四版 》
请问如何获取文档呢?
请参阅内页第5页说明,如果仍无法下载,再留言跟我说,谢谢您!
請問第四版內文第五頁的下載網址還有效嗎? 買書之後,無法下載範例。謝謝!
抱歉,出版社已修復連結,請再試試,謝謝您!
您好,
請問《超圖解Arduino 互動設計入門》第三版, 10-29頁,
直流馬達要達到快速停止(剎車), 可以將兩個輸入訊號反轉;
不好意思, 看不太明白, 是兩個腳位都[高]或[低]嗎?
希望老師能幫忙釋疑, 感謝.
我指的是輸入跟原本相反的訊號。
假設目前的1A是「高」,1B是「低」,馬達呈現正轉狀態。
短暫地將1A改成「低」,1B改成「高」,將會導致馬達逆轉而形成急煞狀態。
老師你好!
想請問有無打算推出超圖解Arduino互動設計入門第五版?
我最近就是在忙這件事 🙂