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

高精度気圧計:Arduino UNO & Nano搭載、デュアルダイヤルで気圧変化を表示

必要な部品と用品

部品数量備考
Arduino Nano R313時間表示・予報担当
Arduino UNO(ATmega328 ベアチップ)1メイン気圧計・6時間表示担当、ベロボード実装

プロジェクト概要

高精度気圧計:Arduino UNO & Nano搭載、デュアルダイヤルで気圧変化を表示

Arduino UNOとNanoの2台構成で、直径12インチ(300mm)のアナログダイヤル3つをステッピングモーターで駆動し、気圧を表示します。

全ダイヤルに拡張レンジ機能(±5hPa以上でLED点灯)と、3時間変化に基づく天気予報LED(8色)を搭載。ケース内部に20×4 LCDを2台設置し、詳細データを表示。RTC(DS3231)で時刻管理し、1時間パルスで3時間側と同期。

ステップ1:従来のアナログ気圧計との比較

一般的なアナログ気圧計は現在気圧のみ表示し、可動針を手動で合わせて変化を読み取ります。天気予報は針の位置と記憶頼みで複雑。本機は3時間・6時間変化を自動記録・独立表示し、予報もLEDで自動判定します。

ステップ2:嵐予測のデモ

タイムラプス動画で、接近する嵐に対する針と予報LEDの反応を確認できます。

ステップ3:拡張レンジダイヤル

通常時は高分解能で表示。極端な気圧変化時は自動的に拡張レンジ(±5hPa以上)に切替、LEDで知らせます。さらに±9hPa超で両LED点灯し「レンジオーバー」を警告。実運用でメインダイヤルも拡張レンジ使用例あり(2020年1月、英国南部で1050hPa記録)。

ステップ4:LCD情報表示

ステップ5:天気予報ロジック

気圧(hPa)と3時間変化の組み合わせで8パターンの予報LEDを点灯:

条件予報点灯LED
<1009 hPa かつ 変化≥0回復・涼しくClear + Change
<1009 hPa かつ -1.5≤変化<0雨Rain + Threat
<1009 hPa かつ 変化<-1.5嵐Stormy + Threat
1009-1022 hPa かつ |変化|≤1.5変化なし・公平Fair + No Change
1009-1022 hPa かつ 変化>1.5回復傾向Clear + Fair
1009-1022 hPa かつ 変化<-1.5雨・雪Rain + Change
>1022 hPa かつ 変化≥0乾燥・好天継続Dry + Fair
>1022 hPa かつ -1.5≤変化<0好天Fair + Dry
>1022 hPa かつ 変化<-1.5変化の兆しChange + Threat

ステップ6〜10:初期セットアップ手順

  1. 起動時LEDテスト → 針が初期位置へ移動
  2. RTC設定:UTC固定、夏時間変更なし。セレクトノブとボタンで時・分を調整
  3. 6時間針設定:インチング(微調整)で目盛合わせ → RTC設定時にメモした値へ整数ステップで合わせ
  4. メイン針設定:同様にインチング後、LCD表示の四捨五入海面更正気圧へ整数ステップで合わせ
  5. 3時間針設定:専用ボタン(緑・白・青・黄)で0.5hPa単位調整 → LCDの「D」値へ合わせ

※ 6時間表示は8時間、3時間表示は4時間経過後に正常動作。過去データをコードに埋め込めば即時運用可能。

ステップ11:主要モジュール

ステップ12:A4988ドライバー詳細

マイクロステップ設定(MS1〜3ピン)、電流制限(Vref調整)、電源保護(セラミックコンデンサのLCスパイク対策)など重要事項を解説。コードは1/16ステップ前提。

ステップ13〜24:製作プロセス

ステップ25:回路図

メイン回路図と電源回路図を掲載。12V 1A以上のACアダプター必要。LCDバックライトはスイッチでON/OFF可能(99.99%見えないため省電力)。

ステップ26:ベロボードレイアウト

部品面・ハンダ面・モジュール実装状態・配線中の写真を掲載。LED基板はダイヤル着脱用にコネクタ接続。

ステップ27:コード

2つのスケッチに分割:

主要ライブラリ:SFE_BMP180、AccelStepper、LiquidCrystal_I2C、Wire。RTC直読み書き関数、ステッピングモーター制御(マイクロステップ対応)、気圧取得・海面更正・履歴管理・予報ロジック・設定モード等を含む。

ステップ28:タイムラプス動画

雨雲レーダーと気圧計の予報連動を4K動画で記録。ダイヤルとLEDの詳細が確認可能。

コード(抜粋)

BarometerA4988_23.ino(メイン・6時間表示用)

/* バージョン履歴:v23まで改良
   - 6時間変化を毎時ステップ、拡張レンジLED、スリープ制御等 */
#include <SFE_BMP180.h>
#include <Wire.h>
#include <SPI.h>
#include <LiquidCrystal_I2C.h>
#include <AccelStepper.h>

SFE_BMP180 pressure;
#define ALTITUDE 118.0  // 神奈川県寒川町付近の標高(m)

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#define DS3231_I2C_ADDRESS 0x68

// ステッピングモーター設定(A4988 1/16ステップ)
#define dirPin 8
#define stepPin 9
#define dirPin2 10
#define stepPin2 11
#define motorInterfaceType 1
AccelStepper stepper(motorInterfaceType, stepPin, dirPin);    // メイン
AccelStepper stepper2(motorInterfaceType, stepPin2, dirPin2); // 6時間

// 変数群(気圧履歴8時間分、RTC、設定モード、LED制御等)
// ... 詳細はダウンロードファイル参照

void setup() {
  // ピンモード、LCD、RTC、BMP180初期化、LEDテスト、モーター無効化
  getPressure(); // 初回測定
  // 起動時LCDに設定用情報表示
}

void loop() {
  // 設定モード(セレクトノブ+ボタン)処理
  // RTC時刻表示(秒更新)
  // 10分ごとの気圧測定・メイン/6時間針ステップ
  // 毎時15秒に1時間パルス出力(3時間側へ)
  // 6時間履歴更新・差分計算・ステップ実行
}

// 設定モード、RTC操作、モーターステップ関数群...
// 全文は添付ファイル参照

BarometerA4988_3hour__21.ino(3時間・予報用)

/* v21:予報LED8色、LCD表示、1/16ステップ、手動調整ボタン対応 */
#include <SFE_BMP180.h>
#include <SPI.h>
#include <LiquidCrystal_I2C.h>
#include <AccelStepper.h>

SFE_BMP180 pressure;
#define ALTITUDE 125.0

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

#define dirPin 11
#define stepPin 10
#define motorInterfaceType 1
AccelStepper stepper(motorInterfaceType, stepPin, dirPin);

// 予報LEDピン割り当て
int ledStormy = 8, ledRain = 7, ledChange = 6, ledFair = 2;
int ledDry = 13, ledClear = 12, ledThreat = 17, ledNoChange = 16;
// 3時間レンジLED
int hour3LowLED = 5, hour3HighLED = 4;
// 手動調整入力
int stepFwd1 = 14, stepBwd1 = 15, maninchFwdBwd = A7;
// メイン側からの1時間パルス入力
int hourPulse = 3;

void setup() {
  // LEDピン初期化、LCD、BMP180、LEDテスト、初回測定・予報・表示
  // モーター無効化
}

void loop() {
  // 1時間パルス検知→測定・予報・表示更新・3時間針ステップ
  // 手動調整ボタン(整数ステップ・インチング)対応
  // 3時間履歴管理・差分計算・ステップ実行
}

// 気圧取得、海面更正、3時間差分計算、予報判定、LCD表示、モーター制御関数群...
// 全文は添付ファイル参照

回路図

高精度気圧計:Arduino UNO & Nano搭載、デュアルダイヤルで気圧変化を表示

製造プロセス

  1. アネロイド気圧計:設計、歴史、圧力測定の未来
  2. 血圧計:設計、製造、将来動向
  3. 消火器:種類、設計、将来動向
  4. 産業・安全用途向け精密圧力計
  5. Bluetooth操作のArduinoスパイボットを自作する
  6. FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
  7. 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
  8. 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
  9. コンパクト気象ステーション:Arduino Nano & ESP8266 + BMP280 + OLED/Nokia LCD
  10. ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
  11. Arduinoプロジェクトのための最適化電源ソリューション