<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## **用壓電元件檢測振動** > 本例向你展示如何使用一個**壓電元件**來檢測震動。(壓電元件有很多種應用,蜂鳴器就是一種,但是這里不是”正向”使用壓電元件,而是利用其電路特性“逆向”使用。即原來是通電產生振動,振動發聲,現在是振動產生電流,通過電流判斷振動。)本例向你展示如何使用壓電元件來進行振動的檢測,你可以用本例的方法來對敲門、敲桌子、或者敲其他固體表面的振動進行識別。 當壓電元件因為聲波、機械擾動或振動產生形變時,會產生壓差。而相反,如果你給壓電元件加電壓,它就會產生振動。由此可知,壓電元件既可以由電產生振動,又可以由振動生電。 本例不斷使用analogRead() 讀取壓電揚聲器兩端電壓,并且將探測到的電壓(0-5V)通過**數模轉換技術**?**(ADC)**映射成為數字(0-1023)。 如果壓電元件的輸出超過了一定極限值(表明振動達到了一定強度)你的板子就會通過串口輸出“檢測到振動!”這一字符串到電腦。 你需要打開串口監視器來看到效果。 ### **所需硬件** * Arduino板或Genuino板 * 壓電元件 * 1mΩ電阻 * 用作敲擊的固體表面 * 連接線 ### **電路** ![圖片來自官網](http://img.blog.csdn.net/20160622140614271)? 壓電元件是有極性的,就是說電勢總是一側高一側低,如果加上外電路,那么電流總是從一側流向另一側。? 將黑色線(通常電勢較低的一級)連接到GND。將紅色線(通常電勢較高的一級)連接到A0口。還要并聯一個1mΩ的電阻,以保證過大電流不會損壞A0口。? 你可以去掉壓電元件的塑料外殼。這樣它能夠更好地接收到外部的振動。請將壓電元件粘在被測表面,并且適當用力按壓、敲擊以讓它更好地檢測到振動。 ### **原理圖** ![圖片來自官網](http://img.blog.csdn.net/20160622140656753) ### **代碼** 在下列代碼中,從壓電元件讀出的值會和你設定的極限值做比較。你可以嘗試增加/減少極限值來調整對振動的敏感度。 ~~~ /* 用壓電元件檢測振動 本例通過讀取壓電元件來對敲擊進行檢測。代碼將讀取壓電元件的數值并且將它與極限值進行比較。 如果結果大于極限值,就會輸出"檢測到振動"到串口監視器。13號引腳的板載LED也會隨之點亮。 電路搭建: * 壓電元件陽極(+)連接A0 * 壓電元件陰極(-)連接GND * 1mΩ電阻連接A0和GND 代碼公開 */ // 常量: const int ledPin = 13; // 13號引腳連接LED const int knockSensor = A0; // 壓電元件 const int threshold = 100; // 極限值,用于檢測是否有振動 // 可變量: int sensorReading = 0; // 存儲值的變量 int ledState = LOW; // 存儲LED狀態量 void setup() { pinMode(ledPin, OUTPUT); // 將ledPin聲明為OUTPUT模式 Serial.begin(9600); // 串口 } void loop() { // 讀取傳感器的值并且存入sensorReading變量: sensorReading = analogRead(knockSensor); // 如果sensorReading超過了極限值: if (sensorReading >= threshold) { // 改變ledPin的狀態: ledState = !ledState; // 根據狀態點亮/關閉: digitalWrite(ledPin, ledState); // 輸出消息"檢測到振動!" 并且換行 Serial.println("檢測到振動!"); } delay(100); // 延遲100毫秒保持串口穩定性 } ~~~ ### **相關資料** [pinMode()](https://www.arduino.cc/en/Reference/PinMode)? [analogRead()](https://www.arduino.cc/en/Reference/AnalogRead)? [if()](https://www.arduino.cc/en/Reference/If)? [serial.begin()](https://www.arduino.cc/en/Serial/Begin)? [serial.print()](https://www.arduino.cc/en/Serial/Print)? [原文鏈接](http://www.arduino.cc/en/Tutorial/Knock)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看