メインコンテンツに移動

GR-COTTON 特設:タッチセンサー

概要

GR-COTTONの星型タッチセンサーを利用してみます。

cotton-sp-touch-sensor

準備

GR-COTTON、USBケーブル(マイクロBタイプ)の2つを準備します。

GR-COTTONの裏面にある白いジャンパーが3V3、USB側にします。BATT側にある場合は引き抜いて、USB側に差し込んでください。

cotton-sp-prepare
cotton-sp-prepare2

タッチセンサーでLEDを光らせる

GR-COTTONのタッチセンサーを押すとLEDが点灯するサンプルです。

補足:A6, A7を10MΩの大きい抵抗でプルアップしていますが、片方をタッチしたときに他方のタッチも反応してしまうことがあります。このため以下はA6, A7それぞれのタッチを別々に見ていますが、例えばA6をタッチするとA7も反応し、LED赤、青が同時に点灯することがあります。


#include <arduino.h>

void setup() {
    pinMode(22, OUTPUT); //red led
    pinMode(24, OUTPUT); //blue led
    digitalWrite(22, HIGH);
    digitalWrite(24, HIGH);
}
    
void loop() {
    if(analogRead(A6) < 800){
    digitalWrite(22, LOW);
    } else {
    digitalWrite(22, HIGH);
    }
    
    if(analogRead(A7) < 800){
    digitalWrite(24, LOW);
    } else {
    digitalWrite(24, HIGH);
    }
    
}


    

タッチするまで省電力にする。

前述のサンプルではタッチされるまでマイコンは動き続けていましたが、このサンプルはSNOOZEモードというものを利用してタッチされまで省電力にするサンプルです。

見た目の変化はあまりありませんが、電池などの持ち時間が違ってきます。A6のタッチセンサーだけ反応します。

この機能はGR-COTTONや、GR-KURUMIの特有の機能です。


#include <arduino.h>

void setup() {
  setPowerManagementMode(PM_SNOOZE_MODE, 0, 800);    
  pinMode(23, OUTPUT); //green led
  digitalWrite(23, HIGH);
}
   
void loop() {
  analogRead(A6); // into snooze until touch   
  digitalWrite(23, LOW);
  delay(100);
  digitalWrite(23, HIGH);
   
}