Arduino UNOでワンショットパルスを出力
出窓の結露対策で使う「湿度センサー」 をあれこれ調べていて、
『高機能なものより単純なもののほうが良いのではないか?』
っと思い始めました。
ネットを探しますと、センサーのから湿度を引き出す手順を
丁寧に解説されていたのが、このページ。
■HS15P 湿度センサーの簡易動作実験■
■HS15P 湿度センサーの簡易動作実験 Arduino版■
・湿度でセンサーの抵抗値が変化。
・センサーに直流を加えるのは×。
1kHzくらいのACで測定と
・湿度による抵抗値の変化が大。
数百Ω~数メガΩ
・温度による補正が必要。
示されている回路では、センサーにコンデンサを直列につなぎ、
その充電時間とコンデンサ両端電圧から抵抗値を測定しようと
いうもの。
充電時間を変えることで、大きなレンジ幅が得られます。
Arduino用のスケッチを拝見しました。
気になったのが充電時間を決めているタイマーの処置。
Arduinoのソフトウェアタイマー「delayMicroseconds()」
を割り込み禁止状態で使われています。
パルスの出力(実際にはハイインピーダンスとH/L出力の切り替え)
も digitalWrite() と pinMode()。
※回路は簡単になります。
これでは「遅く」なってしまい、私の好みの処理ではありません。
delay()やdelayMicroseconds()を使うと、
その待ち時間の間は何もできませんから。
必要なのは正確な時間のワンショットパルス。
そこで、ちょっとトライ。
・ATmega328Pのタイマー1を利用して、ハード的に
パルスを発生させる。
・タイマー1のOC1A出力を用いる。
・設定範囲は1μ秒単位で最大4,096,000μ秒。
昔々のタイマーIC、8253や6840では簡単にできた
ワンショットタイマー、ATmega328Pではちょいと面倒です。
使うレジスタはTCNT1、OCR1A以外にこれらを駆使します。
・クロックの停止とプリスケーラの設定
・OC1A出力のH/L設定
・OC1A強制出力 (コンペアマッチを待たずに出力)
・プリスケーラのリセット
4000μ秒まではプリスケーラ無しで16MHzをカウント。
それより長いパルスはプリスケーラを切り替えながら
16bitの範囲でOCR1Aレジスタでパルス幅を設定します。
この処理のメリット。
・パルス出力中も他のことができる。
・割り込みも有効。
サンプルスケッチはキー入力した値(μ秒)でワンショットパルス
を発生させます。
・ダウンロード - pulse_tm1.txt
(テキストファイルにしてます)
出力中に新たな値を入れた時は、先のパルス出力を中断して
新しいパルスを出します。
「0」だと出力停止です。
定常的なパルス出力はPWMやアウトプットコンペアで出力
できますが、ワンショットとなるとなかなか面倒な手順に
なりました。
PWMではOCR1Aが2重バッファになり、即値での更新ができなく
なるので、ワンショットには使えませんでした。
湿度計回路に使うには、充放電のためのアナログスイッチを
外付けしなくてはなりません。
しかし、ハード的に正確な時間のパルスが使えるということで、
いかがでしょうか。
| 固定リンク
「出窓」カテゴリの記事
- 謹賀新年! 本年もよろしくお願いします。(2025.01.01)
- ステッピングモータ駆動回路を24Vだけで #2(2024.10.31)
- ステッピングモータ駆動回路を24Vだけで(2024.10.29)
- 人感センサー用オフディレータイマー回路(2023.08.26)
- 『きもだめし』に人感センサー(2023.08.19)
「Arduino」カテゴリの記事
- DDS IC「AD9833」をArduino UNO R3で制御:箱入れ #2(2025.07.03)
- DDS IC「AD9833」をArduino UNO R3で制御:箱に入れる(2025.06.30)
- UNO R4はanalogWrite(n,128)でデュティー50%の方形波が出るぞ(2025.06.03)
- DDS IC「AD9833」の出力にバッファアンプを(2025.05.27)
- DDS IC「AD9833」をArduino UNO R3で制御(2025.05.25)
「割り込み処理」カテゴリの記事
- 1クロックでも速くしたい 割込を「ISR_NAKED」で(2024.09.30)
- 1クロックでも速くしたい DDS方式の2相パルス発生器(2024.09.27)
- 最適化処理のせいで悩んだぞ 呪文volatile再び(2024.06.06)
- I2C液晶のアクセス、割り込みで処理しないようにすると(2024.04.12)
- I2C液晶のアクセス、割り込み処理で遅れる原因らしきもの(2024.04.07)
コメント