前回はタッチセンサーの基本的な動作について学びました。
今回はタッチセンサーをボタン代わりにして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...
コメント