Измерение газов MQ2

Maksym Karpliuk
Offline
Зарегистрирован: 18.01.2020

Нужна програма, которая будет измерять содержание метана, водорода, LPG(MQ2) и СО(MQ7), при этом должна работать как можно быстрее. Пробовал использовать библиотеку troykamq, но все 4 измерения занимают 500 милисекунд, что для меня очень много, так как при такой задержке акселерометр работает некоректно.

-NMi-
Offline
Зарегистрирован: 20.08.2018

Maksym Karpliuk пишет:
но все 4 измерения занимают 500 милисекунд, что для меня очень много

Дык а затык то в чём, в программе или в датчиках? Мошт они быстрее немогутЪ, шустрый ты наш.

Maksym Karpliuk
Offline
Зарегистрирован: 18.01.2020

Возможно, но сырое чтение аналогового сигнала на портах занимает 10мс, как можно этот сырой сигнал преобразовать в ppm?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

1. С какой целью используется библиотека?

2. Где эта библиотека? Ссылку дадите или самому гуглить?

3. Где Ваш скетч?

-NMi-
Offline
Зарегистрирован: 20.08.2018

Maksym Karpliuk пишет:

Возможно, но сырое чтение аналогового сигнала на портах занимает 10мс

Уложусь в 100-200 тактов проца, навскидку.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Maksym Karpliuk пишет:
Нужна програма, которая будет измерять содержание метана, водорода, LPG(MQ2) и СО(MQ7), при этом должна работать как можно быстрее. Пробовал использовать библиотеку troykamq, но все 4 измерения занимают 500 милисекунд, что для меня очень много, так как при такой задержке акселерометр работает некоректно.

Как то от моего сознания ускользает связь между датчиком газа и акселерометром.

sadman41
Offline
Зарегистрирован: 19.10.2016

Типа человек упал и надо понять чего он нюхнул.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Maksym Karpliuk пишет:

Возможно, но сырое чтение аналогового сигнала на портах занимает 10мс

Кто Вам сказал эту глупость?

Стандартная analogRead() на avr выполняется 0.112 мс. А на sam3 раз в 100 быстрее.

nik182
Offline
Зарегистрирован: 04.05.2015

Эти датчики имеют реакцию на изменение газовой среды несколько секунд. Как можно быстрее что то с них получить?

sadman41
Offline
Зарегистрирован: 19.10.2016

nik182, у товарища проблема иного плана. Он взял библиотечку, в которой:

#define MQ_SAMPLE_TIMES     5
#define MQ_SAMPLE_INTERVAL  20
...
float BaseMQ::readRs() const {
  float rs = 0;
  for (int i = 0; i < MQ_SAMPLE_TIMES; i++) {
    rs += calculateResistance(analogRead(_pin));
    delay(MQ_SAMPLE_INTERVAL);
  }
  rs = rs / MQ_SAMPLE_TIMES;
  return rs;
}

Читает показания с кажного датчика, как я думаю, на каждом лупе... 

nik182
Offline
Зарегистрирован: 04.05.2015

Да и пусть читает. Информацию какую он при этом получает? Как дальше использует? Куда торопиться?

Logik
Offline
Зарегистрирован: 05.08.2014

nik182 пишет:
Эти датчики имеют реакцию на изменение газовой среды несколько секунд.

Секунд?! 

))

Да там восстановление в сутки не всегда укладывается! По горизонтали - часы.