# 初遇 IoT ( Internet of Thing, 物聯網 ) - 使用 Arduino 控制 ESP8266 無線模組
但是在連上 WiFi 之前還有一個工作要完成 : 5V-3.3V 位準轉換. Arduino 一般工作在 5V, 它的 TX/RX 接腳不能直接與 ESP8266 的 TX/RX 相連, 否則可能會使 ESP8266 燒毀. 雖然我的 Arduino Pro Mini 可以在 3.3V 工作, 但考量 DHT11 或 PIR 感測器都是 5V 運作的, 所以還是做個 5V-3.3V 位準轉換器來介接好了.
露天有現成的位準轉換板, 價格為 $72, 參考 :
# 四通道雙向邏輯電壓準位(適用1.8V,2.8V,3.3V,5.0V )轉換模組(支援 I2C, SPI, 一般邏輯準位) $72
此板使用 N 通道 MOSFET (金氧半場效應電晶體) BSS138 作為開關, 我是用昨天向 ic_shopping 買的 2N7000 來做, 參考 :
# 使用 N-Channel MOSFET 做 I2C 電壓準位轉換電路
icshopping 5 顆賣 11 元, 平均一顆不到 3 元, 還蠻便宜的 :
# 2N7000 (TO-92) N通道 60V 400mA 1.2Ω MOSFET場效管(現貨) $3
# 2N7000 TO-92 N-Channel $8
# 《icshopping_com》2N7000TA TO-92 (5pcs) $11
2N7000 接腳如下圖, 從正面 (平面) 看, 最左邊是源極 (Source), 中間是閘極 (Gate), 最右邊是汲極 (Drain) :
位準轉換器的電路圖如下, 為了麵包板佈線方便, 我把電源方向調換了, 但 2N7000 是雙向開關, 所以功能不變. 右邊是單一通道的電路圖 (我是用 SchemeIt 畫的), 左邊是使用兩個 2N7000 與四個 4.7K 上拉電阻依右側線路圖連接而成的兩通道的位準轉換器, 上方是 5V 電源, 下方是 3.3V 電源, 2N7000 左右兩個接腳就是信號輸出入端 (VL 為 3.3V 低壓端, VH 為 5V 高壓端) :
學校電子學教過 MOSFET 的原理, 但印象已不深. 搜尋了網路資料溫習一下, 其實此電路原理很簡單. 當 VL=3.3V 時, FET 的 G 與 S 極都是 3.3V, 所以不會感應出 N 通道, 亦即電晶體不導通, VH 輸出 5V; 當 VL=0V 時, FET 的 S 極接地, 而 G 極為 3.3V, 會感應出 N 通道, FET 導通, 所以 D 極相當於與 S 極接在一起, 變成 0V, 反之若將 VH 當輸入, 當 VH=5V 時, D 極為 5V, G 極為 3.3V, 逆電壓造成 N 通道無法建立, FET 不導通, 所以 VL 會輸出 3.3V; 當 VH=0V 時, G 與 D 極之間為 3.3V 正壓差, 會感應出 N 通道使 S-D 導通, VL 輸出 0V.
分別將 VL 與 VH 當輸入, 接 0/3.3V 或 0/5V, 測量結果與理論相符, 證實此乃雙向的 I2C 電壓位準轉換器. 注意喔, 2N7000 的源極 S 要接低壓 3.3V 側, 而汲極 D 應接高壓 5V 側, 參考 :
# 使用 N-Channel MOSFET 做 I2C 電壓準位轉換電路
其實 5V-3.3V 位準轉換器也可以使用 74LVC245 晶片 (8 通道), 不過單價較高, 例如 Proteus 的賣場一顆是 52 元 :
# 74LVC245 - 八通道邏輯 ( 3V3, 5V ) 電壓準位轉換晶片 $52
此晶片提供 8 通道位準轉換, 而 Arduino 與 ESP8266 連接時只需要將 RX, TX 兩條線轉成 3.3V 準位而已, 所以使用一顆 74LVC245 似乎有點浪費. 還有一顆 74HC4050D 可代替 74LVC245, 比較便宜 NT$13, 但只有 SMD 封裝 (參考) :
# 《icshopping_com》74HC4050D $13
以上都是雙向電平轉換, 如果只是單向, 也可以用光耦合來做, 參考 :
# Simplest uni-directional level shifter (3.3V -> 5V)
可以使用 PC817/EL817/FL817 IC :
# PC817 DIP4 光耦合電晶體 光耦合IC 隔離控制 EL817 FL817 $2
20151003 補充 :
參考 :
# 2 cent TTL Level Shifter - connect a 3.3V Pi to 5V TTL serial device or Arduino and more...
20160815 補充 :
今天在 Youtube 看到有人用 TI 的 CD5060 這顆緩衝器 IC 來做 5/3.3 位準轉換 :
# https://www.youtube.com/watch?v=qU76yWHeQuw
# **東順網路** TEXAS IC CD4050BE $10
2017-04-27 補充 :
也有貼片式的 2N7002, 參考 :
# 2N7002 VISHAY SOT-23(10個)【3680105001354】電晶體.MOSFET $11
2020-06-13 補充:
感謝匿名網友留言, 關於 VH=0 時 MOS 導通是因為 BODY DIODE 的關係, 參考 :
# http://140.120.11.1/semicond/handout/chap4.pdf
3 則留言 :
電路運作部分講解的非常詳細!感謝分享:D
VH=0, 靠的是body diode 導通,沒有Vgd這東東
感謝您, 我再行修正.
張貼留言