基礎教程3 Arduino 一個按鈕怎麼控制電器開關?

現在可以解釋一下 delay(500) 消除抖動的原理。因為按鈕金屬片閉合瞬間,可能由於接觸不良或者手抖,在非常短的時間內,連續產生多個高電平的邏輯信號。如果沒有延時,當Arduino 執行了第一個 if 條件邏輯,但LED還沒有完全亮起來時,就進入下 if 條件邏輯滅掉了。

延伸閱讀:抖動這對一些精密電器來說是致命的,尤其對使用大量感性原件的電器,會產生高電壓震盪,破壞電路。所以加入延時,防止按下去的瞬間產生抖動,防抖動的時間設置在 0.5 到 1 秒之間即可。

現在疑問又來了,Arduino 驅動小 LED 完全沒問題,不過,如果是高電壓的大功率電器,如家用照明、電機呢?此時,我們需要繼電器的幫忙:

基礎教程3 Arduino 一個按鈕怎麼控制電器開關?

繼電器

不過,Arduino 的驅動電流較小,同時為了防止繼電器的感性電路對Arduino的影響,我們通過晶體管開關電路來驅動繼電器的線圈,接線如下:

基礎教程3 Arduino 一個按鈕怎麼控制電器開關?

但在航天、軍事等嚴苛的環境下,為了防止干擾、保證穩定性,一般會將數字電路跟模塊電路物理區隔的方式來連接,下面這款模塊就是通過光耦驅動繼電器,實現物理隔離:

基礎教程3 Arduino 一個按鈕怎麼控制電器開關?

帶光耦隔離的繼電器

模塊的接線方式是一樣的,通過繼電器就可以控制家用電器的開關了。

練習1:

希望各位不要僅僅照著教程去做,這樣沒有意義。Arduino 本質是一個創意玩具,用簡單的編程語言實現你的想法。嘗試結合第2課的內容做更多的花樣出來,我舉兩個例子:

a. 利用按鈕改變一排LED 流動方向。

b. 使用按鈕讓每個 LED 逐個亮起來。


分享到:


相關文章: