512回計測で計測前後の時間が574ミリ秒。なので大体1ミリ秒間隔
一応綺麗な曲線は出てる。時定数はざっくり目視で65ミリ秒くらい。理論値100ミリ秒なんで悪くない。プログラム
#define TACT_SW_PIN 8 #define DIGITAL_OUT_PIN 9 #define ANALOG_IN_PIN A5 #define LED_PIN 13 #define NUM_MEASURES 512 void setup() { Serial.begin(9600); pinMode(TACT_SW_PIN, INPUT_PULLUP); pinMode(DIGITAL_OUT_PIN, OUTPUT); pinMode(ANALOG_IN_PIN, INPUT); digitalWrite(DIGITAL_OUT_PIN, LOW); delay(1000); } void loop() { Serial.println("waiting"); int tact_in = 1; while(tact_in) { tact_in = digitalRead(TACT_SW_PIN); } digitalWrite(LED_PIN, HIGH); Serial.println("start"); int i; int result[NUM_MEASURES]; digitalWrite(DIGITAL_OUT_PIN, HIGH); unsigned int millis1 = millis(); for (i = 0; i < NUM_MEASURES; ++i) { result[i] = analogRead(ANALOG_IN_PIN); delay(1); } unsigned int millis2 = millis(); digitalWrite(DIGITAL_OUT_PIN, LOW); digitalWrite(LED_PIN, LOW); Serial.println("done"); for (i = 0; i < NUM_MEASURES; ++i) { Serial.println(result[i]); } Serial.println(millis2); Serial.println(millis1); Serial.println("discharging"); delay(5000); // Discharge. }