<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Arduino實現映射功能的過程

科技觀察員 ? 來源:DevicePlus ? 作者:DevicePlus ? 2022-04-01 17:08 ? 次閱讀

前言

您可能注意到了,盡管互連電子設備采用不同單位,有不同的上限和下限,但在它們的工作范圍內始終是兼容的。例如,在Playstation 4上玩電子游戲時,當您將搖桿一直拉到右邊時,它會轉換為角色向右的最大移動量。我們可以看到,搖桿的移動范圍與角色的移動范圍是匹配的。在不同階段校準范圍的這個過程稱為“映射”。

映射過程通常用于根據期望的驅動來校準來自傳感器的輸入值。例如,現代汽車中采用電子方向盤的情況,當方向盤旋轉720度時,車輪大約會轉動40度。因此,我們可以看到,0-720度的范圍被電子方向盤使用的電子控制系統映射為0-40度。這種電子控制系統會結合使用微控制器PLC。微控制器上必須有模擬輸入,可以通過PWM或數字引腳來映射所需的驅動。本DIY項目結束時,您將能夠了解:

概述

在這個DIY項目中,我們將開發一個進程,使用Arduino UNO將電位計的電阻變化轉換為所需的LED數量。換句話說,在本例中,電位計被用作“傳感器輸入”,Arduino UNO被用作“映射設備”,10個ROHM LED被用作執行機構。LED通常是精密零件,經常會出現隨機故障。因此,我們選擇了ROHM LED,它們足以耐受電流尖峰,而且性能穩定。十個藍光ROHM LED將根據電位計的旋轉進行映射。將按照以下順序介紹這個項目:

所需元器件有:10 x 藍光ROHM LED、Arduino UNO R3、USB B數據線(通常隨Arduino UNO R3一起提供)、10k 電位計、830 孔無焊面包板 breadboard、20 根公頭轉公頭跳線、1個1kΩ電阻器、基于Windows的計算機,用于編程。

電路原理

所有元器件都采購齊全后,第一步是把所有元器件都連接起來。連接要求如下所述:

對于這個項目來說,您需要將10個藍光ROHM LED的正極引腳(較長的一端)分別連接到Arduino的數字引腳。

在本例中,我們使用了數字引腳4-13。

每個LED的負極引腳需要通過1kΩ的電阻器接地。

電位計有三個引腳。第一個連接到Arduino的接地引腳,第二個連接到模擬引腳A5,第三個引腳連接到5V。執行此操作將使第二個引腳的電壓在0-5V之間變化。

連接示意圖如下所示:

poYBAGJGwNeAAA3kAAOSY7jM-eo720.png

實際接線如下所示:

pYYBAGJGwNKAdCdZAAfXSbxjCps455.png

現在,您的系統已經連接好,您已經準備好對Arduino UNO R3進行編程。

設置Arduino IDE

Arduino編程需要設置Arduino IDE。Arduino IDE可在Linux和Windows上使用。對于這個DIY項目,我們將使用Windows桌面應用程序。訪問以下鏈接下載并安裝Arduino IDE:

https://www.arduino.cc/en/Main/Software

選擇以下鏈接:

Windows Installer, 適用于Windows XP及更高版本

成功安裝后,打開Arduino IDE并使用USB B數據線連接Arduino UNO R3:

poYBAGJGwM6AAYiCAAbM9M54ohc733.png

在Arduino IDE中,從“工具”》“端口”》“COM 3 (Arduino Genuino / UNO)”中選擇適當的COM端口。

這時,您的設置已準備好開始編程。

編程

在Arduino編程中,有兩個基本函數:Void Setup和Void Loop。完整代碼及其解釋如下所示:

void setup() {

//Declare A5 Analog pin as input pin

pinMode(A5, INPUT);

//Declare4-13 Digital Pins as Output Pins (For controlling 10 x ROHM LEDs)

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

pinMode(10, OUTPUT);

pinMode(11, OUTPUT);

pinMode(12, OUTPUT);

pinMode(13, OUTPUT);

Serial.begin(9600);

}

void loop() {

//Check Analog value at pin A5 and store it in variable x

int x = analogRead(A5);

//Map analog values ranging from 1-1023 to values 0-10

int y=map(x,0,1023,0,10);

/*Use a loop to turn off LEDs having number greater than y. Here “i+3” corresponds to pin number on arduino. Since 10th LED is connected to Digital Pin number 13. Therefore +3 offset has been used*/

for (int i=10; i>y; i—)

{

digitalWrite(i+3,LOW);

}

//Use a loop to turn on LEDs having number lesser than y

for (int i=0; i;>

{

digitalWrite(i+4,HIGH);

}

delay(5);

}

//As a result number of LEDs lit will corresponding to the position of potentiometer

執行

如果您沒有通過外部插孔為Arduino UNO供電,在執行過程中,請保持它與電腦連接?,F在將電位計從一端旋轉到另一端。當電位計在模擬引腳上給出0值時,沒有LED點亮。旋轉電位計時,點亮LED的數量會不斷增加。電位計給出的值達到1023時,點亮LED的數量將達到10??梢钥吹?,我們已經將傳感器值的范圍映射到了LED的數量。

電位計的起始位置。(模擬值0)

poYBAGJGwMqAaRuKAAdSv-LHEHY902.png

電位計的中間位置。(模擬值512)

poYBAGJGwMaAffe8AAfi_1hyuac370.png

電位計的最終位置。(模擬值1023)

pYYBAGJGwMKAdMSIAAfkiSsZ_IU277.png
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 映射
    +關注

    關注

    0

    文章

    44

    瀏覽量

    15737
  • Arduino
    +關注

    關注

    185

    文章

    6434

    瀏覽量

    185277
收藏 人收藏

    評論

    相關推薦

    STM32F4能否實現用重映射功能將dcmi映射到別的io口?

    能否實現用重映射功能將dcmi映射到別的io口
    發表于 03-25 08:07

    STM32上很多管腳功能可以重新映射

    知道,很多復用功能的引出腳可以通過重映射,從不同的I /O管腳引出,即復用功能的引出腳位是可通過程序改變的。這一功能的直接好處是,PCB電路
    發表于 01-11 10:09

    Nucleo STM32L476和Arduino TFT屏蔽引腳映射

    `我想在Nucleo STM32L476開發板上使用Arduino TFT屏蔽(ILI9341)。該屏蔽使用8位MCU模式并且工作良好,但Nucleo上的Arduino連接器的引腳植入不是很方便
    發表于 09-20 11:58

    LLAKG:Arduino 自動澆花系統(第2集:C 語言程序與功能實現

    ` 本帖最后由 tree***ook 于 2020-2-8 00:56 編輯 這是第二集了, 我介紹 C 語言程序, 實現了基本的自動澆花功能, 在調試過程中,還遇到了一些小插曲
    發表于 02-07 20:09

    怎么實現基于Arduino的多功能數字時鐘的設計?

    怎么實現基于Arduino的多功能數字時鐘的設計?
    發表于 11-02 06:16

    端口復用映射原理及GPIO外設復用功能配置過程

    文章目錄端口復用端口復用映射原理原理示意圖映射配置系統功能GPIO外設復用功能配置過程GPIO 端口時鐘使能復用外設時鐘使能端口模式配置為復
    發表于 12-09 07:20

    串口IO口映射功能該如何去實現

    串口IO口映射功能是指什么?串口IO口映射功能該如何去實現呢?
    發表于 12-13 07:07

    stm32f103串口如何實現映射功能?

    stm32f103串口如何實現映射功能?
    發表于 12-15 06:53

    如何用Arduino實現超聲波測距功能

    基于Arduino的超聲波模塊和Proteus仿真最近做設計要用Arduino實現超聲波測距功能,并用Proteus實現虛擬串口監視和
    發表于 01-17 07:03

    如何使用Flash重映射功能

    如何使用閃存重映射功能
    發表于 12-12 07:04

    STM32的功能引腳重映射和復用功能

    STM32的功能引腳重映射和復用功能
    發表于 09-29 08:02 ?12次下載

    arduino的學習過程

    目錄學習arduino過程學習arduino過程
    發表于 12-07 19:06 ?14次下載
    <b class='flag-5'>arduino</b>的學習<b class='flag-5'>過程</b>

    Arduino清潔機器人和房間映射

    電子發燒友網站提供《Arduino清潔機器人和房間映射.zip》資料免費下載
    發表于 10-31 10:30 ?0次下載
    <b class='flag-5'>Arduino</b>清潔機器人和房間<b class='flag-5'>映射</b>

    Arduino紅外發射器自動映射

    電子發燒友網站提供《Arduino紅外發射器自動映射.zip》資料免費下載
    發表于 01-03 14:13 ?0次下載
    <b class='flag-5'>Arduino</b>紅外發射器自動<b class='flag-5'>映射</b>

    如何使用Arduino實現映射功能

    這篇文章來源于DevicePlus.com英語網站的翻譯稿。前言您可能注意到了,盡管互連電子設備采用不同單位,有不同的上限和下限,但在它們的工作范圍內始終是兼容的。
    的頭像 發表于 02-23 09:45 ?9027次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>實現</b><b class='flag-5'>映射</b><b class='flag-5'>功能</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>