Помогите с сенсорным кейпадом для Osu!

wmui734
Offline
Зарегистрирован: 18.01.2019

Есть код https://github.com/fb39ca4/kappa-pad собрал по схеме только без светодиода с двумя резисторами на 1Mohm. В итоге скетч загрузил, но он не работает вовсе. Помогите решить проблему!

wmui734
Offline
Зарегистрирован: 18.01.2019
 
Код:
 
#include <CapacitiveSensor.h>
#include <Keyboard.h>
 
#include "CapacitiveKey.h"
 
//#define SERIAL_OUTPUT
#define DISABLE_PIN 15
 
void setup() {
  #ifdef SERIAL_OUTPUT
  Serial.begin(115200);
  #endif
  Keyboard.begin();
  pinMode(DISABLE_PIN, INPUT_PULLUP);
}
 
CapacitiveKey key0 = CapacitiveKey(
  2,    //Capacitive Send Pin
  7,    //Capacitive Sense Pin
  6,    //LED Pin
  6,    //Capacitive Treshold
  'z',  //Keyboard Key
  255   //LED Brightness (0-255)
);
CapacitiveKey key1 = CapacitiveKey(
  4,    //Capacitive Send Pin
  8,    //Capacitive Sense Pin
  10,   //LED Pin
  5,    //Capacitive Treshold
  'x',  //Keyboard Key
  255   //LED Brightness (0-255)
);
 
void loop() {
  bool keyboardActive = digitalRead(DISABLE_PIN);
  key0.keyUpdate(keyboardActive);
  key1.keyUpdate(keyboardActive);
 
  #ifdef SERIAL_OUTPUT
  Serial.print(key0.sample);
  Serial.print(",");
  Serial.println(key1.sample);
  #endif
}
 
Библиотека к коду:
 
class CapacitiveKey {
  public:
    CapacitiveSensor* sensor;
    bool keyReleased = true;
    char key;
    unsigned int releaseDelay = 20;
    unsigned int releaseTimer;
    unsigned int treshold;  
    int led;
    unsigned int sample;
    unsigned char ledBrightness;
    CapacitiveKey(uint8_t sendPin, uint8_t receivePin, int statusLED, unsigned int capacitiveTreshold, char keyboardKey, unsigned char ledBrightness)  {
      sensor = new CapacitiveSensor(sendPin, receivePin);
      treshold = capacitiveTreshold;
      key = keyboardKey;
      led = statusLED;
      pinMode(led, OUTPUT);
    }
    ~CapacitiveKey() {
      delete sensor;
    }
    void keyUpdate(bool keyboardActive) {
      sample = sensor->capacitiveSensorRaw(1);
      if (sample > treshold) {
        if (keyReleased) {
          analogWrite(led, 255);
          if (keyboardActive) Keyboard.press(key);
          keyReleased = false;
        }
        releaseTimer = releaseDelay;
      }
      else {
        if (!keyReleased) {
          if (releaseTimer == 0) {
            analogWrite(led, 0);
            Keyboard.release(key);
            keyReleased = true;
          }
          else {
            releaseTimer--;
          }
        }
      }
    }
};
 

 

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

там нет таких резисторов, максимум 330 килоом

asam
Offline
Зарегистрирован: 12.12.2018

Пробовали то, что написано в описании к проекту на гитхабе:

At this point the keyboard may work, or the treshold values may have to be adjusted. If keys act like they are being held down and your computer is now unusable when the keypad is plugged in, connect a wire from the disable pin to ground to stop keypresses from being sent. If the keys do not work, uncomment the #DEFINE SERIAL_OUTPUT and reupload the sketch. Now, when you open the Arduino serial monitor (at 115200 baud) you should see the sensed capacitance for each key. Change the tresholds so that they are just above the largest values you see when not touching the keys, and reupload the sketch. Once you are satisfied with the operation of the keyboard, disable serial output again to improve performance.

 

И ознакомтесь с правилами форума, пожалуйста.

wmui734
Offline
Зарегистрирован: 18.01.2019

Да я знаю но соискать 330khom резисторы не могу. Так как в подобных проектах используют 1Mohm резисторы думал они пойдут.

asam
Offline
Зарегистрирован: 12.12.2018

Так пробовали раскомментировать //#define SERIAL_OUTPUT ?

wmui734
Offline
Зарегистрирован: 18.01.2019

Сейчас этим занят, кейпад начал "оживать". Надо найти середину при которой он будит нормально работать. Спасибо, были подозрения на чувствительность но до этого не видел как её изменить.

wmui734
Offline
Зарегистрирован: 18.01.2019

Было бы ещё хорошо вырезать светодиод из кода и библиотеки...

asam
Offline
Зарегистрирован: 12.12.2018

wmui734 пишет:

Было бы ещё хорошо вырезать светодиод из кода и библиотеки...

Так а кто запрещает?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

asam пишет:

Так а кто запрещает?

Раньше Клапауций запрещал, а теперь некому...

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ладно. Если хотите, то я запрещу.