- 開発環境: Arduino IDE 2.3.10
- 使用ボード: : Elegoo Nano(Arduino Nano 互換品)
- Arduino IDEの「ツール」>「プロセッサ」の設定は「ATmega328P」で動作確認しました。ボード選択したら出てくるよ。
- もし書き込みエラー(stk500_getsync()`など)が出る場合は、製造時期(ロット)による違いの可能性があるため、代わりに「ATmega328P (Old Bootloader)」を試してみるといいらしいです。
今回はタッチセンサーを使ってみます。
センサーが反応したときだけLEDを付けるっていうのをしてみますよ~
使用するセンサーとELEGOO Nanoの配線手順
使用するパーツ
- TTP223:触れると反応する、今回主役のタッチセンサーモジュール。
- ミニブレッドボード(mini breadboard):半田付けをせずに、パーツ同士の電気の線を簡単に繋ぐための土台。
- ジャンパー線:ELEGOO Nanoとタッチセンサーをブレッドボード上で繋ぐための配線コード(3本)。
TTP223はこんな。Amazonで購入です。

配線方法
| TTP223(センサー) | ELEGOO Nano | 役割 |
|---|---|---|
| VCC | 5V | 電源供給 |
| GND | GND | グランド(マイナス) |
SIG (または I/O) | D2 | デジタル入力(信号読み取り) |
図にするとこんな感じ。

実際につなぐとこんな感じ。

Arduinoのプログラムの作成
コード補完できるように設定
File > Preferenceを立ち上げます。

Editor Quick Suggestionsにチェックを入れてOKします。

タッチセンサーを動かすプログラムコード
先に使用するボードを選択します。

プログラムこんなです。
//ピンの定義
const int TOUCH_PIN = 2; //TTP223のI/OピンをD2に接続
const int LED_PIN = 13; //ELEGOO Nanoの内臓LED(D13)
//最初の1回実行
void setup() {
pinMode(TOUCH_PIN, INPUT); //タッチセンサーピンを入力に設定
pinMode(LED_PIN, OUTPUT); //LEDピンを出力に設定
Serial.begin(9600); //シリアルモニタ通信開始(PCでのチェックが不要な場合はいらない)
}
void loop() {
//センサーの状態を読み取る(タッチ=HIGH(1/5V)、離す=LOW(0/0V)が入る)
int touchState = digitalRead(TOUCH_PIN);
/*
プログラムの中で使っている HIGH や LOW という言葉は、Arduinoが最初から『HIGH = 1』『LOW = 0』と自動的に定義してくれています。
そのため、自分で新しく定義しなくても、そのまま使うことができます!
*/
if (touchState == HIGH) {
//センサーが反応した場合(タッチされているとき)
digitalWrite(LED_PIN, HIGH); //LEDを点灯
Serial.println("Touched!"); //モニターにタッチしたよって表示する
}else {
//それ以外の場合(センサーから手が離れているとき)
digitalWrite(LED_PIN, LOW); //LEDを消灯
}
delay(50); //動作を安定させるため(チャタリング防止)のための短いウェイト
}
ボードを接続します。

→で書き込み。

なんでかエラーが出ました。ポートを選択してなかったことが原因みたいです。

Unknownになってるポートを選択して

ポートが選択されたらOKします。できたらもっかい書き込み。

センサに触ると内臓LEDとTXが光ります。TXはPCと通信してますよっていうお知らせで光ってるっぽい。

右上の虫眼鏡マーク押してシリアルモニターを表示すると、センサーを触ったときにTouched!って表示されます。

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