工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino UNOで作るシンプル電卓 - シリアルモニターで四則演算

必要なパーツ

Arduino互換ボードなら何でも動作します(UNO、Nano、Mega、Leonardo、Due、Yun、101等)。ボードとUSBケーブルのみで、追加部品は不要です。

使用ソフトウェア

プロジェクト概要

「Arduinoで数学はできるか?」という先生の質問から生まれたプロジェクト。シリアルモニターに「2+3」や「8*2」のように入力すると、計算結果を返すシンプルな電卓です。

使い方

  1. ArduinoをPCに接続
  2. 下記コードをアップロード
  3. シリアルモニターを開く(ボーレート9600)
  4. 「数値 演算子 数値」の形式で入力(スペースなし)
    例:2+3, 10-4, 6*7, 20/3
  5. 結果が表示される

Arduinoコード

/* Arduinoシリアル電卓
 * 基本四則演算(+, -, *, /)に対応
 * 入力例: "2+3" → 出力: 5
 * 作成: João Paulo Rodrigues Poltronieri
 * パブリックドメイン
 */

long number1;   // 第1オペランド
long number2;   // 第2オペランド
char calSignal; // 演算子
long result;    // 計算結果

void setup() {
  Serial.begin(9600);
  Serial.println("Send me a calculation");
  Serial.println("E.G. : 2+3");
  Serial.println();
}

void loop() {
  while (Serial.available() > 0) {
    number1 = Serial.parseInt();  // 最初の数値を読取(複数桁対応)
    calSignal = Serial.read();    // 演算子を読取
    number2 = Serial.parseInt();  // 2番目の数値を読取
    calculate();                  // 計算実行
    Serial.print("Result = ");
    Serial.println(result);
    Serial.println();
    Serial.println("Next calculation, please");
    Serial.println();
  }
}

void calculate() {
  switch (calSignal) {
    case '+':
      result = number1 + number2;
      break;
    case '-':
      result = number1 - number2;
      break;
    case '*':
      result = number1 * number2;
      break;
    case '/':
      if (number2 != 0) {
        result = number1 / number2; // 整数除算(小数点以下切り捨て)
      } else {
        Serial.println("ERROR: Division by zero");
        result = 0;
      }
      break;
    default:
      Serial.println("INVALID OPERATION");
      result = 0;
  }
}

回路図

Arduino UNOで作るシンプル電卓 - シリアルモニターで四則演算

配線不要。Arduinoボード単体で動作します。

今後の拡張予定

より高機能な電卓(小数対応、連続計算、関数など)を予定しています。ご要望があれば優先して開発します。

製造プロセス

  1. DIY Arduinoワードクロック – 文字で時刻を表示する洗練されたリアルタイムクロック
  2. Arduino で作るイスラム教礼拝時刻付きリアルタイムクロック
  3. Arduino UNO WiFi Webサーバー:ブラウザからLEDをON/OFF制御
  4. Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
  5. Arduino UNOとATtiny85で作る携帯型POV(残像)ディスプレイ
  6. SerialDebug:Arduinoデバッグを高度なシリアルログで強化するライブラリ
  7. シンプルなArduinoストップウォッチ:ボタンで動作するクロノメーターの作り方
  8. Arduino手洗いタイマー:COVID-19対策のシンプルDIYツール
  9. Arduino Unoで8×8 LEDマトリックスを制御:ステップバイステップガイド
  10. Wi-Servo:WebブラウザからWi-Fi経由でサーボモーターを制御
  11. ArduinoとBluetoothでスマートフォン温度監視システムを構築