#1 2022-01-08 15:38:58

Partyzan
Учасник
Зареєстрований: 2021-11-21
Повідомлень: 7

Датчик вібраціїї

Датчик  удару/вібрації https://arduino.ua/prod3603-modyl-datchika-ydara-801s використовуючи код


if (digitalRead(2)!= digitalRead(2))
   {     
    Serial.println("Тест");
   }

дає декілька записів в монітор. Яким чином визначити лише одну реакцію на удар.
Замість Serial.println("Тест"); пишу рядок відправки SMS, але так як значень дії датчика декілька, то відповідно SMS-ок, приходить декілька.
Як зробити, щоб на удар пішла лише одна SMS і при першому проходженні  умови не приходила SMS, а лише тільки тоді коли відбулася дія по датчику?
P.S. на датчику встановлено максимальну чуттєвість.

Неактивний

#2 2022-01-08 16:03:23

Honey
Учасник
З Киев
Зареєстрований: 2020-09-26
Повідомлень: 96

Re: Датчик вібраціїї

Разберитесь самостоятельно с этим примером:

val = digitalRead(2);
if (val != oldval) {
    oldval = val;
    Serial.println("Тест");
    if (millis() - tmignore > 0) {
        tmignore = millis() + 60*1000;
        Serial.println("SMS");
    }
}

Неактивний

#3 2022-01-08 16:09:31

Partyzan
Учасник
Зареєстрований: 2021-11-21
Повідомлень: 7

Re: Датчик вібраціїї

Дякую, через годинку-півтори попробую, напишу результат.

Неактивний

#4 2022-01-08 16:53:51

Partyzan
Учасник
Зареєстрований: 2021-11-21
Повідомлень: 7

Re: Датчик вібраціїї

Попробував:


val = digitalRead(2);
if (val != oldval)
{
  oldval = val;
  if (millis() - tmignore > 5000)
   {
     tmignore = millis();
     Serial.println("SMS");
    }
}

Пару разів (ударів) спрацьовує нормально, далі "пачка" в Serial SMS-ок.
Проблема схоже з тим, що датчик може зупинитися на любому рівні LOW/HIGH (якщо судити по індикації світлодіоду на датчику 801S).

P.S. Згодом...
Спочатку у даному коді дав, автоматом, визначення змінної tmignore як int, що було помилкою, замінивши на  uint32_t поки все норм працює.
Дякую Honey за допомогу.

Остання редакція Partyzan (2022-01-08 17:32:04)

Неактивний

#5 2022-01-08 17:23:30

г0сть
Гість

Re: Датчик вібраціїї

Заведите переменную - флаг. Если флаг не выставлен и сработал датчик-отправили смс, флаг взвели. Через заданный интервал или по условию флаг сбрасываете и все повторяется

#6 2022-01-08 17:39:08

Partyzan
Учасник
Зареєстрований: 2021-11-21
Повідомлень: 7

Re: Датчик вібраціїї

Попробую ще з флагом змінної (правда поки не дуже з цим).
З'ясував, що датчик не особливо то регулює чуттєвість, або потрібно норм так приложитися, щоб спрацював, або трошки зачепи щоб була дія.
Ще думаю спробувати приєднати такий https://fastdrive.com.ua/62290-dvuhzonovyy_datchik_udara_analogovyy_convoy_fss-2.html, тут нормальне регулювання чутливості і є два виходи, зона попередження і тривоги. Правда не відомі параметри виходу.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму