來個最簡單的程式Blink吧,請注意,nodeMCU的腳位要看正面的腳位名稱。要加上D,背面的GPIO#,切勿搞混。
閃爍的LED是在天線(D0)附近的那顆。
Devkit 0.9與1.0腳位定義有不同,ESP-12E多了6支引腳。
NodeMcu Devkit 1.0 = ESP-12E + CP2102
NodeMcu Devkit 0.9 = ESP-12 + CH340G
需要定時存檔,以免檔機後,造成檔案的損毀
基於ESP-12E開發的電機驅動擴展板。
特色:
L293D
產品技術規格
電源輸入:
驅動形式:雙路大功率H橋驅動
模塊重量:約20g
注意事項
參考網頁:http://nodemcu-motor.doit.am/
motorA:(左輪)
motorB:(右輪)
請問上面兩個程式碼的差別。
一輪停止,一輪前進的轉法
一輪前進,一輪後退的轉法
如右圖先把NodeMcu當作AP登入, 其SSID可以看車子上面的號碼.
上傳後
使用串列視窗查看,可以看到是否成為AP,同時可以看到它的IP
接下來,開始利用Page web Editor編排網頁內容
這個AP的SSID,是剛才所設定SSID的名稱
所使用IP為192.168.4.1
接下來就可以使用這個按鈕來控制LED是否開啓
建立數位型變數(HIGH/LO,1/0)
那來試看看如何改寫成馬達控制
可以試著控制兩輪
利用一個Switch來控制馬達是動作
可以利用下面的流程圖來看,利用條件式的true/false來分別進行前進與停止的程式碼。
所以,我們可以開始一鍵控制小車前進或後退了嗎?
我們可以用二個IF/else來控制嗎?
當然是不行啊!
因為如果執行前進的程式碼時,在下一段的if/else的程式碼中, else有一個STOP的程式碼,會讓令小車停止,根本不會執行前進的部分。所以要用下一個程式結構來解決這個問題。
一層一層包下去的概念,利用else區塊,來進行"分流"的動作,而不會像上面程式結構所造成的錯誤影響。
程式開始變大之後,為了閱讀容易起見,所以,我們要試著簡化程式碼。
注意:switch的名稱不可以和副程式相同.
如果換成了button的話,他們的動作差別在??
所以有二種不同的按鈕和開關動作。
建立整數/數位變數
如右圖,可以利用滑軸來決定車子的動力大小。
但要很快地控制車子的停止,就要花點時間滑動滑軸。所以,我們能否利用上面的IF/else的方式,來進行控制車子的快慢呢?
所以,可以把滑桿的數值,設定一個叫pwmA的整數變數,我們接下來就可以利用這個整數變數進行控制。
利用IF/else的方式來改變pwmA的數值大小,即可快速進行車子的速度改變。
確認是否有連上網,並分配到IP
再來做個簡單的WIFI遙控器吧,可以把nodeMCU當作網頁伺服器,來遙控LED.
上傳之後,開啓瀏覽器,依開啟串列視窗所示鍵入網址:
點擊按鈕,可以控制LED.
除了控制LED,也是監視溫度喔!
有類比和數位的差別
類比:接到AD ,而不是A0
數位:
檢查超音波:
寫一個笨蛋程式確定超音波是否能正常工作。
如果超音波感測器無法正常工作,可以先檢查下超音波接線,一共有四個腳位:
Vcc,Trig,Echo,GND
Vcc-->接中間腳位
Trig-->7號腳位,靠控制板的位置.
Echo-->8號腳位,靠控制板的位置.
GND-->接外面腳位
檢查馬達
1.寫"笨蛋"程式 ,來測一下馬達會不會動
如果馬達還不動,可能就是馬達或馬達驅動板有問題了.
所以結合上述兩個笨蛋程式,確定超音波和馬達是否正常.
下面這個程式,就是我們每次一上課時,用來檢測車子的超音波和馬達是否能正常工作的程式。
接下來就是檢查電池是否有電,可以先用電表,選取適合的檔位,請選擇直流電壓檔20V
用探棒量取電池盒紅黑線所連接的端子台
正常來說電壓應該在7V上下,如果低6.4V,表示電池可能沒電了,需要進行更換電池。
那個別量測時,可以確認一下單一電池電壓需在3.2V以上.