精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Arduino構(gòu)建一個(gè)計(jì)算器

科技觀察員 ? 來源:circuitdigest ? 作者:阿斯文斯·拉吉 ? 2022-11-21 17:43 ? 次閱讀

編程總是很有趣,如果你剛剛開始嵌入式編程,Arduino是一個(gè)很好的平臺。在本教程中,我們將使用 Arduino 構(gòu)建自己的計(jì)算器。這些值可以通過鍵盤(4×4 鍵盤)發(fā)送,結(jié)果可以在LCD 屏幕上查看(16×2 點(diǎn)陣)。該計(jì)算器可以執(zhí)行簡單的運(yùn)算,例如整數(shù)的加法,減法,乘法和除法。但是一旦你理解了這個(gè)概念,你甚至可以使用Arduino的內(nèi)置函數(shù)實(shí)現(xiàn)科學(xué)函數(shù)。

在本項(xiàng)目結(jié)束時(shí),您將了解如何將 16x2 LCD 和鍵盤與 Arduino 一起使用,以及使用現(xiàn)成的庫為它們編程是多么容易。

所需材料:

Arduino Uno (任何版本都可以)

16×2 液晶顯示屏

4×4 鍵盤

9V電池

試驗(yàn)板和連接線

電路圖:

poYBAGN7SESACMv_AADo7IaSfUI480.png

上面給出了這個(gè)Arduino計(jì)算器項(xiàng)目的完整電路圖。電路圖中顯示的+5V和接地連接可以從Arduino的5V和接地引腳獲得。Arduino本身可以從筆記本電腦或通過DC插孔使用12V適配器或9V電池供電

我們使用Arduino以4位模式操作LCD,因此只有LCD的最后四個(gè)數(shù)據(jù)位連接到Arduino。鍵盤將有 8 個(gè)輸出引腳,必須從引腳 0 連接到引腳 7,如上所示。您可以使用以下連接表來驗(yàn)證您與Arduino的連接,也可以檢查4x4鍵盤與Arduino的接口

Arduino 引腳名稱: 連接到:
D0 1圣鍵盤的銷釘
D1 2德·鍵盤的銷釘
D2 3RD鍵盤的銷釘
D3 4千鍵盤的銷釘
D4 5千鍵盤的銷釘
D5 6千鍵盤的銷釘
D6 7千鍵盤的銷釘
D7 8千鍵盤的銷釘
D8 注冊液晶屏選擇引腳(引腳4)
D9 液晶屏的使能引腳(引腳 6)
D10 數(shù)據(jù)引腳 4(引腳 11)
D11 數(shù)據(jù)引腳 4(引腳 11)
D12 數(shù)據(jù)引腳 4(引腳 11)
D13 數(shù)據(jù)引腳 4(引腳 11)
(55 連接到液晶屏的 Vdd 引腳(引腳 2)
連接到液晶屏的 Vss、V 形和 RW 引腳(引腳 1、3 和 5)

如果有任何連接到引腳 0 和 pin1 的內(nèi)容,某些 Arduino 板可能會在上傳程序時(shí)顯示錯(cuò)誤,因此,如果您遇到任何問題,只需在上傳程序時(shí)刪除鍵盤即可。

連接完成后,您的硬件將如下所示

pYYBAGN7SEaAKzyLAAD2znorMbM407.jpg

Arduino計(jì)算器程序:
該項(xiàng)目的完整Arduino程序在本項(xiàng)目結(jié)束時(shí)給出。代碼被分成有意義的小塊,并在下面解釋。

如前所述,我們將使用庫將LCD和鍵盤與Arduino連接。因此,讓我們先將它們添加到Arduino IDE中。默認(rèn)情況下,LCD庫已包含在Arduino中,因此我們不必?fù)?dān)心。對于鍵盤庫,單擊鏈接以從Github下載。您將獲得一個(gè) ZIP 文件,然后通過 Sketch -> Include Library -> 添加.ZIP文件并將位置指向此下載文件添加到 Arduino。完成后,我們就可以進(jìn)行編程了。

盡管我們使用了一個(gè)庫來使用鍵盤,但我們不得不提到一些關(guān)于Arduino鍵盤的細(xì)節(jié)(如下所示)。變量 ROWS 和 COLS 將告訴我們的鍵盤有多少行和列,鍵盤映射顯示按鍵在鍵盤上出現(xiàn)的順序。我在這個(gè)項(xiàng)目中使用的鍵盤如下所示,鍵映射也表示相同。

下面我們進(jìn)一步提到了鍵盤使用可變數(shù)組 rowPins 和 colPin 連接到哪些引腳。

const byte ROWS = 4; // Four rows
const byte COLS = 4; // Three columns

// Define the Keymap
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = { 0, 1, 2, 3 };// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte colPins[COLS] = { 4, 5, 6, 7 }; // Connect keypad COL0, COL1 and COL2 to these Arduino pins.
一旦我們提到了我們正在使用的鍵盤類型及其連接方式,我們就可以使用以下行使用這些詳細(xì)信息創(chuàng)建鍵盤

Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Create the Keypad
同樣,我們還必須告訴LCD連接到Arduino的哪些引腳。根據(jù)我們的電路圖,定義如下

const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; //Pins to which LCD is connected
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //create the LCD
在設(shè)置函數(shù)中,我們只顯示項(xiàng)目的名稱,然后繼續(xù)主項(xiàng)目所在的 while 循環(huán)。

基本上,我們必須檢查鍵盤上是否鍵入了任何內(nèi)容,如果鍵入,我們必須識別正在鍵入的內(nèi)容,然后在按下“=”時(shí)將其轉(zhuǎn)換為變量,我們必須計(jì)算結(jié)果,然后最終將其顯示在LCD上。這正是循環(huán)函數(shù)內(nèi)部所做的,如下所示

key = kpd.getKey(); //storing pressed key value in a char

if (key!=NO_KEY)
DetectButtons();

if (result==true)
CalculateResult();

DisplayResult();
使用注釋行解釋每個(gè)函數(shù)內(nèi)部發(fā)生的情況,瀏覽下面的完整代碼,擺弄它以了解它的實(shí)際工作原理

Arduino計(jì)算器的模擬

我們也可以嘗試使用 Proteus 軟件模擬項(xiàng)目。Proteus本身沒有Arduino組件,但可以輕松下載并添加到其庫中。在Proteus上安裝Arduino組件后,只需添加字母數(shù)字LCD和鍵盤即可進(jìn)行連接,如電路圖所示。

然后從這里下載十六進(jìn)制文件,并通過雙擊Proteus將其添加到Arduino中,并將“程序文件”指向此下載的十六進(jìn)制文件。模擬的快照如下所示,完整的工作顯示在下面的視頻中。

poYBAGN7SEiAFUQ_AAD26RBdkys513.jpg

注意:給出的十六進(jìn)制文件與下面給出的程序的原始文件不同。由于仿真鍵盤的鍵盤映射和實(shí)際硬件鍵盤的鍵盤映射是不同的。

Arduino計(jì)算器的工作:

按照電路圖進(jìn)行連接并上傳下面的代碼。如果顯示錯(cuò)誤,請確保已按照上面給出的說明添加了庫。您還可以嘗試模擬以檢查問題是否出在您的硬件上。如果一切都按預(yù)期完成,那么您的硬件將如下所示,LCD 顯示此

pYYBAGN7SEmAWMvTAACwn_J-zx0532.jpg

由于此處使用的鍵盤上沒有適當(dāng)?shù)臉?biāo)記,因此我假設(shè)字母表是下面列出的運(yùn)算符

鍵盤上的字符 假定為
“A” 加法 (+)
“乙” 減法 (-)
“C” 乘法 (*)
“D” 分區(qū) (/)
"*" 清除 (C)
"#" 等于 (=)

您可以使用標(biāo)記來覆蓋每個(gè)按鈕實(shí)際表示的內(nèi)容。

完成后,您可以直接開始使用計(jì)算器。鍵入數(shù)字,將出現(xiàn)在第二行,按操作數(shù)并鍵入第二個(gè)數(shù)字,最后按“#”鍵獲得結(jié)果。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)算器
    +關(guān)注

    關(guān)注

    16

    文章

    437

    瀏覽量

    37290
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6464

    瀏覽量

    186655
收藏 人收藏

    評論

    相關(guān)推薦

    如何使用TFT LCD構(gòu)建Arduino觸摸屏計(jì)算器

    在這個(gè)項(xiàng)目中,我們將使用2.4英寸Arduino TFT LCD屏幕來構(gòu)建我們自己的Arduino觸摸屏計(jì)算器,該計(jì)算器可以執(zhí)行所有基本
    的頭像 發(fā)表于 01-25 17:06 ?4655次閱讀
    如何使用TFT LCD<b class='flag-5'>構(gòu)建</b><b class='flag-5'>Arduino</b>觸摸屏<b class='flag-5'>計(jì)算器</b>

    設(shè)計(jì)個(gè)虛擬計(jì)算器

    設(shè)計(jì)個(gè)虛擬計(jì)算器,無計(jì)算時(shí)顯示時(shí)間,計(jì)算器最少具備加、減、乘、除、平方、開方等功能。急急急!{:1:}{:1:}{:1:}
    發(fā)表于 05-09 19:28

    設(shè)計(jì)個(gè)虛擬計(jì)算器

    用labview設(shè)計(jì)個(gè)虛擬計(jì)算器,無計(jì)算時(shí)顯示時(shí)間,計(jì)算器最少具備加、減、乘、除、平方、開方等功能。
    發(fā)表于 05-14 13:32

    設(shè)計(jì)個(gè)虛擬計(jì)算器

    設(shè)計(jì)個(gè)虛擬計(jì)算器,無計(jì)算時(shí)顯示時(shí)間,計(jì)算器最少具備加、減、乘、除、平方、開方等功能。
    發(fā)表于 05-14 13:34

    基于GUI的完全xp系統(tǒng)計(jì)算器個(gè)簡單計(jì)算器

    基于GUI的完全xp系統(tǒng)計(jì)算器個(gè)簡單的計(jì)算器
    發(fā)表于 01-07 09:49

    基于Lex & Yacc構(gòu)建個(gè)簡單計(jì)算器

    Lex & Yacc 學(xué)習(xí)筆記(2)-簡單計(jì)算器
    發(fā)表于 05-21 10:45

    如何做一個(gè)用遙控控制的計(jì)算器

    基于arduino uno r3/ Mega2560,做一個(gè)用遙控控制的計(jì)算器。。。。。目錄. 實(shí)驗(yàn)材料:(? ?_?)?...
    發(fā)表于 02-15 07:42

    基于Arduino的編程計(jì)算器

    描述Arduino Nano 編程計(jì)算器基于Arduino的編程計(jì)算器,用于教育和娛樂。成分Arduino納米LCD1602 16x2 帶
    發(fā)表于 09-09 07:04

    個(gè)很好的計(jì)算器

    電子發(fā)燒友網(wǎng)站提供《個(gè)很好的計(jì)算器.rar》資料免費(fèi)下載
    發(fā)表于 09-27 19:35 ?59次下載

    點(diǎn)亮LCD屏————遙控計(jì)算器 arduino

    基于arduino uno r3/ Mega2560,做一個(gè)用遙控控制的計(jì)算器。。。。。 目錄
    發(fā)表于 12-16 16:47 ?17次下載
    點(diǎn)亮LCD屏————遙控<b class='flag-5'>計(jì)算器</b> <b class='flag-5'>arduino</b>

    基于Arduino的編程計(jì)算器

    電子發(fā)燒友網(wǎng)站提供《基于Arduino的編程計(jì)算器.zip》資料免費(fèi)下載
    發(fā)表于 08-18 14:38 ?4次下載
    基于<b class='flag-5'>Arduino</b>的編程<b class='flag-5'>計(jì)算器</b>

    Arduino計(jì)算器開源分享

    電子發(fā)燒友網(wǎng)站提供《Arduino計(jì)算器開源分享.zip》資料免費(fèi)下載
    發(fā)表于 10-31 11:42 ?2次下載
    <b class='flag-5'>Arduino</b><b class='flag-5'>計(jì)算器</b>開源分享

    使用Bolt Iot模塊和Arduino的BPM計(jì)算器

    電子發(fā)燒友網(wǎng)站提供《使用Bolt Iot模塊和Arduino的BPM計(jì)算器.zip》資料免費(fèi)下載
    發(fā)表于 11-21 09:37 ?0次下載
    使用Bolt Iot模塊和<b class='flag-5'>Arduino</b>的BPM<b class='flag-5'>計(jì)算器</b>

    基于Arduino的數(shù)字計(jì)算器

    電子發(fā)燒友網(wǎng)站提供《基于Arduino的數(shù)字計(jì)算器.zip》資料免費(fèi)下載
    發(fā)表于 12-19 09:29 ?3次下載
    基于<b class='flag-5'>Arduino</b>的數(shù)字<b class='flag-5'>計(jì)算器</b>

    Nextion 3.5英寸LCD 8功能計(jì)算器設(shè)計(jì)方案

    個(gè)有用的計(jì)算器,其樣式類似于Arduino Uno的Windows 10標(biāo)準(zhǔn)計(jì)算器。硬件部件:Ardu
    發(fā)表于 01-05 16:20 ?0次下載