最新情報
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.01.20
- 薪ストーブ出展 新城消防祭
-
- 2023.11.28
- SDGsへの貢献:薪ストーブ
-
- 2023.11.01
- 薪ストーブ今週末のイベント
-
- 2023.11.01
- 薪ストーブ納品 南信州うるぎ高原 風の森
-
- 2023.06.07
- 2023 JAいわてグループ 農業機械フェア開催