Емкостный сенсор

KaskaRUS
Offline
Зарегистрирован: 11.04.2014

Попробовал сделать емкостный датчик(сенсорная кнопка).  написал такой код:


int pin1 = 40;
int pin2 = 48;

void setup() {   
  Serial.begin(9600);  

  pinMode(pin1, INPUT);    
  pinMode(pin2, OUTPUT);  
  digitalWrite(pin2, HIGH);
}


void loop() {

  int count = 0;
  
  
  // разряжаем сенсор
  digitalWrite(pin2, LOW);
  
  while (digitalRead(pin1) == 1)
  {
      count ++;
      
      if (count > 5000)
      {
        return;
      }
  }
  

  count = 0;
  //заряжаем
  digitalWrite(pin2, HIGH);  
  
  while (digitalRead(pin1) == 0)
  {
      count ++;
      
      if (count > 5000)
        break;
  }

  Serial.println(count);
}

Время зарядки прыгает от 0 до 2000:

1950
0
0
0
0
0
1557
0
0
0
0
1816
0
0
0
0
0
1426
0
0
0
0
1684
0
0
0
0
1947
0
0
0
0
0
1566
0
0
0
0
1816
0
0
0
0
0
1438

В чем может быть проблема?

KaskaRUS
Offline
Зарегистрирован: 11.04.2014

Прыгает когда нажимаешь пальцем

inspiritus
Offline
Зарегистрирован: 17.12.2012

Потому как заряжается от человека-антенны, а ловит эта антенна 50 Гц.