Подключение датчика прикосновения

Тема в разделе "Arduino & Shields", создана пользователем Vir, 19 янв 2013.

  1. Vir

    Vir Гик

    День добрый.

    Я пытаюсь подключить датчик прикосновения, для этого я скачал с сайта производителя библиотеку. Но при попытке скомпилировать example-скетч, получаю следующую ошибку:
    Код (Text):
    In file included from test_ino.cpp:3:0:
    /usr/share/arduino/libraries/GroveMultiTouch/GroveMultiTouch.h:15:22: fatal error: WProgram.h: Нет такого файла или каталога
    compilation terminated.
     
    Т.е. понятно, что он не может найти WProgram.h, но где мне-то её взять?
     
  2. Vir

    Vir Гик

    Кажется разобрался в чём дело. Данная библиотека была разработана для старых версий. Для новых необходимо внести примерно следующие изменения:
    Код (Text):
    #if defined(ARDUINO) && ARDUINO >= 100
      #include "Arduino.h"
    #else
      #include "WProgram.h"
    #endif
    Но в моём случае, я столкнулся со следующей ошибкой:
    Код (Text):
    /usr/share/arduino/libraries/GroveMultiTouch/GroveMultiTouch.cpp: In member function ‘void GroveMultiTouch::set_register(int, unsigned char, unsigned char)’:
    /usr/share/arduino/libraries/GroveMultiTouch/GroveMultiTouch.cpp:110:10: error: ‘class TwoWire’ has no member named ‘send’
    /usr/share/arduino/libraries/GroveMultiTouch/GroveMultiTouch.cpp:111:10: error: ‘class TwoWire’ has no member named ‘send’
    /usr/share/arduino/libraries/GroveMultiTouch/GroveMultiTouch.cpp: In member function ‘void GroveMultiTouch::readTouchInputs()’:
    /usr/share/arduino/libraries/GroveMultiTouch/GroveMultiTouch.cpp:121:25: error: ‘class TwoWire’ has no member named ‘receive’
    /usr/share/arduino/libraries/GroveMultiTouch/GroveMultiTouch.cpp:122:25: error: ‘class TwoWire’ has no member named ‘receive’
    Наверняка, тоже связано с разницей в версиях. Может кто-нибудь посоветует новую библиотеку для этого тач-сенсора?
     
  3. Vir

    Vir Гик

    Решил делать просто с помощью библиотеку Wire. Сложнее, но зато сам. Одно не могу понять, какой у этого сенсора I2C адрес? На странице производителя нашел, что адрес можно установить... но как это правильно сделать?
     
  4. Lizard_2k1

    Lizard_2k1 Нерд

    ITG3200 I2C address = 1101000 | 1101001
    последний бит 0|1 определяется pin Ado (num 9)
    Взято из: http://garden.seeedstudio.com/images/a/a9/ITG-3200.pdf

    Что то запутался я с вашими сенсорами. Не для того устройства адрес написал

    MPR121
    I²C Slave Address
    Connect to VSS, VDD, SDA, SCL to choose address 0x5A, 0x5B, 0x5C, 0x5D
    0101-1010, 0101-1011, 0101-1100, 0101-1101
    Взято из: http://www.sparkfun.com/datasheets/Components/MPR121.pdf
     
    nailxx нравится это.
  5. Vir

    Vir Гик

    Спасибо! Тоже уже нашёл, что нужно использовать 0x5A
     
  6. Vir

    Vir Гик

    Всё получилось. Подробности (даже с видео) можно посмотреть здесь.