Измерение значения за период времени

gzp13
Offline
Зарегистрирован: 06.04.2015

Здравствуйте, не могу сообразить как мне производить измерения каждые 5 секунд. На весы положил груз весом 20грамм. Измерил значение, потом доложил еще груз весом 30грамм, мне нужен не полный вес, а вес доложенного груза, т.е вывести значение 30грамм. Вот код, не могу понять что надо сделать чтобы работало по нужному мне алгоритму.

 if (skorost==0)
 {
   v=Obiem_telo; //здесь запоминаем значение с весов
    skorost=1;
  }

if (millis()-t_otbor>=5000 && skorost==1 )  //через 5сек Obiem_telo увеличится
{
  t_otbor=millis();
  v=Obiem_telo-v;  //здесь рассчитываем вес текущего груза
  Serial.println(v); 
  skorost=0;
}  

 

svm
Offline
Зарегистрирован: 06.11.2016

А что выводит-то? В этом куске кода, явных косяков не видно. Правда имена переменных не совсем логичные.

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Ну собственно само измерение нужно провести, перед тем как разницу высчитывать

b707
Offline
Зарегистрирован: 26.05.2017

gzp13, выложите полный код, то что у вас - бредятина. Взвешивания нет, переменная веса называется "Обьем"? :)

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

А что "обратный инженеринг" уже отменен из-за санкций. Есть же в продаже электронные весы. Так там проблема решается кнопкой тара. Это и сброс в ноль, когда на чаше пусто, так и позволяет измерять дополнение к уже добавленному. Что бы прийти к этому оптимальному варианту, чего только не изобретали.

svm
Offline
Зарегистрирован: 06.11.2016

qwone пишет:

А что "обратный инженеринг" уже отменен из-за санкций. Есть же в продаже электронные весы. Так там проблема решается кнопкой тара. Это и сброс в ноль, когда на чаше пусто, так и позволяет измерять дополнение к уже добавленному. Что бы прийти к этому оптимальному варианту, чего только не изобретали.

Этот кусок кода похоже для весов самогонщика. По весу и спиртуозности вычисляет объем и скорость отбора продукта. Когда делал автоматику для колонны, тоже хотел такое использовать. Даже собрал на макетке, но потом понял, что место много занимают, пользы большой нет. И еще один нюанс, при подаче команды "обнуление" или "тара" измерительному блоку его на секунду переклинивает, а если за это время еще и капает, то может вообще в ошибку уйти. Так, что лучше не сбрасывать, а вычитать. Ну и библиотеки не все хорошо работают для данного девайса.

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

svm, тогда еще проще. Надо сразу отделять частоту отображения и частоту измерения. Например мерять раз в пол секунды, а отображать 2-5 секунды. Если вес не меняется например 5 секунд, то он тара. Ну а если подключить математику, то из последовательности измерений можно сразу вычислять скорость притока жидкости, и сколько накапало.