干簧開關(guān)用于許多現(xiàn)實(shí)生活中的應(yīng)用,如磁性門開關(guān)、筆記本電腦、智能手機(jī)等。在本文中,我們將了解干簧開關(guān),并指導(dǎo)您將干簧開關(guān)與Arduino連接。
干簧開關(guān)
干簧開關(guān)基本上是一種電氣開關(guān),當(dāng)磁場(chǎng)靠近它時(shí)會(huì)起作用。它是由W.B. Ellwood于1936年在貝爾實(shí)驗(yàn)室發(fā)明的。它由兩個(gè)小金屬片組成,在真空下保存在玻璃管內(nèi)。在典型的磁簧開關(guān)中,兩個(gè)金屬片將由鐵磁材料制成,并覆蓋有銠或釕,以延長(zhǎng)使用壽命。當(dāng)開關(guān)周圍存在磁場(chǎng)時(shí),開關(guān)將被激活。
兩個(gè)金屬件的玻璃外殼可保護(hù)它們免受污垢、灰塵和其他顆粒的侵害。干簧開關(guān)可以在任何環(huán)境中操作,例如存在易燃?xì)怏w的環(huán)境或腐蝕會(huì)影響開路開關(guān)觸點(diǎn)的環(huán)境。
有兩種類型的磁簧開關(guān)。
常開簧片開關(guān)
常閉簧片開關(guān)
在常開磁簧開關(guān)中,開關(guān)在沒有磁場(chǎng)的情況下斷開,在有磁場(chǎng)的情況下閉合。在磁場(chǎng)存在下,玻璃管內(nèi)的兩個(gè)金屬觸點(diǎn)相互吸引而接觸。
在常閉磁簧開關(guān)中,開關(guān)在沒有磁場(chǎng)的情況下閉合,在有磁場(chǎng)的情況下打開。
干簧開關(guān)的應(yīng)用
用于電話交換機(jī)
在筆記本電腦中,如果蓋子合上,則使屏幕進(jìn)入睡眠狀態(tài)
用于防盜報(bào)警系統(tǒng)中的門窗傳感器
所需組件
Arduino Uno
干簧開關(guān)
發(fā)光二極管
磁鐵
連接線
Arduino 干簧開關(guān)電路圖
干簧開關(guān)與Arduino的工作原理
阿杜伊諾Uno是一款基于ATmega328p微控制器的開源微控制器板。它具有 14 個(gè)數(shù)字引腳(其中 6 個(gè)引腳可用作 PWM 輸出)、6 個(gè)模擬輸入、板載穩(wěn)壓器等。Arduino Uno具有32KB閃存,2KB的SRAM和1KB的EEPROM。它的工作時(shí)鐘頻率為16MHz。 Arduino Uno支持串行,I2C,SPI通信,用于與其他設(shè)備通信。下表顯示了Arduino Uno的技術(shù)規(guī)格。
微控制器 | ATmega328p |
工作電壓 | 5V |
輸入電壓 | 7-12V(推薦) |
數(shù)字 I/O 引腳 | 14 |
模擬引腳 | 6 |
閃存 | 32KB |
SRAM | 2KB |
電丙胺 | 1KB |
時(shí)鐘速度 | 16兆赫 |
為了將干簧開關(guān)與Arduino連接,我們需要構(gòu)建一個(gè)分壓器電路,如下圖所示。開關(guān)斷開時(shí)Vo為+5V,閉合時(shí)Vo為0V。我們?cè)谶@個(gè)項(xiàng)目中使用常開簧片開關(guān)。開關(guān)在有磁場(chǎng)的情況下閉合,在沒有磁場(chǎng)的情況下打開。
代碼說明
本文末尾給出了此Arduino簧片開關(guān)項(xiàng)目的完整代碼。代碼被分成有意義的小塊,并在下面解釋。
在代碼的這一部分中,我們必須定義連接到Arduino的干簧開關(guān)和LED的引腳。干簧開關(guān)連接到Arduino的數(shù)字引腳4,LED通過限流電阻連接到Arduino的數(shù)字引腳7。變量“reed_status”用于保存簧片開關(guān)的狀態(tài)。
int LED = 7;
int reed_switch = 4;
int reed_status;
在代碼的這一部分中,我們必須設(shè)置連接LED和簧片開關(guān)的引腳的狀態(tài)。引腳編號(hào) 4 設(shè)置為輸入,引腳編號(hào) 7 設(shè)置為輸出。
void setup()
{
pinMode(LED, OUTPUT);
pinMode(reed_switch, INPUT);
}
接下來,我們必須讀取簧片開關(guān)的狀態(tài)。如果等于 1,則開關(guān)打開,LED 熄滅。如果等于 0,則關(guān)閉開關(guān),我們必須打開 LED。此過程每秒重復(fù)一次。此任務(wù)由以下代碼的這一部分完成。
void loop()
{
reed_status = digitalRead(reed_switch);
if (reed_status == 1)
digitalWrite(LED, LOW);
else
digitalWrite(LED, HIGH);
delay(1000);
}
-
Arduino
+關(guān)注
關(guān)注
188文章
6469瀏覽量
186967 -
干簧開關(guān)
+關(guān)注
關(guān)注
0文章
52瀏覽量
3232
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論