Алкотестер на базе датчика MQ-3 и Arduino


В настоящем проекте используется датчик содержания алкоголя MQ-3. Благодаря плате с датчиком SparkFun Gas Sensor Breakout Board, вы сможете подключить MQ-3 к микроконтроллеру Arduino для определения уровня промилле по вашему дыханию.

MQ-3 управляется теплотой вашего дыхания и определяет наличие алкоголя. Датчик выдает аналоговый сигнал (обычно интерпретируется в числовые величины от 150 до 1023, в зависимости от длительности нагрева датчика), который обрабатывается и интерпретируется программным кодом Arduino, с возможностью калибровки.

Сборка устройства
При подключении MQ-3 к плате SparkFun Breakout Board следуете принять во внимание, что полярность MQ-3 не играет никакой роли. Оба вывода A аналогичны выводам B. Центральный выводы по обеим сторонам являются выводами нагревательного элемента. Схема датчика работает от источника напряжения +5В DC. При установке датчика на плату надписи и логотип компании SparkFun должны находиться снизу, а датчик сверху платы!

Примечание: Поскольку MQ-3 может нагреваться и даже испускать посторонний запах при первом использовании. Это вполне нормально.

Калибровка: Если вы не будете спешить, то сможете узнать, какие цифровые значения соотносятся с процентными соотношениями и даже с концентрацией алкоголя в крови в случае использования алкогольно-респираторной трубки.

Разумеется, вам необходимо выполнить калибровку датчика MQ-3 на основании показаний датчика, вычисленных программным кодом Arduino, поскольку они могут изменяться. Для калибровки вы можете использовать бутылочку с изопропиловым спиртом для получения различных процентных соотношений во время тестирования. Не опускайте датчик в спирт! Просто позвольте парам спирта попасть на датчик и выполните считывание показаний.

Программный код
Программный код для Arduino представлен ниже.
int mq3_analogPin = A0; // connected to the output pin of MQ3
 
void setup(){
Serial.begin(9600); // open serial at 9600 bps
}
 
void loop()
{
// give ample warmup time for readings to stabilize
 
int mq3_value = analogRead(mq3_analogPin);
Serial.println(mq3_value);
 
delay(100); //Just here to slow down the output.
} 

По материалам сайта

8 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.