ArduinoのA/D:1/1023 vs 1/1024 その後
ちょっとネットを検索。
単純に1/1023や1/1024しているスケッチを見つけるの
じゃなく、いろんな考えを探してみました。
(1)ADCの出力値をアナログ値に換算する考え方
http://kumikomi.k.asablo.jp/blog/2017/09/25/8683672
(2)DL03_ADCの細かい話:2021年06月17日
https://kousukeno.seesaa.net/article/482057043.html
(3)A/D,D/Aの量子化の単位は、 2^n ? 2^n-1?
https://community-ja.renesas.com/cafe_rene/forums-groups/analog/f/analog/1988/a-d-d-a-2-n-2-n-1
(4)analogReadの値の変換を誤解していた話(1023、1024問題)
https://qiita.com/c_in_g/items/a87e5632aacbc79ba5d0
(5)10 bit ADC - divide by 1024 or 1023:Using ArduinoProgramming Questions
https://forum.arduino.cc/t/10-bit-adc-divide-by-1024-or-1023/657174/9
(6)ADC: dividing by 1024 or 1023?
https://forums.adafruit.com/viewtopic.php?f=25&t=25830
(3)と(4)で「2bitでの A/D」を示されています。
この考えで10bitまで有効桁を増やすとどうだ、でエエでしょう。
あと、半値や1/4値で考えるのも良。
それと、「D/Aだとどう考える」です。
A/Dだと電圧変換の結果が小数になるので、四捨五入がどうの
量子化がどうのが出てきます。
しかし、D/Aの入力値は1bit単位の整数。
そして、最大出力電圧は「Vref - 1LSB」。
どう頑張ってもVref電圧そのものは出せません。
出力電圧の変化量は「基準電圧÷分解能」。
正しくD/Aをするには・・・
※ArduinoでのD/Aというと
Arduino、analogWriteは捨てちゃえ。ちゃんとしたPWMを使おう
map関数 の問題とともに、これ↑が絡んできます。
| 固定リンク
「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)
「1023 vs 1024」カテゴリの記事
- Arduino、analogWriteは捨てちゃえ。ちゃんとしたPWMの例(2025.03.22)
- 1023 vs 1024:AVRマイコンとPICマイコンのデータシートより(2025.03.19)
- 1/1023監視団 活動中!(2025.03.10)
- おっと。map関数の計算桁に注意(2024.10.06)
- サーミスタでの温度測定、「inf」の出現に耐えられるか?(2024.05.13)
コメント
『1/1023 vs 1/1024』問題 analogReadを2bitにして確かめてみる
http://igarage.cocolog-nifty.com/blog/2022/11/post-bed4a2.html
投稿: 居酒屋ガレージ店主(JH3DBO) | 2022年11月12日 (土) 16時20分