Відповісти

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

Назад

Огляд теми (нові повідомленні вгорі)

Solomon Klase
2022-03-30 14:49:35

I have encountered a similar problem recently, and I am trying to solve it

Partyzan
2022-01-08 17:39:08

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

г0сть
2022-01-08 17:23:30

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

Partyzan
2022-01-08 16:53:51

Попробував:


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 16:09:31

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

Honey
2022-01-08 16:03:23

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

val = digitalRead(2);
if (val != oldval) {
    oldval = val;
    Serial.println("Тест");
    if (millis() - tmignore > 0) {
        tmignore = millis() + 60*1000;
        Serial.println("SMS");
    }
}
Partyzan
2022-01-08 15:38:58

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


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

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

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