最新情報
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
予想より遅いかな・・・・・・・(データシート読めよ・・・・・)
-
- 2024.11.11
- 11月17日、薪ストーブイベント出展、ふれあいパークほうらい
-
- 2024.11.10
- 薪ストーブ展示場所リニューアル
-
- 2024.10.31
- 11月3日イベント出展、売木村&東栄町
-
- 2024.09.19
- 薪ストーブ、新城軽トラ市「49番ブース」、出店します。
-
- 2024.01.20
- 薪ストーブ出展 新城消防祭