パルスジェネレータを作ってみた:16MHzクロックを追加
2022年8月 5日:Arduino-UNOでパルスジェネレータを作ってみた
この続きです。
クロック源、もう一つ「速いの」を追加しました。
これまでは、
1us 1MHz
10us 100kHz
0.1ms 10kHz
1ms 1kHz
の4種類でしたが、ハード的に得られる最高クロック
16MHzを追加しました。
クロック周期が「1/16us」で、「0.0625us」が最小単位と
なります。
小数以下の表示桁が4桁に増えちゃうわけです。
1クリックで1つ増減するのではなく「0.0625」増減します。
※同じ4桁でも、「0/16」「1/16」・・「15/16」と
1/16で示す方が増減が分かりやすいかと思ったん
ですが、どうでしょう?
整数部の最大が「4095」になるので、小数点を入れても
「9桁」になり、なんとか表示できました。
タイマー1のカウント値16bitの最大65535で、
「4095.9375us」となります。
※1MHzクロックだと1usピッチで最大が「65.535ms」
でした。単純に周波数16倍。
クロックを変えるとこんな感じで表示が変わります。
16MHzでの最下位カーソル位置が0.1桁のところになり
ここに合わせたときだけ0.0625ピッチで変化します。
しかし、10^0桁~10^3桁に持ってくると、ちゃんと
10進で変化するようになっていて、操作上の違和感は
ありません。
※その後:
2022年8月24日:パルスジェネレータを作ってみた:箱に入れた
をどうぞ。
| 固定リンク
「ツール」カテゴリの記事
- マイコン型導通チェッカーの部品(2025.02.21)
- ピンセット、危うし!(2025.01.09)
- EEPROMを使ったシリアル受信バッファ 512kバイトに増設(2024.12.26)
- 充電器用AC100V電源電流モニター回路(2024.12.13)
- DDS方式の2相パルス発生回路、周波数スキャン機能を付ける(2024.10.05)
「Arduino」カテゴリの記事
- パルスジェネレータをI2C液晶で動かす(2025.01.28)
- EEPROMを使ったシリアル受信バッファ 512kバイトに増設(2024.12.26)
- 1/nカウント方式とDDS方式の2相パルス発生回路(2024.10.13)
- おっと。map関数の計算桁に注意(2024.10.06)
- DDS方式の2相パルス発生回路、周波数スキャン機能を付ける(2024.10.05)
「AVRマイコン」カテゴリの記事
- AVRマイコンAT90S1200を使ったデジタル時計(2024.06.02)
- 数値をBCD出力(表示)するルーチン #3(2024.05.03)
- 数値をBCD出力(表示)するルーチン #2(2024.04.28)
- ATmega4809のシリアルポート(2023.01.18)
- PWMでD/A変換:アナログマルチプレクサの応用で(2023.01.02)
コメント
「duty比hold」モードを付けてみました。
周期設定モードでダイヤルを回した時、デューティーが一定となるようにパルス幅の値を制御します。
例えば、デューティを33%にセットしたら、周期を変えてもデューティはそのまま変わらないというしかけです。
※スケッチのアップはちょい待って。
投稿: 居酒屋ガレージ店主(JH3DBO) | 2022年8月10日 (水) 11時15分
電池電圧低下警報も必要か。
AIN1/PD7のコンパレータ入力(Vref 1.1Vと比較)を使って、LED(PB5)を制御。
電圧OKなら点灯。 低下検出なら点滅。
てな具合。
投稿: 居酒屋ガレージ店主(JH3DBO) | 2022年8月10日 (水) 15時53分
とりあえず動くように
http://igarage.cocolog-nifty.com/blog/2022/08/post-c07c42.html
パルスジェネレータを作ってみた:箱に入れた
スイッチがつながるポートが変わっています。
投稿: 居酒屋ガレージ店主(JH3DBO) | 2022年8月25日 (木) 09時27分