Нестабильные показания аналогового датчика

У меня есть плата Arduino Uno (неоригинальная копия), обычный ЖК-дисплей SPI и модуль аналогового УФ-датчика GUVA-S12SD. Плата (с питанием через USB) считывает данные с аналогового контакта 0, преобразует их в напряжение (умножая показания на (5,0/1023,0)) и распечатывает их на ЖК-дисплее.

При освещении УФ-фонариком датчик дает нестабильные показания, варьирующиеся в пределах 0,03-0,04 В за каждый цикл считывания. Я полный нуб в электронике, поэтому хочу спросить, как можно проверить, где проблема? Это моя ошибка в проводке, неисправный модуль, просто нормальное поведение аналогового датчика или что-то еще?

Модуль датчика шахты не от Adafriut и выглядит немного иначе, тот, что на схеме, просто показывает общую проводку.

Спасибо! схема подключения

(Описание сенсорного модуля: https://www.electroschematics.com/11509 /guva-s12sd-uv-sensor-module-circuit/ )

Код эскиза:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
int sensorValue;
float sensorVoltage;
LiquidCrystal_I2C lcd(0x27,16,2);  // настройка дисплея
void setup() {
  lcd.init();                     
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("");
}

void loop() {
  sensorValue = analogRead(A0);
  sensorVoltage = sensorValue * (5.0 / 1023.0);
  lcd.setCursor(0, 0);
  lcd.print(sensorVoltage/0.1); // ожидается довольно низкое напряжение
  delay(1000);
}

Обновление: я попытался измерить выходной сигнал мультиметром (как предложил Васекдвор в ответах), и он показал очень похожие результаты: непрерывные колебания 0,04–0,07 В. Их величина, кажется, растет вместе с интенсивностью освещения.

Когда датчик не освещен, мультиметр показывает напряжение 0,006 В (иногда меняющееся на 0,007 В) между контактом A0 и землей.

, 👍0

Обсуждение

опубликуйте свой код в вопросе, чтобы мы тоже могли это проверить, @MichaelT

Код добавляется в вопрос., @Nick L

Я знаю, вы сказали, что ваш датчик выглядел иначе, чем тот, который изображен на схеме… но вы уверены, что он подключен к выходу A5? Большинство из них, которые я вижу в продаже, имеют выход на крайнем левом контакте., @MrFixIt87

Попробуйте измерить выходной сигнал этого датчика мультиметром, а не ардуино. Согласно опубликованной вами ссылке на описание этого датчика, должно быть что-то от 0 В до 1 В. Таким образом мы сможем узнать, есть ли проблема в датчике или в коде., @Vasekdvor

Да, именно мой датчик имеет выход на внешнем контакте вместо среднего, и этот контакт подключен к аналоговому входу A0 Arduino., @Nick L

Спасибо за идею! Выход проверю, как только получу мультиметр, может быть, завтра или через день. Я предполагаю, что датчик может выдать чуть больше 1 В под сильным ультрафиолетовым излучением, но с Солнцем, фильтруемым атмосферой, в качестве источника ультрафиолета, он не должен выходить за рамки этого., @Nick L

да, вы правы, оно должно давать 1170 мВ и более, если действительно сильный УФ-излучение., @Vasekdvor

Имейте в виду, что маловероятно, что ваш фонарик излучает ультрафиолетовый свет. Если вы видите своими глазами свет, исходящий от фонарика, то это не УФ. Фиолетовые фонарики, похожие на черный свет, обычно излучают ультрафиолетовый свет, и ваш датчик может быть не очень чувствителен к этой длине волны. Проверьте датчик под прямыми солнечными лучами., @Jeff Wahaus

Я попытался измерить выходной сигнал мультиметром, и он показал очень похожие результаты: непрерывные колебания 0,04-0,07 В. Я добавил небольшое обновление в свой пост с вопросом., @Nick L

Датчик показывает напряжение примерно 1,7 В, когда фонарик находится на расстоянии около 40 см, поэтому я предполагаю, что он дает достаточно света в пределах спектра чувствительности датчика. Я, конечно, попробую под прямыми солнечными лучами, но сейчас на улице довольно пасмурно и темно., @Nick L

@NickL, так что, вероятно, с твоим чипом что-то не так., @Vasekdvor

@Greenonline Я знаю это, но из-за ограничений StackExchange (недостаточный рейтинг) у меня не было разрешения писать комментарий под его сообщением, теперь у меня есть, поэтому, если вы хотите это сделать, измените свою политику (StackExchange) ., @Vasekdvor


1 ответ


Лучший ответ:

2

датчик выдает нестабильные показания, варьирующиеся в пределах 0,03-0,04 В каждое. цикл считывания

Если ваш датчик выдает напряжение от 0 до 5 В, а вы получаете отклонение всего от 0,03 до 0,04, то я бы сказал, что он работает довольно хорошо. Вы можете получить более стабильный результат, усреднив несколько показаний перед их печатью.

Кроме того, для еще более стабильных показаний рассмотрите возможность питания Audrino от аккумулятора. Питание USB может создавать значительный уровень шума, если оно поступает из USB-порта ПК или ноутбука. Кроме того, существует режим низкого шума, в котором вы можете перевести Arduino в спящий режим во время чтения АЦП (и после этого он просыпается), что очень помогает в снижении шума АЦП.

,

Спасибо за идею усреднения! Arduino питался от USB-зарядного устройства для телефона (дорожный адаптер Samsung, выход 5 В, 2 А) для одного из тестов и от USB-порта ноутбука для остальных попыток. Стоит ли попробовать запитать его от павербанка или взять обычные аккумуляторы без всяких контроллеров заряда/разряда?, @Nick L

Батареи, скорее всего, дадут вам самый тихий источник питания, но если вам придется использовать импульсный стабилизатор напряжения, на 5 В возникнут некоторые пульсации. Дорожный адаптер или PowerBank, вероятно, будут лучше, чем USB-порт ПК. Единственный способ узнать наверняка — посмотреть на источник питания 5 В с помощью осциллографа. Линейные стабилизаторы напряжения имеют самый низкий уровень шума, но за счет потери энергии, что может быть проблемой для устройств с батарейным питанием., @Jeff Wahaus

Я попробовал использовать powerbank для питания платы, но ничего не изменилось (по крайней мере, заметно или измеримо). Пока не нашел достаточно батареек АА для питания Ардуино. Я думаю, что просто усредню показания, единственное, что беспокоит, это то, что сам датчик в порядке и работает более или менее правильно., @Nick L

После усреднения 10 или 15 измерений результат выглядит довольно стабильным, так что я думаю, что это хорошее решение, спасибо!, @Nick L