【タッチするたびにオンオフが切り替わるようにするよ】参考にならない電子工作#4

Uncategorized
スポンサーリンク
  • 開発環境: Arduino IDE 2.3.10
  • 使用ボード: : Elegoo Nano(Arduino Nano 互換品)

前回はタッチセンサーが反応している間ライトがつくようにしていました。

今回はタッチするたびにオンオフが切り替わるようにします。

使用するセンサーとELEGOO Nanoの配線手順

使用するパーツ

  • TTP223:触れると反応する、タッチセンサーモジュール。
  • ミニブレッドボード(mini breadboard)
  • ジャンパー線
  • LED×2個:緑にしたよ!
  • 220Ωの抵抗×2個

配線方法

図にするとこんな感じ。

抵抗を共有すると、LEDの個体差で片方に電気が集中して、「片方しか光らない」「過電流で壊れる」原因になるので、必ずLEDごとに1個ずつ接続するらしい。

実際につなぐとこんな感じ。配線へたっぴでそろそろ何かわからないね。

Arduinoのプログラムの作成

先に使用するボードを選択します。

プログラムこんなです。細かいことはコメントに書いてるよ。

const int SENSOR_PIN = 2; //TTP223のSIGピンをD2に接続
const int LED_PIN = 13; //LEDをD13に接続

bool ledState = false; //現在のLEDの状態(false=消灯、true=点灯)
bool lastSensorState = false; // 前回のセンサーの状態

void setup() {
  pinMode(SENSOR_PIN, INPUT); //センサーピンをインプットに設定
  pinMode(LED_PIN, OUTPUT); //LEDピンをアウトプットに設定
}

void loop() {
  bool currentSensorState = digitalRead(SENSOR_PIN); //現在のセンサーの状態

  //現在のセンサーがonで、一つ前のセンサーがoffの時だけ実行
  if (currentSensorState == HIGH && lastSensorState == LOW) {
    ledState = !ledState; //ledStateのonoffを逆転
    digitalWrite(LED_PIN, ledState ? HIGH : LOW); // 【条件 ? 正のとき : 偽のとき】の順で処理する書き方

    /*
    ledState ? HIGH : LOWのところはledStateをそのまま入れてもOK
    boolは内部的には内部的には true=1 / false=0 の数字らしい
    */
    
    delay(50); //チャタリング防止
  }

  lastSensorState = currentSensorState; //1つ前のセンサーの状態を現在のセンサーの状態に入れ替える
}

ボードを接続し、→で書き込み。

一度タッチするとLEDが光ります。

もう一度タッチすると消えます。

免責事項・ご注意

本記事に掲載している回路、プログラム、手順等は、あくまで個人の実験記録であり、動作や安全性を保証するものではありません。万が一、掲載された情報によって機材の破損、怪我、トラブル等が発生した場合でも、当方は一切の責任を負いかねます。実際に試される際は、必ずご自身で仕様や安全性を確認した上で、自己責任にて行っていただきますようお願いいたします。

タイトルとURLをコピーしました