• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Arduino的雙模科學(xué)計(jì)算器設(shè)計(jì)

    基于Arduino的雙模科學(xué)計(jì)算器設(shè)計(jì)

    作者: 時(shí)間:2025-06-24 來(lái)源: 收藏

    這款基于 的雙模式科學(xué)計(jì)算器是一種多功能且高效的工具,可用于基本和高級(jí)計(jì)算。在普通模式下,它用作標(biāo)準(zhǔn)計(jì)算器,通過(guò) 4×4 鍵盤執(zhí)行加、減、乘、除。結(jié)果清晰地顯示在 OLED 屏幕上。按鈕開(kāi)關(guān)可在模式之間無(wú)縫切換,以增加靈活性。

    本文引用地址:http://www.czjhyjcfj.com/article/202506/471616.htm

    在科學(xué)模式下,計(jì)算器擴(kuò)展了其功能以處理高級(jí)運(yùn)算,例如正弦、余弦、正切和平方根計(jì)算,非常適合需要三角函數(shù)或代數(shù)計(jì)算的學(xué)生、工程師和專業(yè)人士。OLED 顯示屏確保清晰可見(jiàn),而鍵盤的多功能布局在緊湊的設(shè)計(jì)中支持標(biāo)準(zhǔn)和科學(xué)輸入。

    按鈕模式開(kāi)關(guān)提高了可用性,使設(shè)置適用于各種用例。作者的原型如圖 1 所示,所需組件列在物料清單表中。

    雙模式科學(xué)計(jì)算器

    圖 1:作者的原型

    物料清單
    項(xiàng)目數(shù)量
    Uno1
    4×4 鍵盤1
    OLED 顯示屏 (SSD1306)1
    按壓式開(kāi)關(guān) (SW1)1
    跳線根據(jù)要求

    電路和工作

    圖 2 顯示了基于 的電路圖。該設(shè)計(jì)通過(guò)結(jié)合 Arduino Uno、OLED 顯示屏和簡(jiǎn)單的鍵盤接口,展示了硬件資源的有效利用,使設(shè)備具有成本效益且易于實(shí)現(xiàn)。用于模式切換按鈕的內(nèi)部上拉電阻器可防止誤觸發(fā),確保穩(wěn)定運(yùn)行。

    雙模式科學(xué)計(jì)算器電路

    圖 2: 電路圖

    該計(jì)算器還為電子和編程愛(ài)好者提供了寶貴的學(xué)習(xí)機(jī)會(huì)。它涵蓋了基本概念,例如鍵盤接口、顯示處理和使用 Arduino 實(shí)現(xiàn)數(shù)學(xué)計(jì)算。總體而言,這種可定制和可擴(kuò)展的設(shè)計(jì)為嵌入式系統(tǒng)開(kāi)發(fā)提供了實(shí)用的動(dòng)手實(shí)踐介紹。

    硬件設(shè)置包括通過(guò) I2C 協(xié)議(VCC 到 5V、GND 到 GND、SDA 到 A4 和 SCL 到 A5)連接 OLED 顯示器。4×4 鍵盤連接到 Arduino 的數(shù)字引腳,其中行連接到引腳 D9、D8、D7 和 D6,列連接到引腳 D5、D4、D3 和 D2。按鈕接地并連接到 Arduino 的引腳 D10。按下按鈕 (SW1) 時(shí),計(jì)算器切換到科學(xué)模式,在 OLED 屏幕上顯示“科學(xué)模式”。

    Arduino 代碼的結(jié)構(gòu)用于檢測(cè)鍵盤輸入、處理數(shù)字和運(yùn)算符,并相應(yīng)地更新 OLED 顯示屏。loop() 函數(shù)持續(xù)檢查按鈕的狀態(tài),在標(biāo)準(zhǔn)模式和科學(xué)模式之間切換。當(dāng)按下一個(gè)鍵時(shí),程序會(huì)根據(jù)活動(dòng)模式確定適當(dāng)?shù)淖鳎⒃?OLED 上動(dòng)態(tài)顯示結(jié)果。

    計(jì)算器的作模式

    該計(jì)算器具有三種作模式:正常、科學(xué)和切換。每個(gè)方法如下所述。

    Normal:用于基本算術(shù)運(yùn)算。在此模式下,鍵盤的功能如下:

    • A – 乘法 (*)

    • B – 加法 (+)

    • C – 減法 (-)

    • D – 除法 (/)

    • * – 清除輸入

    • # – 執(zhí)行計(jì)算

    科學(xué)模式:?jiǎn)⒂酶呒?jí)作。在此模式下,相同的鍵將重新分配給:

    • A – sin(值)

    • B – cos(值)

    • C – tan (值)

    • D – sqrt (值)

    • * – 清除輸入

    開(kāi)關(guān): 連接到 Arduino 引腳 D10 的按鈕可在正常模式和科學(xué)模式之間切換。

    雙模科學(xué)計(jì)算器的 Arduino 代碼

    計(jì)算器的源代碼是使用 Arduino IDE 開(kāi)發(fā)的。需要 Adafruit SSD1306 OLED 顯示庫(kù)和 Keypad.h 庫(kù)。添加庫(kù)后,可以通過(guò)選擇適當(dāng)?shù)亩丝诤桶鍖⒋a上傳到 Arduino。圖 3 顯示了源代碼的一個(gè)片段。

    雙模科學(xué)計(jì)算器的 Arduino 代碼

    圖 3: 源代碼片段構(gòu)造和測(cè)試

    將源代碼上傳到 Arduino Uno 后,應(yīng)按照電路圖所示組裝組件(參見(jiàn)圖 2)。必須將 12V、2A 適配器連接到 Arduino Uno 的直流電源插座。

    要作計(jì)算器,請(qǐng)首先檢查當(dāng)前模式。如果需要切換模式,請(qǐng)按下按鈕 (SW1)。然后,所選模式將處于活動(dòng)狀態(tài)并可供使用。




    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 永泰县| 辽阳县| 栾城县| 安吉县| 修文县| 龙陵县| 鹤壁市| 清涧县| 邳州市| 沙田区| 阜宁县| 宜都市| 布拖县| 黄大仙区| 图们市| 尚义县| 延边| 枣强县| 隆林| 高邑县| 华容县| 乐山市| 封丘县| 乌鲁木齐县| 田东县| 武邑县| 昌乐县| 华蓥市| 萝北县| 东海县| 建水县| 乡城县| 贡嘎县| 和田县| 岑溪市| 临高县| 漳州市| 吉木乃县| 龙州县| 富平县| 黑河市|