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

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

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

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

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

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

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

所需材料:

Arduino Uno (任何版本都可以)

16×2 液晶顯示屏

4×4 鍵盤

9V電池

試驗板和連接線

電路圖:

poYBAGN7SESACMv_AADo7IaSfUI480.png

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

我們使用Arduino以4位模式操作LCD,因此只有LCD的最后四個數(shù)據(jù)位連接到Arduino。鍵盤將有 8 個輸出引腳,必須從引腳 0 連接到引腳 7,如上所示。您可以使用以下連接表來驗證您與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 板可能會在上傳程序時顯示錯誤,因此,如果您遇到任何問題,只需在上傳程序時刪除鍵盤即可。

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

pYYBAGN7SEaAKzyLAAD2znorMbM407.jpg

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

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

盡管我們使用了一個庫來使用鍵盤,但我們不得不提到一些關(guān)于Arduino鍵盤的細(xì)節(jié)(如下所示)。變量 ROWS 和 COLS 將告訴我們的鍵盤有多少行和列,鍵盤映射顯示按鍵在鍵盤上出現(xià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ù)中,我們只顯示項目的名稱,然后繼續(xù)主項目所在的 while 循環(huán)。

基本上,我們必須檢查鍵盤上是否鍵入了任何內(nèi)容,如果鍵入,我們必須識別正在鍵入的內(nèi)容,然后在按下“=”時將其轉(zhuǎn)換為變量,我們必須計算結(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();
使用注釋行解釋每個函數(shù)內(nèi)部發(fā)生的情況,瀏覽下面的完整代碼,擺弄它以了解它的實際工作原理

Arduino計算器的模擬

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

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

poYBAGN7SEiAFUQ_AAD26RBdkys513.jpg

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

Arduino計算器的工作:

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

pYYBAGN7SEmAWMvTAACwn_J-zx0532.jpg

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

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

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

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

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

    關(guān)注

    16

    文章

    437

    瀏覽量

    37251
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6458

    瀏覽量

    186504
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    設(shè)計虛擬計算器

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

    設(shè)計虛擬計算器

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

    設(shè)計虛擬計算器

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

    基于GUI的完全xp系統(tǒng)計算器簡單計算器

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

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

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

    如何做一個用遙控控制的計算器

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

    基于Arduino的編程計算器

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

    很好的計算器

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

    點亮LCD屏————遙控計算器 arduino

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

    基于Arduino的編程計算器

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

    Arduino計算器開源分享

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

    使用Bolt Iot模塊和Arduino的BPM計算器

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

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

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

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

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