Arduinoで遊ぶページ

Arduinoで遊んだ結果を残すページです。
garretlab
サンプルプログラム解説

概要

タッチセンサに触れたときに、割り込みを発生させ、事前に登録した関数を呼び出します。

プログラム

定義等

/*
This is un example howto use Touch Intrrerupts
The bigger the threshold, the more sensible is the touch
*/

int threshold = 40;
bool touch1detected = false;
bool touch2detected = false;

thresholdは、タッチセンサに触れたかどうかを判定するための閾値です。チップによって値が異なるかもしれません。touchRead()を使って調べることができます。

touch1detectedとtouch2detectedは、タッチセンサに触れたときにtrueに設定される変数です。

gotTouch1()、gotTouch2()

void gotTouch1(){
 touch1detected = true;
}

void gotTouch2(){
 touch2detected = true;
}

上記の関数はそれぞれ、タッチセンサに触れたときに実行される関数で、touch1detected、touch1detectedをtrueに設定します。

setup()

void setup() {
  Serial.begin(115200);
  delay(1000); // give me time to bring up serial monitor
  Serial.println("ESP32 Touch Interrupt Test");
  touchAttachInterrupt(T2, gotTouch1, threshold);
  touchAttachInterrupt(T3, gotTouch2, threshold);
}

touchAttachInterrupt()で、タッチセンサに触れたときに実行する関数を登録します。

loop()

void loop(){
  if(touch1detected){
    touch1detected = false;
    Serial.println("Touch 1 detected");
  }
  if(touch2detected){
    touch2detected = false;
    Serial.println("Touch 2 detected");
  }
}

touch1detectedとtouch2detectedがtrueになっていれば(=タッチセンサが触れられ、割り込み関数が実行された)、falseにもどして、シリアルコンソールにメッセージを表示します。

バージョン

1.0.0



メニューを表示するためにJavaScriptを有効にしてください。

Arduinoで遊ぶページ
Copyright © 2018 garretlab all rights reserved.
inserted by FC2 system