上一篇,用 GPIO 直接供電給 LED,用高低電平作開關,不靠譜。GPIO 是信號用的,不是當電源用的。而且,一個 GPIO 只能給可憐的 5mA 左右,取多了會燒(我沒燒過不知道是不是真的會燒,但說明書上面是這樣寫)。這樣玩不過來,所以我做了以下三極體實驗。 2N3904 參數請點擊這裡。不推薦...
上一篇,用 GPIO 直接供電給 LED,用高低電平作開關,不靠譜。GPIO 是信號用的,不是當電源用的。而且,一個 GPIO 只能給可憐的 5mA 左右,取多了會燒(我沒燒過不知道是不是真的會燒,但說明書上面是這樣寫)。這樣玩不過來,所以我做了以下三極體實驗。
2N3904 參數請點擊這裡。不推薦這個,lcm 是 200mA,但我只有它,沒辦法。三極體,我當作開關用。
先用麵包板試一次:
我準備用 BBB 3.3V 取電,2N3904 ,lcm 200mA,就是 C 腳只能 200mA 上限,要用電阻降,我電阻種類不多,拿了個 24Ω 的,接 C 腳。我用 470Ω 把 3.3V 降到 7mA 模擬 GPIO 的高電平輸出,到 B 腳。此時接通電源後,B 腳高電平的話,E 腳大概 2.8V,再用150Ω 降到 19mA 左右給 LED(註:LED 超過 25mA 會燒毀)。下圖綠色線就是通過電阻接 B 腳的,拔掉就關燈。在麵包板上就這樣。
總的來說,瞎搞。接得亂七八糟。先用 BBB 試試再說吧。關閉電源情況下接線。P9_1 是 GND,P9_3 是 3.3V 電源,用 P9_13 (GPIO 號 31)作為控制信號輸出:
不太會用 Fritzing… 這個樣子的:
一開機你會發現,LED 亮著的。然後進去系統操作 sysfs ,如下:
當把 direction 改為 out 時候,燈就會熄滅,value 是零。把 value 調為 1,燈就再次亮起。想解決 direction 未調為 out 之前的燈亮問題的話,加一個下拉電阻就正常的了(把 B 腳通過電阻,比如 10K 吧,接到 GND)。
對於這個結果,本人表示不滿意。再來,這次丟掉那麻煩的三極體,改用繼電器:
這個是 3.3V,合適,另一邊能承受 AC 240V 7A,或者 DC 28V 10A。大部分繼電器都足夠玩的了,不過我這個是 3.3V,接 BBB 直接插,方便。
這實驗是想用 BBB 控制 5V DC 電路,先測試一下:
麵包板供電 5V,串連兩個 LED,再加個 47Ω電阻。點亮。這裡電流 21mA 已經接近 LED 能承受的極限(據說是 25mA,我看書上面說LED 正常工作電流是 18-20mA)。
然後接上繼電器和 BBB。我很怕毀了 BBB,所以還是加了個 470Ω 電阻 在 GPIO。我不確定不加這電阻會發生什麼事。 連接時當然要全部電源關閉。
繼電器控制那一側,VCC 接 BBB 的 3.3V,GND 接 BBB 的 GND,IN 信號口接 BBB 的 P9_13(GPIO 號31)。但註意繼電器的另一側的電路連接,必須按照廠家說明來接。一般來說,繼電器中間是接火線(正極),另外兩個口是常開負極和常閉負極。我是接了常閉的負極,就是說,上電後,未收到 BBB 的高電平信號前,LED 不會亮。
檢查無誤後,BBB 上電,麵包板上電。我這繼電器有指示燈,下圖的指示燈是代表控制方的電源已接通。
然後,操作 BBB:
對以上有疑惑的請看前幾篇關於 sysfs 的簡單操作。
當輸出高電平時候,echo 1 > gpio31/value 後,兩顆 LED 亮起:
當然,echo 0 > gpio31/value 的話,燈就熄滅。
到此為止,實驗成功。代碼不寫了。
這繼電器能用在 AC 220V 電路,不過我暫時沒想到要拆那個家電。要控制家電沒個 WiFi 不像 IoT,下一篇就是,ESP8266,¥12.5 一個,下一篇用 BBB 串口操作它,串口 AT 命令而已。