Как устранить сильную аномальную выходную мощность датчика?

analog-sampling seeeduino-xiao

Описание проблемы

Когда микроконтроллер XIAO подключен к выводу выходного сигнала датчика, продолжайте печатать неожиданные значения.

Скетч У меня нет схемы датчика, вы можете перевести на машинный перевод и прочитать страницуhttps://www.yuque.com/cs/products/rwe87o

Подробное описание:

Датчик выдавал исходное значение около 4000. То есть преобразование выходных данных функции составляет около 1600000 ~ 400000. Не те значения от 0 до 30, которые я ожидал вывести.(Я попытался использовать другую плату разработки ESP32 для считывания значения датчика с помощью АЦП и его собственного вывода питания и по-прежнему выводил исходное значение 4000 (выход 1600000 ~ 400000), как показано на рисунке ниже.)

Ненормальный выход

Vendor-supplied sample code

Нормальный выход:

Это тот результат, который я ожидаю, но я не могу воспроизвести нормальный результат (в прошлом месяце очень редко был нормальный результат, я не знаю, почему он не может нормально выводиться сейчас, и окружающая среда не изменилась...Аналоговые схемы слишком похожи на колдовство ...)

Я стараюсь делать:

  1. Измеренный с помощью цифрового мультиметра ESP32 и XIAO, вывод источника питания (для измерения напряжения между 3,3 В и выводом GND) составляет около 3,1 В ~ 3,3 В (возможно, мои положительные и отрицательные датчики не точны).

  1. Проверьте АЦП XIAO с помощью вывода ADC на вывод GND на наличие каких-либо проблем с аналоговыми выводами, считывающими GND и VCC соответственно, с разрешением 12 бит и выходом 100 и 4000 + соответственно.С СЯО все в порядке.

  2. Датчик подключает TTL к разъему питания USB, но выходной сигнал по-прежнему ненормальный.(Я использовал вывод PWM от esp32 или xiao MCU для вывода аналогового 3,3 В, результаты те же, что и при ненормальном выходе)

  3. Если выходной сигнал датчика подключен к MCU, выводится высокое значение 4000 (исходное значение). Кажется, проблема с питанием, кто-нибудь подскажет мне, как свести к минимуму эффект пульсации мощности и обеспечить стабильную мощность 3,3 В, обеспечиваемую батареей? Но когда я отключаю датчик от сети, микроконтроллер выдает случайные значения, и я не хочу, чтобы на выход датчика влияли другие факторы.

  1. DMM проверяет выход датчика и вывод GND отдельно, используя только DMM, датчик, аккумуляторный модуль 3,3 В и макетную плату: (Это одна линия Dupont 3P, и цвета выбираются случайным образом.У меня не было ошибки подключения. Если проводка неправильная, ни микроконтроллер, ни датчик не будут работать должным образом, не говоря уже о выходных сигналах) 22-04-04-23-35-46.gif Качество моего DMM оставляет желать лучшего, я измерю его, когда прибудет мой FLUKE17B +.

Используйте MCU для считывания значения, конечно же, на выходное значение не влияет включение или выключение питания, поскольку выходное значение превышает 100000 (исходное значение составляет 4000,12 бит).

Другое

Спросили в магазине, служба поддержки клиентов сказала, что это ненормально, датчик должен выводить значение 0 ~ 500, если датчик контролирует текущий выходной сигнал 200 ~ 400, а не контролирует общий выходной сигнал в диапазоне 0 ~ 30.

Информация об оборудовании

Пример кода XIAO EMG: EMG.ino · GitHub

Параметры датчика: {ED0056}Датчик

Общее описание микроконтроллеров XIAO: Начало работы с Seeeduino XIAO - Seeed Wiki

Руководство по эксплуатации микроконтроллеров XIAO: https://files.seeedstudio.com/wiki/Seeeduino-XIAO/res/ATSAMD21G18A-MU-Datasheet.pdf

Как мне решить проблему СЯО с ненормальным выходом датчика?

, 👍2

Обсуждение

Пожалуйста, добавьте схему к вашему вопросу. Совершенно не ясно, как все компоненты взаимосвязаны. Правильно ли вы соединили все основания?, @StarCat

На вашей электрической схеме (fritzing) Vcc и заземление датчика справа подключены к верхней шине питания. Хотя другой связи с этим рельсом нет. Откуда берется питание и подключение датчика к сети?, @chrisl

Десять дней назад я подключил вывод питания USB к модулю TTL, и он мог выводить обычные сигналы. Однако вывод 3,3 В USB-to-TTL - только один., @C.SH.K

Моим шести датчикам требуется шесть контактов 3,3 В, аккумуляторный модуль подает питание на датчик, но осциллограф выдает исходное значение датчика выше 4000., @C.SH.K

на Леонардо вы питаете его от контакта 3,3 В? Аналоговые контакты Leonardo считывают значения от 0 до 5 В, а аналоговый вход xiao - от 0 до 3,3 В, @Juraj

@Juraj В руководстве по датчику указано, что выходной аналоговый диапазон составляет от 0 до 3,0 В, что находится в пределах диапазона приема xiao., @C.SH.K

может ли быть так, что регистры xiao поддерживают только выравнивание по стороне msb, в то время как arduino по умолчанию использует выравнивание по lsb? можно попытаться проверить показания arduino (или любой другой рабочей установки) против xiao при тех же условиях, чтобы разобраться в этом. или, еще лучше, по аналогии с горшком., @Abel

@Abel Я использовал показания функции analogread, предоставленные аппаратной библиотекой Arduino, не имея опыта низкоуровневой отладки. Если разрешение установлено на 16 бит, то выход будет 1000-60000. Я протестировал аналоговые контакты на другой плате разработки (ESP32) с теми же результатами. Сейчас я связываюсь с производителем датчиков, чтобы попытаться решить эту проблему. Производитель утверждает, что технические специалисты используют контакты источника питания, предоставленные платой разработки, такой проблемы, как у меня, нет., @C.SH.K


2 ответа


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

1

Первое, что я замечаю на вашей фотографии, это то, что у вас неправильно расположены провода 3,3 В и GND на плате микроконтроллера Xiao. Это действительно даст вам неправильные результаты.

Пожалуйста, смотрите распиновку на изображении ниже.

Pinout of the Xiao Microcontroller board

Ваша электрическая схема Fritzing имеет правильную проводку для 3,3 В и GND.

Пожалуйста, проведите пару тестов, чтобы проверить вашу настройку, как только проводка будет исправлена. Сначала снимите датчик и с помощью потенциометра подайте аналоговый сигнал на вход A0. Убедитесь, что потенциометр выдает правильную реакцию, которую вы ожидаете, и перепроверьте ее с помощью осциллографа или цифрового мультиметра (DMM).

Во-вторых, включите питание только датчика и проверьте выходной сигнал датчика с помощью осциллографа или цифрового преобразователя. Это должно выглядеть как чистый аналоговый сигнал, который вы ожидаете.

Если эти два теста пройдут успешно, то при подключении датчика к плате микроконтроллера Xiao он должен работать должным образом.

,

Привет, не в ту сторону. Просто цвет линий вводит вас в заблуждение. Я был введен в заблуждение его цветом, обратным подключением MCU с коротким замыканием. (Я повторно загружу фотографию, чтобы вы могли ее увидеть.) Вчера я протестировал СЯО с помощью потенциометра, и все в норме. Я думаю, что, возможно, что-то не так с самим датчиком. Мультиметр для измерения напряжения между GND датчика и выходом датчика составляет 0,15 ~ 0,20 В. Датчик показывает опорное напряжение 1,5, а затем диапазон от 0 до 3 вольт, что заставило меня задуматься, правильно ли он будет работать с analogRead ();, @C.SH.K

Приятно слышать, что он был подключен правильно и что вы только что подключили его с помощью красного для GND и черного для 3,3 В. Однако это неизбежно вызовет путаницу, которая может привести к ошибкам. Пожалуйста, выполните тесты в нижней части ответа, чтобы определить, связана ли неисправность с датчиком или микроконтроллером., @sa_leinad

Это интегрированная линия 3P, случайный подарок продавца разных цветов линии. По-видимому, при подключении любого микроконтроллера к датчику возникает ненормальный выходной сигнал. Я связываюсь с производителем, чтобы решить эту проблему.Кроме того, у меня не было ошибки подключения. Если проводка неправильная, ни микроконтроллер, ни датчик не будут работать должным образом, не говоря уже о выходных сигналах (эти тесты были протестированы вчера. К сожалению, он не может выдать желаемый чистый сигнал), @C.SH.K

У меня нет осциллографа, а цифровой преобразователь, который у меня есть, низкого качества. Я разместил заказ на FLUKE 17B + онлайн, и я буду использовать его для проверки выходного сигнала датчика через несколько дней., @C.SH.K

Похоже, вы почти уверены, что это датчик, поэтому выполните тест датчика, при котором вы только включаете питание датчика и измеряете выходной сигнал с помощью цифрового преобразователя. Даже цифровой преобразователь низкого качества даст вам достаточно информации, чтобы определить, исправен датчик или нет., @sa_leinad


1

Теперь это решаемая проблема. Я был таким глупым, потому что я не подключил микроконтроллер к источнику питания датчика, поэтому микроконтроллер не мог измерить значение датчика с помощью эталонной мощности.

![image|667x500](upload://6MZQ5bHsZdZKAhBULisPfXrMJu9.png)

,