自適應(yīng)網(wǎng)站什么意思網(wǎng)絡(luò)營銷策劃ppt
實驗16 模擬霍爾傳感器實驗
【實驗介紹】
基于霍爾效應(yīng),霍爾傳感器是響應(yīng)于磁場而改變其輸出電壓的傳感器?;魻杺鞲衅饔糜诮咏_關(guān),定位,速度檢測和電流檢測應(yīng)用。
霍爾傳感器可以分為模擬霍爾傳感器和開關(guān)霍爾傳感器由電壓調(diào)節(jié)器,霍爾元件,差分放大器,施密特觸發(fā)器和輸出端子組成,輸出布爾值(0/1),模擬霍爾傳感器由霍爾元件線性放大器和射極跟隨器組成,輸出模擬值。如果在模擬霍爾傳感器上增加比較器就可以組成數(shù)字開關(guān)霍爾傳感器和模擬霍爾傳感器一體,它可以輸出模擬值和數(shù)字信號。
【實驗組件】
● Arduino Uno主板* 1
● USB數(shù)據(jù)線*1
● 模擬數(shù)字霍爾傳感器模塊* 1
● 面包板*1
● 磁鐵*1
● 9V方型電池*1
● 跳線若干
【實驗原理】
霍爾效應(yīng)是一種電磁效應(yīng)。它在1879年由Edwin Hal發(fā)現(xiàn),當(dāng)時他正在研究有關(guān)金屬的傳導(dǎo)機制。當(dāng)導(dǎo)體通過均勻的磁場時可以看到效果。載流子的自然電子漂移導(dǎo)致磁場對這些載流子施加洛倫茲力(施加在電磁場中帶電粒子上的力)。結(jié)果就是所謂的電荷分離,在底部或頂部積聚了正電荷或負電荷。
霍爾傳感器是基于它的磁場傳感器。
通過導(dǎo)體傳輸?shù)碾娏鲿a(chǎn)生隨電流變化的磁場,霍爾傳感器可用于測量電流而不中斷電路。通常,傳感器與圍繞待測導(dǎo)體的繞線芯或永磁體集成。
在這個實驗中,當(dāng)傳感器接近磁體時,引腳A0的值將改變。當(dāng)該值超過電位器設(shè)定的閾值之前,D0將輸出低電平,相應(yīng)的LED亮起。
模擬霍爾傳感器模塊的原理圖
【實驗內(nèi)容】
第一步:建立電路
第二步:程序
第三步:編譯
第四步:將程序上傳至Arduino Uno板
代碼如下:
//Analog Hall Sensor//using an LM393 Low Power Low Offset Voltage Dual Comparator/*******************************\* Analog Hall Sensor Uno R3\* A0 A0\* D0 7\* VCC 5V\* GND GND*******************************/const int ledPin = 13;//the led attach to pin13int sensorPin = A0; // select the input pin for the potentiometerint digitalPin=7; //D0 attach to pin7int sensorValue = 0;// variable to store the value coming from A0boolean digitalValue=0;// variable to store the value coming from pin7void setup() {pinMode(digitalPin,INPUT);//set the state of D0 as INPUTpinMode(ledPin,OUTPUT);//set the state of pin13 as OUTPUTSerial.begin(9600); // initialize serial communications at 9600 bps}void loop() { sensorValue = analogRead(sensorPin); //read the value of A0digitalValue=digitalRead(digitalPin); //read the value of D0Serial.print("Sensor Value "); // print label to serial monitor Serial.println(sensorValue); //print the value of A0Serial.print("Digital Value "); // print label to serial monitor Serial.println(digitalValue); //print the value of D0 in the serialif( digitalValue==HIGH )//if the value of D0 is HIGH{digitalWrite(ledPin,LOW);//turn off the led}if( digitalValue==LOW)//else{digitalWrite(ledPin,HIGH);//turn on the led}delay(1000);//delay 200ms}
【實驗結(jié)果】
現(xiàn)在將磁鐵靠近霍爾傳感器。D0的電壓從高到低變化,然后傳感器上的LED和接到Arduino Uno的引腳13的LED亮起,如圖所示:
【實驗體會】
通過本次實驗,我對模擬霍爾傳感器的工作原理以及數(shù)字輸出的應(yīng)用有了更清晰的認識。
實驗中,我們采用了LM393低功耗低偏移電壓雙比較器與Arduino Uno主板。把模擬霍爾傳感器的輸出引腳連接到Arduino Uno主板的A0引腳,數(shù)字輸出引腳連接到7號引腳,以此實現(xiàn)對LED的控制。
在程序方面,首先讀取A0引腳的模擬值并存儲在sensorValue變量中,接著讀取D0引腳的數(shù)字值存于digitalValue變量中,隨后將這兩個變量的值打印到串口監(jiān)視器上,這樣就能觀察傳感器數(shù)值和數(shù)字輸出狀態(tài)。
之后,利用條件語句判斷digitalValue的值。當(dāng)digitalValue為高電平時,將ledPin設(shè)為低電平以關(guān)閉LED;若digitalValue為低電平,則把ledPin設(shè)為高電平來打開LED。
通過這個實驗,我更加深入地理解了模擬霍爾傳感器和數(shù)字輸出的應(yīng)用。并且,我還學(xué)會了運用Arduino Uno主板控制其他組件的方法。此實驗對我的學(xué)習(xí)和實踐應(yīng)用具有很大的助力。