新聞中心

        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 屏幕上。按鈕開關(guān)可在模式之間無(wú)縫切換,以增加靈活性。

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

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

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

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

        圖 1:作者的原型

        物料清單
        項(xiàng)目數(shù)量
        Uno1
        4×4 鍵盤1
        OLED 顯示屏 (SSD1306)1
        按壓式開關(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)開發(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 (值)

        • * – 清除輸入

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

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

        計(jì)算器的源代碼是使用 Arduino IDE 開發(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)按照電路圖所示組裝組件(參見圖 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)閉
        主站蜘蛛池模板: 锡林浩特市| 甘肃省| 黄浦区| 湘潭县| 焦作市| 曲沃县| 平凉市| 武平县| 新邵县| 准格尔旗| 当阳市| 汽车| 湟源县| 玉树县| 东乡| 安多县| 临夏市| 剑河县| 沿河| 西安市| 惠东县| 淳安县| 南京市| 图木舒克市| 阿拉善左旗| 乌兰浩特市| 山丹县| 安庆市| 泾川县| 竹山县| 凉城县| 花垣县| 清水河县| 望城县| 紫阳县| 明水县| 衡南县| 巧家县| 达州市| 大英县| 阜平县|