chottoshitahanashi’s diary

基本的に間違ったことばかり書いてるブログ。検索ひっかかるな

RCテスト結果

f:id:name-3333:20220405094943p:plain
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.
}

ついでにPuttyArduinoとシリアル通信する方法覚えた。