Warning: Trying to access array offset on false in /home/c6460735/public_html/kano-x.jp/cms/wp-content/plugins/wp-sitemanager/modules/meta-manager.php on line 507

Warning: Trying to access array offset on false in /home/c6460735/public_html/kano-x.jp/cms/wp-content/plugins/wp-sitemanager/modules/meta-manager.php on line 507
ESP32 AD変換速度、実測 – 株式会社加納製作所

最新情報

ESP32 AD変換速度、実測

ESP32 のAD変換速度を実測してみました。

 

AD変換を1回の時間

= ( AD変換を10回の時間 - AD変換を5回の時間 )  ÷ 5

という考え方で計測してみます。

 

オシロで計測するので、IOピンを1個、HIGH、LOW、切り替えます。

//——————–5回

#include <Arduino.h>
const int ADIN_1 = 33;    // ADC1
//const int ADIN_1 = 25;  // ADC2
const int LED_1 = 5;       // LED1
const int VDD = 3.3; // 電源 3.3V
const int ANALOG_MAX = 4096; // 12bit = 4096
int ADC;
void setup() {
  Serial.begin(9600);
  pinMode(ADIN_1, ANALOG);
  pinMode(LED_1, OUTPUT);
  analogSetAttenuation(ADC_11db);
}
void loop() {
  digitalWrite(LED_1,HIGH);
  // AD変換 5回
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  /*
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  */
  digitalWrite(LED_1,LOW);
  delay(1);
}
だいたい 300uS
//——————– 10回
#include <Arduino.h>
const int ADIN_1 = 33;    // ADC1
//const int ADIN_1 = 25;  // ADC2
const int LED_1 = 5;       // LED1
const int VDD = 3.3; // 電源 3.3V
const int ANALOG_MAX = 4096; // 12bit = 4096
int ADC;
void setup() {
  Serial.begin(9600);
  pinMode(ADIN_1, ANALOG);
  pinMode(LED_1, OUTPUT);
  analogSetAttenuation(ADC_11db);
}
void loop() {
  digitalWrite(LED_1,HIGH);
  // AD変換 10回
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  ADC = analogRead(ADIN_1);  // AD 読込
  digitalWrite(LED_1,LOW);
  delay(1);
}
だいたい 600uS
その差 300uS
これらより
1回の AD変換 + 変数に代入 の時間
おおよそ 60uS
予想より遅いかな・・・・・・・(データシート読めよ・・・・・)

最新の投稿記事

加納製作所の商品開発

  • 薪ストーブ
  • メッキアノード
  • 粉体塗料
  • ミニトマト選別機

開発でお悩みの方、

まずは新たな発想を生む
私達の開発環境へお越しください。
知識・経験・ノウハウがそのお悩みを解決します。

開発のご相談