<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## **模擬信號與串口** > 本例向你展示如何從模擬信號輸入引腳讀模擬信號值、將讀出的值映射到0-255的范圍,并根據結果進行**PWM**來讓LED漸暗/漸亮以及打印結果到**Arduino IDE**上的**串口監視器**。 ### **所需硬件** * Arduino板Genuino板 * 電位器 * 紅色LED * 220Ω電阻 * 杜邦線 ### **電路** ![圖片來自官網](http://img.blog.csdn.net/20160505171637519)? 電位器一個引腳連接到5V,中間引腳連接到A0口,最后一個引腳連接到GND。? 接下來,在9號引腳連一個220Ω限流電阻并串接一個LED。(LED長腳(陽極)應連接到電阻,短腳(陰極)連接到GND)。 ### **原理圖** ![圖片來自官網](http://img.blog.csdn.net/20160505171652660) ### **代碼** 在下列代碼中。**setup**函數只做兩件事情:第一是定義了兩個引腳(A0給電位器,9號引腳給LED),以及兩個變量(**sensorValue**和**outputValue**)。第二是打開串口通信。 接下來,在主循環中,**sensorValue**被用來存儲來自電位器的原始模擬信號值。Arduino有一個返回值為0到1023的**analogRead**函數,以及一個參數為0-255的**analogWrite**函數。為了讓來自電位器的模擬信號值能正確操作LED,我們需要將值的范圍映射成0-255。 為了完成轉換,用map()函數即可: ~~~ outputValue = map(sensorValue, 0, 1023, 0, 255); ~~~ **outputValue**時刻與電位器映射后的值保持相等。**map()**函數有五個參數,依次是:要映射的原始值,原始值最小值,原始值最大值,映射后的最小值,映射后的最大值。這樣,傳感器返回的數據就能夠從其原來的0-1023被映射為0-255了。 接下來,新映射的傳感器數據就能會被輸出到**analogOutPin**來使LED在電位器轉動時漸亮/漸暗。最終,原始值和被映射到0-255的傳感器值將被輸出到Arduino IDE中。 ~~~ /* 模擬信號與串口 讀取模擬輸入引腳的值,并且將它映射到0-255。然后使用映射后的值來為輸出引腳設定脈寬(通過PWM)。 并將結果輸出到串口監視器。 電路搭建: * 電位器中間腳連接到A0。兩邊的引腳分別連接到+5V和GND. * LED連接數字引腳9到GND 示例代碼公開 */ // 常量的聲明定義,用作引腳定義 const int analogInPin = A0; // 電位器連接到的模擬輸入引腳 const int analogOutPin = 9; // LED連接的輸出引腳 //變量的聲明定義 int sensorValue = 0; // 從電位器讀到的值 int outputValue = 0; // PWM值 void setup() { // 初始化串口(波特率9600): Serial.begin(9600); } void loop() { // 讀取模擬輸入值: sensorValue = analogRead(analogInPin); // 映射模擬輸入值到0-255: outputValue = map(sensorValue, 0, 1023, 0, 255); // 改變模擬輸出值: analogWrite(analogOutPin, outputValue); // 結果輸出到串口監視器: Serial.print("sensor = "); Serial.print(sensorValue); Serial.print("\t output = "); Serial.println(outputValue); // 等兩毫秒以讓數模轉換器完成工作: delay(2); } ~~~ ### **相關資料**: [map()](http://www.arduino.cc/en/Reference/Map)? [analogRead()](http://www.arduino.cc/en/Reference/AnalogRead)? [analogWrite()](http://www.arduino.cc/en/Reference/AnalogWrite)? [serial()](http://www.arduino.cc/en/Reference/Serial)?
                  <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>

                              哎呀哎呀视频在线观看