您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>傳感器>

Android開發(fā)學(xué)習(xí)之路--磁傳感器

2018年10月07日 11:54 網(wǎng)絡(luò)整理 作者:工程師譚軍 用戶評(píng)論(0
  磁傳感器
?
  磁傳感器是把磁場、電流、應(yīng)力應(yīng)變、溫度、光等外界因素引起敏感元件磁性能變化轉(zhuǎn)換成電信號(hào),以這種方式來檢測相應(yīng)物理量的器件。
?
  磁傳感器廣泛用于現(xiàn)代工業(yè)電子產(chǎn)品中以感應(yīng)磁場強(qiáng)度來測量電流、位置、方向等物理參數(shù)。在現(xiàn)有技術(shù)中,有許多不同類型的傳感器用于測量磁場和其他參數(shù)。
?
  磁傳感器是把磁場、電流、應(yīng)力應(yīng)變、溫度、光等外界因素引起敏感元件磁性能變化轉(zhuǎn)換成電信號(hào),以這種方式來檢測相應(yīng)物理量的器件。磁傳感器分為三類:指南針、磁場感應(yīng)器、位置傳感器。指南針:地球會(huì)產(chǎn)生磁場,如果你能測地球表面磁場就可以做指南針。電流傳感器:電流傳感器也是磁場傳感器。電流傳感器可以用在家用電器、智能電網(wǎng)、電動(dòng)車、風(fēng)力發(fā)電等等。位置傳感器: 如果一個(gè)磁體和磁傳感器相互之間有位置變化,這個(gè)位置變化是線性的就是線性傳感器,如果轉(zhuǎn)動(dòng)的就是轉(zhuǎn)動(dòng)傳感器。
?
  大生活中用到很多磁傳感器,比如說指南針,電腦硬盤、家用電器等等。
?
  在傳統(tǒng)產(chǎn)業(yè)改造中的應(yīng)用及市場
?
  據(jù)報(bào)道,1995年僅工業(yè)過程控制傳感器的全球市場已達(dá)到260億美元;2001年計(jì)算機(jī)HDD用SV-GMR磁頭的市場超過了4000億日元(約合34億美元)。若采用新型微型磁傳感器,既使操作更簡便,又提高了可靠性,增長了器件壽命,降低了成本。
?
  使用新型磁傳感器可以顯著提高測量和控制精度,如使用GMI(巨磁阻抗)磁場傳感器,檢測分辨率和常用磁通門磁強(qiáng)計(jì)一樣,而響應(yīng)速度卻快了一倍,消耗功率僅為后者的1%;若用霍爾器件,其分辨率僅4A/m,而所需外場比前者高300余倍;在應(yīng)力檢測中,SI 傳感器的靈敏度是常用電阻絲的2000倍高,是半導(dǎo)體應(yīng)變規(guī)的20~40倍。工業(yè)機(jī)床的油壓或氣壓汽缸活塞位置檢測,廣泛采用套在活塞桿上的永磁環(huán)和AMR元件組成的磁傳感器,檢測精度達(dá)0.1mm,檢測速度可在0~500mm/s內(nèi)以高低速度變換;改用GMI或SV-GMR傳感器后,測量精度至少可以提高1個(gè)數(shù)量級(jí)。在機(jī)床數(shù)控化時(shí)代,數(shù)字磁尺幫助設(shè)計(jì)師們實(shí)現(xiàn)了閉環(huán)控制。使用絕對(duì)信號(hào)輸出的磁尺,則不受噪聲、電源電壓波動(dòng)等干擾,也不必原點(diǎn)復(fù)位。使用工作狀態(tài)磁敏開關(guān),還可以完成手動(dòng)與數(shù)控之間的轉(zhuǎn)換。
?
  旋轉(zhuǎn)磁編碼器在旋轉(zhuǎn)量的檢測控制中起關(guān)鍵作用,它在數(shù)控機(jī)床、機(jī)器人、工廠自動(dòng)化設(shè)備的位置檢測、傳輸速度控制,磁盤、打印機(jī)之類的自動(dòng)化設(shè)備通訊設(shè)備的旋轉(zhuǎn)量檢測中都是不可缺少的重要部件。其檢測對(duì)象是光磁圖形,不受油霧粉塵的影響,因此比目前最先進(jìn)的光編碼器的可靠性高壽命長,尤其適合于自動(dòng)焊接、油漆機(jī)器人和與鋼鐵有關(guān)的位置檢測以及各種金屬、木材、塑料等加工行業(yè)的應(yīng)用。而仍大量使用光編碼器,由于這種器件易受粉塵、油污和煙霧的影響,用在自動(dòng)焊接、油漆機(jī)器人、紡織和鋼鐵、木料、塑料等的加工中,可靠性極差。應(yīng)用AMR、GMR 、GMI敏感元件構(gòu)成的旋轉(zhuǎn)磁編碼器,就不存在上述缺點(diǎn),因此,它們的市場需求年增長率在30%以上。在家用電器和節(jié)能產(chǎn)品中也也有其廣泛的應(yīng)用潛力,在節(jié)能環(huán)保產(chǎn)品中也大有用武之地。若使用微型磁編碼器和控制微機(jī)一體化,更有利于簡化控制系統(tǒng)結(jié)構(gòu),減少元件數(shù)和占空體積,這在精密制造和加工業(yè)中意義十分重大。
?
  在環(huán)境監(jiān)測中的應(yīng)用
?
  環(huán)境保護(hù)的前提是對(duì)各個(gè)環(huán)境參數(shù)(溫度、氣壓、大氣成份、噪聲。..。..。)的監(jiān)測,這里需要使用多種大量的傳感器。采用強(qiáng)磁致伸縮非晶磁彈微型磁傳感器,可以同時(shí)測量真空或密閉空間的溫度和氣壓,而且不用接插件,可以遙測和遠(yuǎn)距離訪問。在食品包裝、環(huán)境科學(xué)實(shí)驗(yàn)等方面,應(yīng)用前景廣闊。
?
  在交通管制中的應(yīng)用
?
  交通事故和交通阻塞是城市中和城市間交通存在的一個(gè)大問題。國內(nèi)外都在加強(qiáng)高速公路行車支持道路系統(tǒng)(AHS)、智能運(yùn)輸系統(tǒng)(ITS)和道路交通信息系統(tǒng)(VICS)等的開發(fā)與建設(shè)。在這些新系統(tǒng)中,高靈敏度、高速響應(yīng)微型磁傳感器大有用武之地。例如,用分辨率可達(dá)1nT的GMI和SI傳感器,可構(gòu)成ITS傳感器(作高速路上的道路標(biāo)志,測車輪角度,貨車近接距離),汽車通過記錄儀(測通行方向、速度、車身長度、車種識(shí)別),停車場成批車輛傳感器,加速度傳感器(測車輛通過時(shí)路橋的振動(dòng)等)。
?
  磁傳感器在電子羅盤中的應(yīng)用
?
  幾個(gè)世紀(jì)以來,人們在導(dǎo)航中一直使用磁羅盤。有資料顯示早在二千多年前中國人就開始使用天然磁石-一種磁鐵礦來指示水平方向。電子羅盤(數(shù)字羅盤,電子指南針,數(shù)字指南針)是測量方位角(航向角)比較經(jīng)濟(jì)的一種電子儀器。如今電子指南針廣泛應(yīng)用于汽車和手持電子羅盤,手表,手機(jī),對(duì)講機(jī),雷達(dá)探測器,望遠(yuǎn)鏡,探星儀,穆斯林麥加探測器(穆斯林鐘),手持 GPS 系統(tǒng),尋路器,武器/導(dǎo)彈導(dǎo)航( 航位推測 ),位置/方位系統(tǒng),安全/定位設(shè)備,汽車、航海和航空的高性能導(dǎo)航設(shè)備,電子游戲機(jī)設(shè)備等需要方向或姿態(tài)顯示的設(shè)備。
?
  地球本身是一個(gè)大磁鐵,地球表面的磁場大約為0.5Oe,地磁場平行地球表面并始終指向北方。利用GMR薄膜可做成用來探測地磁場的傳感器。圖5顯示這種傳感器的具體工作原理。我們可以制出能夠探測磁場X和Y方向分量的集成GMR傳感器。此傳感器可作為羅盤并應(yīng)用在各種交通工具上作為導(dǎo)航裝置。美國的NVE公司已經(jīng)把GMR傳感器用在車輛的交通控制系統(tǒng)上。例如,放置在高速公路邊的GMR傳感器可以計(jì)算和區(qū)別通過傳感器的車輛。如果同時(shí)分開放置兩個(gè)GMR傳感器,還可以探測出通過車輛的速度和車輛的長度,當(dāng)然GMR也可用在公路的收費(fèi)亭,從而實(shí)現(xiàn)收費(fèi)的自動(dòng)控制。另外高靈敏度和低磁場的傳感器可以用在航空、航天及衛(wèi)星通信技術(shù)上。大家知道,在軍事工業(yè)中隨著吸波技術(shù)的發(fā)展,軍事物件可以通過覆蓋一層吸波材料而隱蔽,但是它們無論如何都會(huì)產(chǎn)生磁場,因此通過GMR磁場傳感器可以把隱蔽的物體找出來。當(dāng)然,GMR磁場傳感器可以應(yīng)用在衛(wèi)星上,用來探測地球表面上的物體和底下的礦藏分布。
?
  門磁傳感器在智能家居中的應(yīng)用
?
  在智能家居門禁系統(tǒng)中門磁開關(guān)的作用是負(fù)責(zé)門磁通電否,通電帶磁(閉門),斷電消磁(開門),門磁安裝于門與門套上,開關(guān)安裝于屋內(nèi),配合自動(dòng)閉門器使用,一般可承受150公斤的拉力。
?
  有線門磁為嵌入式安裝更加隱蔽,感應(yīng)門窗的開合,適用于木質(zhì)或鋁合金門窗發(fā)出有線常閉/常開開關(guān)信號(hào)。門磁是用來探測門、窗、抽屜等是否被非法打開或移動(dòng)。它由無線發(fā)射器和磁塊兩部分組成。門磁系統(tǒng)其實(shí)和床磁等原理相同。

  說到傳感器,還是有很多的,有加速度啊,光照啊,磁傳感器等等。當(dāng)然android手機(jī)之所以稱為智能手機(jī),少不了這幾款傳感器的功勞了。下面就學(xué)習(xí)下了,這里主要學(xué)習(xí)光照,加速度和磁。

  新建工程emSensorStudy,布局如下:

  《?xml version=“1.0” encoding=“utf-8”?》

  《LinearLayout

  xmlns:android=“http://schemas.android.com/apk/res/android”

  xmlns:tools=“http://schemas.android.com/tools”

  android:layout_width=“match_parent”

  android:layout_height=“match_parent”

  android:orientation=“vertical”

  android:layout_margin=“5dp”

  tools:context=“com.jared.emsensorsstudy.MainActivity”》

  《TextView

  android:text=“Hello Sensors”

  android:layout_gravity=“center”

  android:layout_width=“wrap_content”

  android:layout_height=“wrap_content”

  android:textSize=“22dp”/》

  《Button

  android:id=“@+id/startLightSensor”

  android:layout_width=“match_parent”

  android:layout_height=“wrap_content”

  android:text=“啟動(dòng)LightSensor”

  android:textAllCaps=“false”/》

  《Button

  android:id=“@+id/startAccelerSensor”

  android:layout_width=“match_parent”

  android:layout_height=“wrap_content”

  android:text=“啟動(dòng)AccelerSensor”

  android:textAllCaps=“false”/》

  《Button

  android:id=“@+id/startMagneticSensor”

  android:layout_width=“match_parent”

  android:layout_height=“wrap_content”

  android:text=“啟動(dòng)MagneticSensor”

  android:textAllCaps=“false”/》

  《/LinearLayout》

  添加LightSensor,AccelerSensor,MagnetiSensor的Activity,修改MainActivity代碼如下:

  package com.jared.emsensorsstudy;

  import android.content.Intent;

  import android.os.Bundle;

  import android.support.v7.app.AppCompatActivity;

  import android.view.View;

  import android.widget.Button;

  public class MainActivity extends AppCompatActivity {

  private Button startLightSensorBtn;

  private Button startAccelerSensorBtn;

  private Button startMagneticSensorBtn;

  @Override

  protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);

  startLightSensorBtn = (Button)findViewById(R.id.startLightSensor);

  startAccelerSensorBtn = (Button)findViewById(R.id.startAccelerSensor);

  startMagneticSensorBtn = (Button)findViewById(R.id.startMagneticSensor);

  startLightSensorBtn.setOnClickListener(new myOnClickListener());

  startAccelerSensorBtn.setOnClickListener(new myOnClickListener());

  startMagneticSensorBtn.setOnClickListener(new myOnClickListener());

  }

  private class myOnClickListener implements View.OnClickListener {

  @Override

  public void onClick(View view) {

  switch (view.getId()) {

  case R.id.startAccelerSensor:

  Intent intent1 = new Intent(getApplicationContext(), AccelerSensor.class);

  startActivity(intent1);

  break;

  case R.id.startLightSensor:

  Intent intent2 = new Intent(getApplicationContext(), LightSensor.class);

  startActivity(intent2);

  break;

  case R.id.startMagneticSensor:

  Intent intent3 = new Intent(getApplicationContext(), MagneticSensor.class);

  startActivity(intent3);

  break;

  default:

  break;

  }

  }

  }

  }

  先要實(shí)現(xiàn)Light的功能,先修改布局如下:

  《?xml version=“1.0” encoding=“utf-8”?》

  《LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

  xmlns:tools=“http://schemas.android.com/tools”

  android:layout_width=“match_parent”

  android:layout_height=“match_parent”

  android:layout_margin=“10dp”

  tools:context=“com.jared.emsensorsstudy.LightSensor”》

  《TextView

  android:id=“@+id/light_level”

  android:layout_gravity=“center”

  android:layout_width=“wrap_content”

  android:layout_height=“wrap_content”

  android:textSize=“22dp”/》

  《/LinearLayout》

  簡單地實(shí)現(xiàn)了一個(gè)textview用來顯示光照強(qiáng)度。接著修改LightSensor代碼如下:

  package com.jared.emsensorsstudy;

  import android.content.Context;

  import android.hardware.Sensor;

  import android.hardware.SensorEvent;

  import android.hardware.SensorEventListener;

  import android.hardware.SensorManager;

  import android.os.Bundle;

  import android.support.v7.app.AppCompatActivity;

  import android.widget.TextView;

  public class LightSensor extends AppCompatActivity {

  private SensorManager sensorManager;

  private TextView lightLevel;

  @Override

  protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_light_sensor);

  lightLevel = (TextView)findViewById(R.id.light_level);

  initWithLight();

  }

  @Override

  protected void onDestroy() {

  super.onDestroy();

  if(sensorManager != null) {

  sensorManager.unregisterListener(listener);

  }

  }

  public void initWithLight() {

  sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);

  Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

  sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL);

  }

  private SensorEventListener listener = new SensorEventListener() {

  @Override

  public void onSensorChanged(SensorEvent sensorEvent) {

  float value = sensorEvent.values[0];

  lightLevel.setText(“Currrent light level is ”+value+“l(fā)x”);

  }

  @Override

  public void onAccuracyChanged(Sensor sensor, int i) {

  }

  };


非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

( 發(fā)表人:金巧 )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?