상품카테고리 > 센서

아두이노 터치 쉴드 (SparkFun Touch Shield)
판매가격 : 9,900원 (부가세 포함)
상품코드 :[3314]DEL-DAV-ZAS
제조사 :Sparkfun
브랜드 :SparkFun [브랜드몰 바로가기]
구매수량 : 일시품절된 상품입니다. (주문: 053-588-4080)
총 금액 :

  • 상품상세
  • 관련상품
  • 배송/교환/반품 안내
  • 상품리뷰
소개Description

  • 쉴드 형태의 간편한 터치 센서
  • 쉴드 형태의 제품이기 때문에 아두이노에 간단히 적층하여 터치 센서를 사용할 수 있습니다.

    • 3x3 형태의 버튼 배열

    키보드 버튼처럼 3x3 배열의 1~9까지의 버튼을 사용 할 수 있습니다.

  • 9개의 온보드 터치 패드 + 3개의 확장가능 헤더

기본적으로 9개의 터치 패드가 존재하고 헤더 연결을 통해 3개의 터치 버튼을 추가할 수 있습니다.

사양Technical details

  • 정격 전압: DC 3.0V~ 5.0V
  • 통신 방법: I2C
  • 크기: 62mm x 55mm
  • 헤더 불포함 제품 (헤더 구매)


구성품Includes

  • SparkFun Touch Shield x 1



참고자료Document

    /*
      Touch Sense Shield Example using the MPR121 touch sensor IC

      by: Aaron Weiss, based on the MPR121 Keypad Example by Jim Lindblom
      further modified by Jim again! - 6/22/11

      SparkFun Electronics
      created on: 6/22/11
      license: OSHW 1.0, http://freedomdefined.org/OSHW

      이 예제는 터치하는 번호를 시리얼 모니터에 출력합니다.

      적용되는 하드웨어: 3.3V or 5V Arduino

      참고: 아두이노 스케치가 저장되는 폴더 안에 아래 파일들이 포함되어 있어야 합니다.
          "defs.h" "i2c.h" "mpr121.h" "types.h"
    */

    // include the atmel I2C libs
    #include "mpr121.h"
    #include "i2c.h"

    // 터치 센서 번호와 키 번호
    #define ONE 8
    #define TWO 5
    #define THREE 2
    #define FOUR 7
    #define FIVE 4
    #define SIX 1
    #define SEVEN 6
    #define EIGHT 3
    #define NINE 0

    //기타 (버튼과 연결이 되지 않은 부분)
    #define ELE9 9
    #define ELE10 10
    #define ELE11 11

    //인터럽트 핀
    int irqPin = 2;  // D2

    void setup() {
      // 인터럽트 핀은 INPUT이고 Pulled hight 되어야 합니다.
      pinMode(irqPin, INPUT);
      digitalWrite(irqPin, HIGH);

      // 시리얼 통신 초기화
      Serial.begin(9600);

      // I2C 버스를 초기화 합니다.
      i2cInit();

      // MPR121을 초기화 합니다.
      mpr121QuickConfig();

      // 터치 센서를 작동시켰을 때 발생하는 인터럽트를 만듭니다.
      // 터치 센서가 작동해서 IRQ핀이 LOW가 되면 "getNumber" 함수가 실행됩니다.
      attachInterrupt(0, getNumber, LOW);

      Serial.println("Ready...");
    }

    void loop() {
      // 인터럽트로 MPR121이 작동되기 때문에 loop() 함수 안에는 아무 코드가 작성되지 않습니다.
      // 추가로 필요한 코드를 이 곳에 자유롭게 작성하시면 됩니다.
    }

    void getNumber() { // 터치 센서가 작동하면 실행되는 함수입니다.
      int touchNumber = 0;
      uint16_t touchstatus;
      char digits;

      touchstatus = getTouchStatus();

      for (int j = 0; j < 12; j++) // 전극 눌린 개수를 확인
      {
        if ((touchstatus & (1 << j)))
          touchNumber++;
      }

      if (touchNumber == 1) { // 버튼이 터치되었을때 작동
        if (touchstatus & (1 << SEVEN)) {
          digits = '7';
        }
        else if (touchstatus & (1 << FOUR)) {
          digits = '4';
        }
        else if (touchstatus & (1 << ONE)) {
          digits = '1';
        }
        else if (touchstatus & (1 << EIGHT)) {
          digits = '8';
        }
        else if (touchstatus & (1 << FIVE)) {
          digits = '5';
        }
        else if (touchstatus & (1 << TWO)) {
          digits = '2';
        }
        else if (touchstatus & (1 << NINE)) {
          digits = '9';
        }
        else if (touchstatus & (1 << SIX)) {
          digits = '6';
        }
        else if (touchstatus & (1 << THREE)) {
          digits = '3';
        }
        Serial.println(digits); // 터치된 버튼 번호를 출력합니다.
      }
      else if (touchNumber == 0)
        ;
      else
        ;
    }

    /*
      getTouchStatus()는 각 버튼의 현재 터치 상태와 관련된 16비트 값을 반환합니다.
      LSB는 전극 0~7(bit 0 = 버튼 0)을 나타내고, MSB의 최하 4 비트는 전극 8~11을 
      나타냅니다.
      1은 버튼을 터치하고 있음을 의미합니다.
    */
    int getTouchStatus() {
      int touch;

      touch = mpr121Read(0x01) << 8;
      touch |= mpr121Read(0x00);

      return touch;
    }

Image Map 메카리워즈












견적요청
구매대행
퀵/방문수령
후불결제
기술문의