// ESP32のアナログ入力特性測定プログラム #define TestPin 34 // アナログ入力ピン void setup() { Serial.begin(115200); analogSetAttenuation(ADC_2_5db); // hiZ(12); // ピンの状態を設定 // hiZ(14); // hiZ(25); dacWrite(25, 40); // DACから指定電圧を出力 // hiZ(27); openDrainLow(27); // オープンドレインでLOWに引っ張る } void loop() { long d = 0; for (int i = 0; i < 1000; i++) { // 1000回測定して d += analogRead(TestPin); } Serial.println(d / 1000); // 平均値をシリアルに出力 delay(200); } void hiZ(int n) { // 指定ピンをHi-Zに設定 set the pin to hi-z pinMode(n, INPUT); // 入力にして set INPUT digitalWrite(n, LOW); // 念のためにプルアップを解除 no pull up } void pull3V3(int n) { // 指定ピンを抵抗経由で5Vに引っ張る pull 5V through registor pinMode(n, OUTPUT); // 出力にして set OUTPUT digitalWrite(n, HIGH); // HIGHを出力 OUTPUT HIGH } void openDrainLow(int p) { // オープンドレインON(LOW出力) pinMode(p, OUTPUT_OPEN_DRAIN); digitalWrite(p, LOW); } void openDrainHiZ(int p) { // オープンドレインOFF(Hi-Z) pinMode(p, OUTPUT_OPEN_DRAIN); digitalWrite(p, HIGH); }