Как устранить сильную аномальную выходную мощность датчика?
Описание проблемы
Когда микроконтроллер XIAO подключен к выводу выходного сигнала датчика, продолжайте печатать неожиданные значения.
Скетч У меня нет схемы датчика, вы можете перевести на машинный перевод и прочитать страницуhttps://www.yuque.com/cs/products/rwe87o
Подробное описание:
Датчик выдавал исходное значение около 4000. То есть преобразование выходных данных функции составляет около 1600000 ~ 400000. Не те значения от 0 до 30, которые я ожидал вывести.(Я попытался использовать другую плату разработки ESP32 для считывания значения датчика с помощью АЦП и его собственного вывода питания и по-прежнему выводил исходное значение 4000 (выход 1600000 ~ 400000), как показано на рисунке ниже.)
Ненормальный выход
Нормальный выход:
Это тот результат, который я ожидаю, но я не могу воспроизвести нормальный результат (в прошлом месяце очень редко был нормальный результат, я не знаю, почему он не может нормально выводиться сейчас, и окружающая среда не изменилась...Аналоговые схемы слишком похожи на колдовство ...)
Я стараюсь делать:
- Измеренный с помощью цифрового мультиметра ESP32 и XIAO, вывод источника питания (для измерения напряжения между 3,3 В и выводом GND) составляет около 3,1 В ~ 3,3 В (возможно, мои положительные и отрицательные датчики не точны).
Проверьте АЦП XIAO с помощью вывода ADC на вывод GND на наличие каких-либо проблем с аналоговыми выводами, считывающими GND и VCC соответственно, с разрешением 12 бит и выходом 100 и 4000 + соответственно.С СЯО все в порядке.
Датчик подключает
TTL к
разъему питания USB, но выходной сигнал по-прежнему ненормальный.(Я использовал вывод PWM от esp32 или xiao MCU для вывода аналогового 3,3 В, результаты те же, что и при ненормальном выходе)Если выходной сигнал датчика подключен к MCU, выводится высокое значение 4000 (исходное значение). Кажется, проблема с питанием, кто-нибудь подскажет мне, как свести к минимуму эффект пульсации мощности и обеспечить стабильную мощность 3,3 В, обеспечиваемую батареей? Но когда я отключаю датчик от сети, микроконтроллер выдает случайные значения, и я не хочу, чтобы на выход датчика влияли другие факторы.
- DMM проверяет выход датчика и вывод GND отдельно, используя только DMM, датчик, аккумуляторный модуль 3,3 В и макетную плату: (Это одна линия Dupont 3P, и цвета выбираются случайным образом.У меня не было ошибки подключения. Если проводка неправильная, ни микроконтроллер, ни датчик не будут работать должным образом, не говоря уже о выходных сигналах) Качество моего 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
Как мне решить проблему СЯО с ненормальным выходом датчика?
@C.SH.K, 👍2
Обсуждение2 ответа
Лучший ответ:
Первое, что я замечаю на вашей фотографии, это то, что у вас неправильно расположены провода 3,3 В и GND на плате микроконтроллера Xiao. Это действительно даст вам неправильные результаты.
Пожалуйста, смотрите распиновку на изображении ниже.
Ваша электрическая схема 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
Теперь это решаемая проблема. Я был таким глупым, потому что я не подключил микроконтроллер к источнику питания датчика, поэтому микроконтроллер не мог измерить значение датчика с помощью эталонной мощности.
- Подключение HX711 к трехпроводному датчику нагрузки
- Сопряжение наушников TRRS с Arduino Uno
- Arduino Micro + Max4466 — Шум на A0
- Seeeduino СЯО запись и чтение ШИМ продолжительность (период) с помощью таймеров
- Выводы Portenta для АЦП
- Отрицательное напряжение АЦП Arduino Due
- Частота дискретизации нескольких аналоговых контактов на Arduino
- ПИД-регулятор Arduino для симистора
Пожалуйста, добавьте схему к вашему вопросу. Совершенно не ясно, как все компоненты взаимосвязаны. Правильно ли вы соединили все основания?, @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