Вопрос по Capsense.

Тема в разделе "Arduino & Shields", создана пользователем ali777, 13 июн 2012.

  1. ali777

    ali777 Нерд

    Где в этом коде функция , которая считывает состояние нажатия клавиш с определенной скоростью?
    Код (Text):
    #include <CapSense.h>
     
    /*
    * CapitiveSense Library Demo Sketch
    * Paul Badger 2008
    * Uses a high value resistor e.g. 10M between send pin and receive pin
    * Resistor effects sensitivity, experiment with values, 50K - 50M. Larger resistor values yield larger sensor values.
    * Receive pin is the sensor pin - try different amounts of foil/metal on this pin
    */
     
     
    CapSense  cs_4_2 = CapSense(4,2);        // 10M resistor between pins 4 & 2, pin 2 is sensor pin, add a wire and or foil if desired
    CapSense  cs_4_6 = CapSense(4,6);        // 10M resistor between pins 4 & 6, pin 6 is sensor pin, add a wire and or foil
    CapSense  cs_4_8 = CapSense(4,8);        // 10M resistor between pins 4 & 8, pin 8 is sensor pin, add a wire and or foil
     
    void setup()                
    {
      cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF);    // turn off autocalibrate on channel 1 - just as an example
      Serial.begin(9600);
    }
     
    void loop()                
    {
        long start = millis();
        long total1 =  cs_4_2.capSense(30);
        long total2 =  cs_4_6.capSense(30);
        long total3 =  cs_4_8.capSense(30);
     
        Serial.print(millis() - start);        // check on performance in milliseconds
        Serial.print("\t");                    // tab character for debug windown spacing
     
        Serial.print(total1);                  // print sensor output 1
        Serial.print("\t");
        Serial.print(total2);                  // print sensor output 2
        Serial.print("\t");
        Serial.println(total3);                // print sensor output 3
     
        delay(10);                            // arbitrary delay to limit data to serial port
    }
     
  2. hibiki

    hibiki Гик

    вы не поверите, но это функция loop()

    XXX.capSense(30) - считывание
    delay(10) - задержка "между считываниями"
     
  3. ali777

    ali777 Нерд

    Как я не меняю задержку между считываниями скорость чтения не изменяется
     
  4. hibiki

    hibiki Гик

    параметр в capSense() уменьшить еще можно, до тех пор, пока еще уверенно срабатывает
     
  5. ali777

    ali777 Нерд

    пробовал,не помогает,я хочу что бы он почаще проверял,но при уменьшении (увел)значения скорость проверки одна и таже,Ардуино мега
     
  6. hibiki

    hibiki Гик

    ну время, что-ли, в миллисекундах выводите на каждом прогоне цикла...

    может, МК прерываниями занят?
     
  7. ali777

    ali777 Нерд

    в миллисек. пробовал, прерываниями как?
     
  8. hibiki

    hibiki Гик

    и на каком именно этапе виснет? на capSense()?

    в коде есть установка обработчиков прерывания?
     
  9. ali777

    ali777 Нерд

    НУ НА ВИДЕО У РАЗРАБА ПОКАЗЫВАЕТ КАСАНИЯ БЫСТРО А У МЕНЯ ЧЕРЕЗ 5-10 СЕК

    НЕЗНАЮ
     
  10. hibiki

    hibiki Гик

    код полностью можете привести?
    и написать, что у вас куда подключено еще?
     
  11. ali777

    ali777 Нерд

    КОД ПОЛНЫЙ,РЕЗЮКИ НА 1Мом подкл с проводами к 2,6,8 пинам трогаю цифры 5 сек спокойные иногда сами по себе скачут
     
  12. hibiki

    hibiki Гик

    конечно скачут, емкость же тоже меняется

    все-таки - увеличивать размер сенсорных площадок, уменьшать количество измерений (параметр capSense) и, может, поиграться с функцией
    Код (Text):
    set_CS_Timeout_Millis(unsigned long timeout_millis)


    оно ведь ждет тайм-аута на всех задействованных ногах, если не набирает по sample измерений
     
  13. ali777

    ali777 Нерд

    хм, я пытался сделать это http://www.g0l.ru/blog/n3402#comments но когда я трогал звук шел через 5-10 сек, увеличивал я сенсор.площадки до 7 метров
     
  14. Unixon

    Unixon Оракул Модератор

    @ali777, схему покажите, пожалуйста. Фото, fritzing, на бумаге нарисуйте или еще каким образом.
     
  15. ali777

    ali777 Нерд

    Прошу не ругать впервые что то делал на frizing-е
    [​IMG]
     
  16. Unixon

    Unixon Оракул Модератор

    Ссылка не прошла. Прицепите лучше к сообщению, как вложение.
     
  17. ali777

    ali777 Нерд

    хм
     

    Вложения:

  18. Unixon

    Unixon Оракул Модератор

    Вы точно по этой схеме делали? Она не верная. Все три резистора одним концом должны быть подключены к передающему пину 4, а другими концами к приемным пинам 2,6,8.

    p.s. У меня все сразу заработало. В качестве сенсоров оставил просто соединительные провода.
     
    ali777 нравится это.