Нужен усилитель сигнала датчика качества воздуха MQ135? Датчик более высокого качества?
Я пытаюсь усилить сигнал моего датчика качества воздуха MQ135, чтобы он мог обнаруживать аэрозоли на расстоянии 3 футов, так как в настоящее время разрешение жалкое, оно колеблется только от 0,21 до 0,58, когда вы практически вставляете датчик. в носик бутылки, наполненной уксусом/медицинским спиртом.
Было бы идеально, если бы вы могли подсказать мне, какой усилитель сигнала купить, чтобы усилить сигнал, исходящий от этой платы?
В качестве альтернативы: можно ли увеличить чувствительность этого датчика?
В какой-то момент я хотел бы изобразить это на графике, поэтому я буду работать над приложением ASP.NET, которое сообщает мне, есть ли в моей комнате какие-либо аэрозоли или нет.
Вот код:
/*
График
Простой пример связи платы Arduino с компьютером:
значение аналогового входа 0 отправляется через последовательный порт. Мы называем это сериалом.
связь, потому что соединение отображается как для Arduino, так и для
компьютер в качестве последовательного порта, хотя на самом деле он может использовать
USB-кабель. Байты отправляются один за другим (последовательно) с Arduino
к компьютеру.
Вы можете использовать последовательный монитор Arduino для просмотра отправленных данных, или он может
могут быть прочитаны Processing, PD, Max/MSP или любой другой программой, способной считывать
данные из последовательного порта. Код обработки ниже отображает полученные данные в виде графика.
так что вы можете видеть, как значение аналогового входа изменяется с течением времени.
Схема:
Любой датчик аналогового входа подключается к аналоговому контакту 0.
создан в 2006 г.
Дэвид А. Меллис
изменено 9 апреля 2012 г.
Том Айго и Скотт Фицджеральд
Этот пример кода находится в общественном достоянии.
http://www.arduino.cc/en/Tutorial/График
*/
void setup() {
// инициализируем последовательную связь:
Serial.begin(9600);
}
void loop() {
// отправить значение аналогового входа 0:
Serial.println(analogRead(A0));
// ждем немного аналого-цифрового преобразователя
// для стабилизации после последнего чтения:
delay(20);
}
/* Processing code for this example
// Графический скетч
// Эта программа принимает строки в кодировке ASCII
// из последовательного порта на скорости 9600 бод и графики их. Он ожидает значения в
// диапазон от 0 до 1023, за которым следует новая строка или новая строка и возврат каретки
// Создано 20 апреля 2005 г.
// Обновлено 24 ноября 2015 г.
// Том Айгоу
// Этот пример кода находится в открытом доступе.
import processing.serial.*;
Serial myPort; // Последовательный порт
int xPos = 1; // горизонтальное положение графика
float inByte = 0;
void setup () {
// устанавливаем размер окна:
size(400, 300);
// Список всех доступных последовательных портов
// при использовании Processing 2.1 или более поздней версии используйте Serial.printArray()
println(Serial.list());
// Я знаю, что первый порт в списке последовательных портов на моем Mac
// это всегда мой Arduino, поэтому я открываю Serial.list()[0].
// Откройте любой порт, который вы используете.
myPort = new Serial(this, Serial.list()[0], 9600);
// не генерируйте serialEvent(), если вы не получили символ новой строки:
myPort.bufferUntil('\n');
// устанавливаем исходный фон:
background(0);
}
void draw () {
// нарисовать линию:
stroke(127, 34, 255);
line(xPos, height, xPos, height - inByte);
// на краю экрана возвращаемся в начало:
if (xPos >= width) {
xPos = 0;
background(0);
} else {
// увеличиваем позицию по горизонтали:
xPos++;
}
}
void serialEvent (Serial myPort) {
// получаем строку ASCII:
String inString = myPort.readStringUntil('\n');
if (inString != null) {
// обрезаем все пробелы:
inString = trim(inString);
// преобразовать в int и сопоставить с высотой экрана:
inByte = float(inString);
println(inByte);
inByte = map(inByte, 0, 1023, 0, height);
}
}
*/
/* Max/MSP v5 patch for this example
----------begin_max5_patcher----------
1591.3oc0YszbaaCD9r7uBL5RalQUAO3CvdyS5zVenWZxs5NcfHgjPCIfJIT
RTxj+6AOHkoTDooroUs0AQPR73a+1cwtK3WtZxzEpOwqlB9YveAlL4KWMYh6
Q1GLo99ISKXeJMmU451zTUQAWpmNy+NM+SZ2y+sR1l02JuU9t0hJvFlNcMPy
dOuBv.U5Rgb0LPpRpYBooM3529latArTUVvzZdFPtsXAuDrrTU.f.sBffXxL
vGE50lIHkUVJXq3fRtdaoDvjYfbgjujaFJSCzq4.tLaN.bi1tJefWpqbO0uz
1IjIABoluxrJ1guxh2JfPO2B5zRNyBCLDFcqbwNvuv9fHCb8bvevyyEU2JKT
YhkBSWPAfq2TZ6YhqmuMUo0feUn+rYpY4YtY+cFw3lUJdCMYAapZqzwUHX8S
crjAd+SIOU6UBAwIygy.Q1+HAA1KH6EveWOFQlitUK92ehfal9kFhUxJ3tWc
sgpxadigWExbt1o7Ps5dk3yttivyg20W0VcSmg1G90qtx92rAZbH4ez.ruy1
nhmaDPidE07J+5n2sg6E6oKXxUSmc20o6E3SPRDbrkXnPGUYE.i5nCNB9TxQ
jG.G0kCTZtH88f07Rt0ZMMWUw8VvbKVAaTk6GyoraPdZff7rQTejBN54lgyv
HE0Ft7AvIvvgvIwO23jBdUkYOuSvIFSiNcjFhiSsUBwsUCh1AgfNSBAeNDBZ
DIDqY.f8.YjfjV1HAn9XDTxyNFYatVTkKx3kcK9GraZpI5jv7GOx+Z37Xh82
LSKHIDmDXaESoXRngIZQDKVkpxUkMCyXCQhcCK1z.G457gi3TzMz4RFD515F
G3bIQQwcP3SOF0zlkGhiCBQ1kOHHFFlXaEBQIQnCwv9QF1LxPZ.A4jR5cyQs
vbvHMJsLll01We+rE2LazX6zYmCraRrsPFwKg1ANBZFY.IAihr8Ox.aH0oAL
hB8nQVw0FSJiZeunOykbT6t3r.NP8.iL+bnwNiXuVMNJH9H9YCm89CFXPBER
bz422p8.O4dg6kRxdyjDqRwMIHTbT3QFLskxJ8tbmQK4tm0XGeZWF7wKKtYY
aTAF.XPNFaaQBinQMJ4QLF0aNHF0JtYuHSxoUZfZY6.UU2ejJTb8lQw8Fo5k
Rv6e2PI+fOM71o2ecY1VgTYdCSxxUqLokuYq9jYJi6lxPgD2NIPePLB0mwbG
YA9Rgxdiu1k5xiLlSU6JVnx6wzg3sYHwTesB8Z5D7RiGZpXyvDNJY.DQX3.H
hvmcUN4bP1yCkhpTle2P37jtBsKrLWcMScEmltOPv22ZfAqQAdKr9HzATQwZ
q18PrUGt6Tst2XMCRUfGuhXs6ccn23YloomMqcTiC5iMGPsHsHRWhWFlaenV
XcqwgCQiGGJzptyS2ZMODBz6fGza0bzmXBj7+DA94bvpR01MffAlueO7HwcI
pWCwmzJdvi9ILgflLAFmyXB6O7ML0YbD26lenmcGxjVsZUN+A6pUK7AtTrPg
M+eRYG0qD9j4I7eEbco8Xh6WcO.or9XDC6UCiewbXHkh6xm5LiPEkzpJDRTu
mEB44Fgz4NCtJvX.SM1vo2SlTCZGAe7GZu6ahdRyzFOhYZ+mbVVSYptBw.K1
tboIkatIA7c1cTKD1u.honLYV04VkluHsXe0szv9pQCE9Ro3jaVB1o15pz2X
zYoBvO5KXCAe0LCYJybE8ZODf4fV8t9qW0zYxq.YJfTosj1bv0xc.SaC0+AV
9V9L.KKyV3SyTcRtmzi6rO.O16USvts4B5xe9EymDvebK0eMfW6+NIsNlE2m
eqRyJ0utRq13+RjmqYKN1e.4d61jjdsauXe3.2p6jgi9hsNIv97CoyJ01xzl
c3ZhUCtSHx3UZgjoEJYqNY+hYs5zZQVFW19L3JDYaTlMLqAAt1G2yXlnFg9a
53L1FJVcv.cOX0dh7mCVGCLce7GFcQwDdH5Ta3nyAS0pQbHxegr+tGIZORgM
RnMj5vGl1Fs16drnk7Tf1XOLgv1n0d2iEsCxR.eQsNOZ4FGF7whofgfI3kES
1kCeOX5L2rifbdu0A9ae2X.V33B1Z+.Bj1FrP5iFrCYCG5EUWSG.hhunHJd.
HJ5hhnng3h9HPj4lud02.1bxGw.
-----------end_max5_patcher-----------
*/
@Ycombinatordev, 👍0
Обсуждение1 ответ
▲ 1
int sensorValue;
int pin8 = 8;
void setup()
{
Serial.begin(9600);
pinMode(pin8, OUTPUT);
}
void loop()
{
sensorValue = analogRead(0); // прочитать аналоговый входной контакт 0
Serial.print(sensorValue, DEC); // печатает прочитанное значение
Serial.println("ppm");
if (sensorValue > 500) {
//Активируем цифровой выходной контакт 8 - загорится светодиод
digitalWrite(pin8, HIGH);
}
else
{
// Деактивировать цифровой выходной контакт 8 - светодиод не загорится
digitalWrite(pin8, LOW);
}
delay(50);
}
,
@Ycombinatordev
Смотрите также:
- Что выбрать между датчиками температуры и влажности: AM230x или DHT22?
- BMP280 возвращает 0
- Датчик DHT11: режим ожидания или выключение?
- Проблема с подключением датчика сердцебиения и температуры на arduino uno, но работает по отдельности
- Проблема с условием if
- DHT20 и дисплей Oled не работают вместе
- Используйте маломощный Arduino с солнечной панелью
- Полностью контролируемая аквакультура на базе Arduino
Итак, чтобы ответить на вопрос: оказывается, есть разные датчики для каждого другого обнаруживаемого там .... какой кошмар! Аммиак - MQ137 Угарный газ - MQ-7 Хлор - MQ 7 Диоксид хлора - MQ2 Этиленоксид - MQ-2 Фтор - MQ-3 гидразин Водород - MQ-8 Водородный фторид - MQ-8 Сероводород - MQ136 Оксид азота - MQ-7 Двуокись азота - MQ-4 Кислород Роща - датчик газа (O2) Артикул: 101020002 Озон - mq-3 Фосген mq-7 Фосфин mq-7 Силан - MQ-6 Диоксид серы MQ-136, @Ycombinatordev
Будет более понятно, что вы хотите получить, если вы будете обращаться к одной теме за сообщением. Какой датчик использовать; как настроить чувствительность; как отображать данные — эти три вопроса можно решать отдельно. Тратить время на то, чтобы смешать их вместе., @James Waldby - jwpat7
Что за плата именно? Поиск в Google «MQ135» показывает дискретную деталь, для которой требуется переменное калибровочное сопротивление, и затем ее необходимо откалибровать в соответствии с вашим приложением. В зависимости от платы, он может уже иметь некоторое кондиционирование/усиление., @Dave X
Спасибо, Дэйв , это всего лишь плата Arduino, я покрутил на ней переменный потенциометр, чтобы получить точные показания… я не увидел значительного усиления… https://olimex.files.wordpress.com/ 2015/05/mq-1.jpg, @Ycombinatordev
целое значение датчика; инт8 = 8; недействительная установка () { Серийный.начать(9600); pinMode (pin8, ВЫХОД); } пустой цикл () { значение датчика = аналоговое чтение (0); // прочитать аналоговый входной контакт 0 Serial.print (значение датчика, DEC); // печатает прочитанное значение Serial.println("ppm"); если (значение датчика > 500) { //Активируем цифровой выходной контакт 8 - загорится светодиод цифровая запись (контакт 8, ВЫСОКИЙ); } еще { // Деактивировать цифровой выходной контакт 8 - светодиод не загорится цифровая запись (pin8, НИЗКИЙ); } задержка(50); }, @Ycombinatordev
* «Оказывается, для каждого отдельного обнаруживаемого объекта есть отдельный датчик» * и некоторые говорят: такие датчики действительно обнаруживают частицы газа, но для дешевых датчиков вы никогда не узнаете, измеряют ли они то, что рекламируется., @Arjan