初めて買ったArduino UNO・・・今は
Arduino初体験 が2012年12月。 (10年以上前だわ)
その基板の現在がこれ。
・どこかから拾ったプラケースをベースに。
・16MHzセラミック発振子を水晶発振子に交換。
・ブートローダ書き込み済みのATmega328Pと
通信(スケッチアップロード)するための
ケーブルを付加。
・乗っているチップは何度も交換。
ちょっとした実験や試運転で便利なのが
アナログ入力ポートにつなぐ4つのボリューム。
スイッチも2つ付けてます。
こんな回路です。
ボリュームのスライダーに0.1uFのコンデンサを
入れておくと安心。
+5VとGNDを取れるようにピンヘッダをハンダして
います。
ケチって片面のユニバーサル基板なんで、配線は
ちょっと面倒。
AnalogReadで読んだA/D値(0~1023)を使って
Delay値を設定したり、動作パラメータを変えたりと
リアルタイムでできますんで、なかなか便利です。
使ったボリュームは秋月電子通商のつまみ付半固定抵抗 。
(足の1・2・3の順に注意:刻印あり)
似てるけど3386K-EY5-103TRじゃない!
※応用のためのスケルトン・スケッチ
4つのボリュームと2つのスイッチを入力するための
応用基本スケッチを示しておきます。
・ボリューム値の入力は1ms割り込みで処理。
・64回平均。
・4つあるので256msごとにデータが確定。
・勝手にスキャンするのでAnalogReadのように
100us待たされるということがない。
・割込禁止にしなくてもいつでも読めるよう
VR値は0~255の8bitで。
ad_avr[ch]を読めばok。
起動すると256msごとに値をシリアル出力します。
A/D 8bit:VR1,2,3,4 SW1,2
105 178 123 249 0 0
105 178 123 255 0 0
:
0 64 128 255 0 0
0 64 128 255 0 0
0 64 128 255 1 0 SWはオンで1
0 64 128 255 1 1
0 64 128 255 0 1
0 64 128 255 0 0
・ダウンロード - ad_vr4.txt
.inoではなくUTF8Nのテキストです。
※タイマー割り込みとADC変換完了割り込み
ソースを見てもらえれば、その手順がわかるかと。
さまざまなライブラリ、確かに便利です。
でも、Arduino UNOのATmega328Pマイコン
あたりなら、レジスタの直接操作はそんなに
難しくはありません。
マイコンに備わっているさまざまな機能を引き
出すには、データーシートをにらみながらの
プログラミングをしなければなりません。
| 固定リンク
「ツール」カテゴリの記事
- マイコン型導通チェッカーの部品(2025.02.21)
- ピンセット、危うし!(2025.01.09)
- EEPROMを使ったシリアル受信バッファ 512kバイトに増設(2024.12.26)
- 充電器用AC100V電源電流モニター回路(2024.12.13)
- DDS方式の2相パルス発生回路、周波数スキャン機能を付ける(2024.10.05)
「Arduino」カテゴリの記事
- Arduino UNO R3で周波数を計る(2025.05.16)
- Arduino UNO R3のクロック精度を1MHzパルスで確かめる(2025.04.28)
- Arduino、analogWriteは捨てちゃえ。ちゃんとしたPWMの例(2025.03.22)
- パルスジェネレータをI2C液晶で動かす(2025.01.28)
- EEPROMを使ったシリアル受信バッファ 512kバイトに増設(2024.12.26)
「割り込み処理」カテゴリの記事
- 1クロックでも速くしたい 割込を「ISR_NAKED」で(2024.09.30)
- 1クロックでも速くしたい DDS方式の2相パルス発生器(2024.09.27)
- 最適化処理のせいで悩んだぞ 呪文volatile再び(2024.06.06)
- I2C液晶のアクセス、割り込みで処理しないようにすると(2024.04.12)
- I2C液晶のアクセス、割り込み処理で遅れる原因らしきもの(2024.04.07)
コメント