Arduino UNOで作るシンプル電卓 - シリアルモニターで四則演算
必要なパーツ
Arduino互換ボードなら何でも動作します(UNO、Nano、Mega、Leonardo、Due、Yun、101等)。ボードとUSBケーブルのみで、追加部品は不要です。
使用ソフトウェア
- Arduino IDE
プロジェクト概要
「Arduinoで数学はできるか?」という先生の質問から生まれたプロジェクト。シリアルモニターに「2+3」や「8*2」のように入力すると、計算結果を返すシンプルな電卓です。
使い方
- ArduinoをPCに接続
- 下記コードをアップロード
- シリアルモニターを開く(ボーレート9600)
- 「数値 演算子 数値」の形式で入力(スペースなし)
例:2+3,10-4,6*7,20/3 - 結果が表示される
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ボード単体で動作します。
今後の拡張予定
より高機能な電卓(小数対応、連続計算、関数など)を予定しています。ご要望があれば優先して開発します。
製造プロセス
- DIY Arduinoワードクロック – 文字で時刻を表示する洗練されたリアルタイムクロック
- Arduino で作るイスラム教礼拝時刻付きリアルタイムクロック
- Arduino UNO WiFi Webサーバー:ブラウザからLEDをON/OFF制御
- Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
- Arduino UNOとATtiny85で作る携帯型POV(残像)ディスプレイ
- SerialDebug:Arduinoデバッグを高度なシリアルログで強化するライブラリ
- シンプルなArduinoストップウォッチ:ボタンで動作するクロノメーターの作り方
- Arduino手洗いタイマー:COVID-19対策のシンプルDIYツール
- Arduino Unoで8×8 LEDマトリックスを制御:ステップバイステップガイド
- Wi-Servo:WebブラウザからWi-Fi経由でサーボモーターを制御
- ArduinoとBluetoothでスマートフォン温度監視システムを構築