MPR121を使用して、(ほぼ)任意のサーフェスをタッチボタンに変えます
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 |
アプリとオンラインサービス
> |
|
このプロジェクトについて
MPR121は、ICの静電容量機能を使用した12ピンタッチセンサーです。
このICには2つのライブラリがありますが、個人的には裸の導電性ライブラリを使用することを好みます。
https://github.com/BareConductive/mpr121
チップにはトリガーピンがあり、ピンの1つが触れられたか解放されたかを知ることができるため、応答時間が長くなり、例に示すように、ループ内の状態をスキャンする代わりに割り込みを使用するオプションが提供されます。 。唯一の欠点は、ICの12個のIOピンすべてに対してトリガーピンが1つしかないことです。I2Cアドレスは ADDR に設定できます。 I2Cアドレス選択ピンです。デフォルトでは、I2Cアドレスが0x5Aの場合、これは100K抵抗でグランドにプルダウンされます。また、アドレス0x5Bの3Voピン、0x5CのSDAピン、またはアドレス0x5DのSCLに接続することもできます。この設定はadafruitボード用であり、一部のクローンボードには異なるI2Cアドレスセットとデフォルトがあります。ボード用のスキャナーがわからない場合は、I2Cスキャナーを使用できます。
図面に示すように、ボードの接続は非常に簡単です。
注意すべき点が1つあります。ほとんどのブレークアウトボードの電源装置の定格は3.3Vであり、5Vでは電力を供給しません。データレベルの電圧はどうですか?i2cハードウェアの性質上、arduinoの5VでMPR121に損傷を与えることはありませんが、読み取りの問題に気付いた場合、またはバス上で見つからない場合は、ロジックを試してください2の間のレベルコンバータ。
何年にもわたって、この素晴らしいICでいくつかのことを作りました。私が最初に作成したもののOn2は私の子供向けのゲームで、上部の文字は2 MPR121に接続されており、タッチするたびに、文字を言った私のmp3レコードがトリガーされます。名前。
同時に、裸の導電性塗料を試しました。これは非常に楽しく、MPR121でうまく機能します。
コード
- ピン0/1の単純なオン/オフLED
ピン0/1 Arduino での単純なオン/オフLED
これは、ピン3に接続されているLEDをオンまたはオフにするオプションを示しています。mpr121のピン0タッチをオンに、1オンリリースをオフに使用します。
#include#include #define numElectrodes 2#define LEDPIN 3void setup(){Serial.begin (115200); Serial.println( "システムが開始しました"); pinMode(LEDPIN、OUTPUT); Wire.begin(); // 0x5Cは、ベアタッチボード上のMPR121 I2Cアドレスですif(!MPR121.begin(0x5A)){Serial.println( "error setup up MPR121"); switch(MPR121.getError()){case NO_ERROR:Serial.println( "no error");壊す;ケースADDRESS_UNKNOWN:Serial.println( "不正なアドレス");壊す;ケースREADBACK_FAIL:Serial.println( "リードバックの失敗");壊す;ケースOVERCURRENT_FLAG:Serial.println( "REXTピンの過電流");壊す;ケースOUT_OF_RANGE:Serial.println( "電極が範囲外です");壊す;ケースNOT_INITED:Serial.println( "初期化されていません");壊す;デフォルト:Serial.println( "不明なエラー");壊す; } while(1); } MPR121.setInterruptPin(4); MPR121.setTouchThreshold(40); MPR121.setReleaseThreshold(20); MPR121.updateTouchData();} void loop(){if(MPR121.touchStatusChanged()){MPR121.updateTouchData(); for(int i =0; i
回路図
製造プロセス