Сенсор касания

Самый простой датчик: два голых провода. Один идёт к аналоговому пину, другой — к GND. Дотроньтесь до обоих пальцами или воткните их в яблоко — и Arduino это почувствует.

Как это работает

Человек и яблоко немного проводят ток — у них есть сопротивление: у сухих пальцев это мегаомы, у влажных и плотно прижатых — десятки килоом, у яблока — десятки–сотни килоом. Если пальцами замкнуть два провода, между пином и GND появляется такой «резистор».

Но одного его мало: нужен второй резистор — подтяжка от пина к +5 В. Вместе они образуют делитель напряжения. Без касания пин подтянут к 5 В (analogRead ≈ 1023), при касании напряжение падает — тем сильнее, чем меньше сопротивление пальцев.

не касаюсь крепко, влажными пальцами
сопротивление касания
напряжение на A0
analogRead(A0)
касание = 1023 − analogRead

Как подключить к Arduino Nano

void setup() {
  pinMode(A0, INPUT_PULLUP);        // если нет внешнего резистора 1 МОм
}

void loop() {
  int raw = analogRead(A0);         // 1023 — никто не трогает
  int touch = 1023 - raw;           // 0 — нет касания, больше — сильнее
}

В скетче sine_pm_am_crush_lfo2.ino сенсор на A0 управляет биткрашем и ждёт, что при касании число растёт (SENSOR_MIN 300 → SENSOR_MAX 500). При такой схеме оно падает. Два выхода: подключить наоборот — резистор 1 МОм от A0 на GND, а второй провод на +5V (тогда без касания 0, с касанием больше), или в коде заменить чтение на 1023 - mozziAnalogRead(SENSOR_PIN). После этого подберите SENSOR_MIN и SENSOR_MAX по своим пальцам.

Это безопасно: от USB идёт 5 В, а через пальцы течёт меньше тысячной доли миллиампера — его не почувствовать. Так можно делать только с питанием от USB или батареек, никогда не с сетью 220 В.

Числа на странице примерные: сопротивление кожи меняется в десятки раз от влажности, площади и силы касания, у яблок — от сорта и того, насколько глубоко воткнуты провода. Поэтому пороги в скетче всегда подбирают по факту.