Project 10.2 タッチスイッチ/Touch Lamp

前回はタッチセンサーの基本的な動作について学びました。

あわせて読みたい
Project 10.1 タッチセンサー/Read Touch Sensor 前回はADCを使用して電圧を読み取ってみました。 https://kaneshige.org/?p=329 今回はタッチセンサーの使い方を学習します。今回もプログラミング要素は少ないです。 ...

今回はタッチセンサーをボタン代わりにしてLEDをコントロールしてみましょう。

目次

回路図

接続図

今回も、GPIO14に触れられれば良いので、オレンジ色のジャンパー線は繋がなくても大丈夫です。

コード

/**********************************************************************
  Filename    : TouchLamp
  Description : Control led by touch button.
  Auther      : www.freenove.com
  Modification: 2022/10/21
**********************************************************************/
#define PIN_LED     21
#define PRESS_VAL   200000	  //Set a threshold to judge touch
#define RELEASE_VAL 60000	    //Set a threshold to judge release

bool isProcessed = false;
void setup() {
  Serial.begin(115200);
  pinMode(PIN_LED, OUTPUT);
}
void loop() {
  if (touchRead(T14) > PRESS_VAL) {
    if (!isProcessed) {
      isProcessed = true;
      Serial.println("Touch detected! ");
      reverseGPIO(PIN_LED);
    }
  }
  if (touchRead(T14) < RELEASE_VAL) {
    if (isProcessed) {
      isProcessed = false;
      Serial.println("Released! ");
    }
  }
}

void reverseGPIO(int pin) {
  digitalWrite(pin, !digitalRead(pin));
}

前回の動作確認でGPIO14に触れたときの値を確認しているとおもいますが、『PRESS_VAL』のしきい値が高すぎて反応しないようなら下げてみましょう。

次回はポテンショメーターを使ってLEDの明るさを制御してみましょう。

あわせて読みたい
Project 11.1 ADコンバータとPWM/Soft Light ここまでの学習で、PWMを使ったLEDの明るさコントロール、ADCを使ったポテンショメーターの値取得について学習しました。 https://kaneshige.org/?p=234#index_id1 http...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

金重総合研究所の主席研究員。
子供の頃から研究者を目指し、ライフワークとして日々様々な研究をしています。
経営・マネジメント・金融・DXあたりが本職です。
私を採用したい人、私と一緒に働きたい人、一緒に知識を肥やしていきたい人はぜひお声がけ下さい。

コメント

コメントする

目次