2022.01.19
花了台幣兩百六十幾元下載了 fritzing For Mac,試著把做過的練習,用它畫出來以熟悉這套軟體。沒想到實在太簡單了,麵包板檢視的部份一下子就上手,概要圖及 PCB 檢視對於沒有電路基礎的自己有點難,就等未來會用到時再來研究。
底下列出三次練習的麵包板檢視圖:
- 第一個練習:
- 加了開關的版本:
- 遙控版(使用 ESP8266):
- 由於 fritzing 內的零件庫沒有自己手上這個 ESP8266 NodeMCU LoLin 的版本,Google 後找到這裡有:ESP8266 NodeMCU LoLin ,下載後,如下圖 Import 加入後就可以使用了:
- 麵包板檢視圖:
- 由於 fritzing 內的零件庫沒有自己手上這個 ESP8266 NodeMCU LoLin 的版本,Google 後找到這裡有:ESP8266 NodeMCU LoLin ,下載後,如下圖 Import 加入後就可以使用了:
看了這系列教學影片才決定購買的,重點是不用動到焊槍,使用麵包板就可以玩了(眼力不行,之前被燙過後就不敢玩了)。這玩具不貴,又可以寫程式控制,似乎很好玩且可以玩很久。
2022.01.17 蝦皮訂購的 Arduino Uno 套件到貨:
晚訂購的 ESP8266 反而先到貨,這期間做了點功課,才發現 ESP8266 不是只比 Arduino Uno 多了個 WI-FI 而已,記憶體較多,應用也不遑多讓,尤其是 IoT 。
更方便的是程式寫作環境就能在 Arduino IDE 裡:
器材都已備好,接下來就是弄個環境:
第一個練習
- 參考這支影片:【Arduino教學】實作02-進階Blink - YouTube
- 剛開始使用的是 Arduino IDE 2.0 RC3 For Mac ,初期都是叫出範例,等到真正要寫程式時才發現一個很嚴重的 Bug : 不能 Copy/Paste ( 2.0 版是 CtrlCommand+C/CtrlCommand+V ,除了與一般使用方式不同外,拷貝後不能貼上才是最有問題,只好放棄!)
- 改用 1.8.19 後 Copy/Paste 就可以用了(Command+C/Command+V),只是仍有小問題,貼上時會重覆貼上(亦即貼兩次),至少比無法貼上來得好。
- 程式碼與影片一樣,只是線路接法略有不同。用了紅、藍 LED 各一及兩個 220 Ω 的電阻。
- 電路接線雖然簡單,三兩分鐘就接好,但套件裡細小的電阻只能靠色環來判讀,尤其是五色色環的電阻,那一端是第一環不能判斷錯誤,顏色因為電阻太細小,即使放大鏡下,紅與棕特別難分別,只好再祭出三用電錶配合才把套件裡的電阻分出來並標明:
- - 10pcs 電阻 (10R)
- - 10pcs 電阻 (100R)
- - 10pcs 電阻 (220R)
- - 10pcs 電阻 (330R)
- - 10pcs 電阻 (1K)
- - 10pcs 電阻 (2K)
- - 10pcs 電阻 (5K1)
- - 10pcs 電阻 (10K)
- - 10pcs 電阻 (100K)
- - 10pcs 電阻 (1M)
加了開關的版本
- 把上面的習作與【Arduino教學】實作03-按鈕教學 - YouTube 綜合在一起的練習。好在先前已看完 零基础入门学用Arduino-基础知识篇 - YouTube 整個系列影片,才能知道開關該如何插在麵包板上,系列中這支影片:零基础入门学用Arduino-基础知识篇-13 数字输入1 - 按键开关 - YouTube 非常仔細地說明開關四隻腳的接法,這才能第一次就插對(強烈推薦完全新手的人要實作前先看完這系列影片再去看其他的教學影片)。
- 程式碼:
const int buttonPin = 7;int buttonState = 0;void setup() {pinMode(11, OUTPUT);pinMode(12, OUTPUT);}void loop() {buttonState = digitalRead(buttonPin);if (buttonState == HIGH) {digitalWrite(11, HIGH);digitalWrite(12, LOW);delay(300);digitalWrite(11, LOW);digitalWrite(12, HIGH);delay(300);} else {digitalWrite(11, LOW);digitalWrite(12, LOW);delay(10);}}
遙控版:使用 ESP8266
- 開始時以為換成 ESP8266 ,使用 WI-FI 來遙控以取代麵包板上的開關會很簡單,把上述 7、11、12 腳位的導線改接到 ESP8266 不就可以了。
- 一查腳位,找到官網:Reference — ESP8266 Arduino Core documentation 看了就傻眼,根本看不懂,又是 GPIO+ 數字,又是印在電路板上的 D2,D3…….等等,眼花了!最後還是去 太极创客 – Arduino, ESP8266物联网的应用、开发和学习资料 找到這個說明:NodeMCU开发板详解 (第1章-第2节) – 太极创客 才明白該如何在程式裡填寫腳位:
- 因為D2對應的時GPIO4,所以也可以這麼寫:
- 不要使用GPIO6~GPIO 11
- 解決使用範例改為顯示中文產生亂碼的問題:
- 去 太极创客 – Arduino, ESP8266物联网的应用、开发和学习资料 找相關的說明:第3章 ESP8266-NodeMCU通过C/C++开发使用物联网 – 太极创客 ,看完還是沒有結果,只好請出 Google 大神,找到這篇文章:ESP8266(NodeMCU)+Arduino制作WiFi控制灯 - 代码先锋网 ,這段程式碼與範例的寫法比對:
- 把範例程式裡改成如紅色底線:
- 現在顯示中文沒有問題了:
- 整個電路除了開關拿掉外(10K 電阻仍要保留)其他不變,然後把原先接在 Arduino Uno Pin 7 的腳位改接到 ESP8266 的 D2 腳位;兩個 LED 燈原先接在 Arduino Uno Pin 11、12 的腳位改接到 ESP8266 的 D6、D7 腳位:
- 程式碼經過不斷地改寫,始終無法達到想要的方式:開啟 LED 燈能夠一直閃爍,要關閉時再按一個鍵即可。能夠做到開啟 LED 燈一直閃爍,但是關不掉,關鍵是一行 “req.indexOf(F(“/gpio/0”)) != -1” 不懂,放在 While 迴圈裡沒有用,因此無法跳出 While 迴圈,所以才關不掉:
- 影片裡現在使用的接線是更簡單的方式,只將兩個 LED 燈接在 ESP8266 的 D6、D7 腳位,然後把範例程式裡的內建 LED 改為這兩個腳位即可,其他照抄:
- 先宣告腳位:
- 根據接線的腳位,改動紅框裡的內容:
- 先宣告腳位:
- 或許等未來學習進度來到 ESP8266 時再來解決閃爍的問題。
2022.01.20 無意中在看到 attachInterrupt() – 太极创客 這個中斷函數,或許線路再多接一個腳位就可以從 While 迴圈跳出來,達成想要的遠端開啟 LED 燈後一直閃爍,也能再按一個鍵遠端關閉。
- 由於目前正在練習零基础入门学用Arduino-基础知识篇 - YouTube ,如下圖(已插上擴充版)麵包板插滿連接線,懶得拔掉,暫時先擱著:
- 底下找了幾個連結,留到要解決時再來參考:
沒有留言:
張貼留言
您可以留下意見,但 Luke 可能無法馬上回覆,尚請見諒。