Датчик давления с АЦП HX710B подключение к ардуино

svorog
Offline
Зарегистрирован: 27.04.2017

Здравствуйте. Пытаюсь подключить датчик MPS20N0040D  к леонардо. Датчик если верить даташиту рассчитан на 0-40кПа. Датчик распаян на АЦП HX710B. вот так он выглядит на Али 

 Так как, библиотеки под конкретный АЦП не нашел решил использовать библиотеку от его брата NX711. Проверка нескольких библиотек показала что стабильнее всего датчик работает на библиотеке Q2HX711.h в остальных библиотеках у меня почему то получался плавно нарастающий сигнал, видимо все-таки есть какие то не стыковки библиотек. Остановившись на этой библиотеке так же решил применить ФНЧ для стабилизации сигнала, т.к. датчик очень чувствительный и сигнал дребезжал даже при ударе по столу. Для проверки датчика использую вот такой код: 

#include <Q2HX711.h>
Q2HX711 hx711(A0, A1);
long X;  
const float K = 0.02;
long val = 0;
void setup() {
    Serial.begin(115200);
 }
void loop() {
X=(hx711.read()/2000);  // здесь дополнительно делю что бы уменьшить выходной сигнал на графике
int pot = X;
val = val*(1-K) + pot*K;
Serial.print("$"); 
Serial.print(X);
Serial.print(" ");  
Serial.print(int(val));
Serial.println(";"); 
delay(10);
}

  Немного странный вывод данных в сериал порт для работы с программой SerialPortPlotter, кстати достаточно удобная прога для вывода графика.

Данные выводит в сериалпорт в своих попугаях, но вот собственно проблема, выходной сигнал имеет очень малый диапазон, и имеет определенный порог, после которого показания замирают и не увеличиваются, если не использовать делитель то то это значение 16777215, после чего показания встают замертво пока не сбавишь давление. Подключив манометр выяснил что этот порог примерно в 10кПа, т.е датчик работает только на четверть диапазона.

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

Может кто то может поделиться другой библиотекой  для работы с подобным модулем с SCL и OUT выходом?

https://aliexpress.ru/item/32923552711.html?spm=a2g0s.9042311.0.0.264d33edes6F0T

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

16777215 ака 0xffffff - максимальное число, которое можно представить тремя байтами.

svorog
Offline
Зарегистрирован: 27.04.2017

Спасибо, что то подобное предполагал, а есть какой то выход из ситуации? как все же получить данные по всему диапазону?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

svorog, это нужно искать в дэйташите на датчик. Лично я этим датчиком никогда не интересовался, а мое замечание собственно датчика никак не касается, - просто обратил Ваше внимание, что датчик, скорее всего, выдает 3 байта данных, а уж как применить это обстоятельство к датчику, повторюсь, надо читать дэйташит.

Может, библиотека для 711 и близко не подходит к 710...

Гриша
Offline
Зарегистрирован: 27.04.2014

на этом сайте есть ДШ гууугля переводит норм  тот, что на 8 страниц вам в помощь. опрашивать его не сложно... вроде бы. 

тайминги есть, описание есть, можно и ручками его опросить, да и вообще - читать ДШ очень полезно :)


Когда вывод вывода данных DOUT высокий, это означает, что
Аналого-цифровой преобразователь не готов к выводу данных.
Входной сигнал синхронизации PD_SCK должен быть низким. Когда DOUT идет высоко
После того, как уровень понизится, PD_SCK должен ввести от 25 до 27
И другие тактовые импульсы (рисунок 2). Один из первых тактовых импульсов
Нарастающий край
(MSB), до завершения 24-го тактового импульса, 24-битный выход
Выходные данные выводятся из старшего бита в младший бит. двадцать пятый
До 27 тактовых импульсов для выбора следующего аналого-цифрового преобразования
Скорость передачи данных и входной сигнал см. В таблице 3.
Количество входных тактовых импульсов PD_SCK должно быть не менее 25 и более
На 27, иначе это вызовет ошибку последовательной связи.
Когда входной сигнал или выходной сигнал аналого-цифрового преобразователя
При замене аналого-цифровому преобразователю требуется 4 цикла вывода данных, прежде чем
Может быть стабильным. DOUT будет идти с высокой после 4 циклов вывода данных
Уровень меняется на низкий уровень, выводить действительные данные
--------------------------------------------------------------------------------
DESCRIPTION Based    on    Avia    Semiconductor’s    patented    technology, HX710C is a precision 24-bit analog-to-digital  converter  (ADC)  with  built-in  load-cell  power    switch    to    reduce    load-cell    power    consumption 
The  input  low-noise  amplifier  (PGA)  has  a  fixed  gain  of  128,  corresponding  to  a  full-scale  differential  input  voltage  of  ±20mV,  when  a  5V  reference  voltage  is  connected  to  the  VREF  pin.

 

Electron27
Offline
Зарегистрирован: 01.12.2020

Несколько дней "промучился" с этой проблемой, датчик точно также работал до 10 кПа. Решением было запустить питание на вторую(или пятую, смотря откуда смотреть) ножку датчика MPS20N0040D питание не "чистые" 5 вольт,  а через резистор 15 кОм.  

5N62V
Offline
Зарегистрирован: 25.02.2016

Electron27 пишет:

Несколько дней "промучился" с этой проблемой, датчик точно также работал до 10 кПа.

Мысля вслух: может на АЦП есть несколько диапазонов измерения, и Вы используете на самый большой?

svorog
Offline
Зарегистрирован: 27.04.2017

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

Electron27
Offline
Зарегистрирован: 01.12.2020

Работает в полном диапазоне. При неизменном давлении параметры не изменяются. Библиотека Q2HX711.  Калибровал измерительной головкой от механического тонометра, как раз удобно, там шкала до 300мм ртутного столба, а это 39.9кПа

Electron27
Offline
Зарегистрирован: 01.12.2020

Может быть, но для этого датчика нет правильной библиотеки. С моей точки зрения, здесь была проблема именно в резисторном делителе датчика давления. 

Electron27
Offline
Зарегистрирован: 01.12.2020

Может быть, но для этого датчика нет правильной библиотеки. С моей точки зрения, здесь была проблема именно в резисторном делителе датчика давления. 

5N62V
Offline
Зарегистрирован: 25.02.2016

был бы даташит не на китайском - библиотеку можно написать.

Если бы передо мной стояла задачи кровь из носу использовать этот датчик, то я выкинул бы этот странный ацп, поставил бы инструментальный операционник с диф входом, и завел бы сигнал на АЦП контроллера. 

lluceu
lluceu аватар
Offline
Зарегистрирован: 21.07.2020

Поправьте, если не верно понял. Вы отпаяли 2-ю ногу от платы и соединили её с VCC через резистор 15кОм таким образом и диапазон увеличился до заявленных ~ 40кПа?

Electron27
Offline
Зарегистрирован: 01.12.2020

Да, все правильно. Необходимо отпаять ножку датчика от контактной площадки. Резистор припаять непосредственно к ножке датчика. Или же, резстор припаять между контактной площадкой и ножкой датчика.

lluceu
lluceu аватар
Offline
Зарегистрирован: 21.07.2020

Вы меня спасли! Сейчас буду пробовать

pav4
Offline
Зарегистрирован: 21.04.2015

резистор на сколько ватт использовать?

Electron27
Offline
Зарегистрирован: 01.12.2020

Любой, какой есть, от 0.125

zlavick
Offline
Зарегистрирован: 11.02.2021

Electron27, А резистор на 15кОм обусловлен даташитом или экспериментально подобран?

В наличии был только на 10кОм, увеличил диапазон примерно до 33кПа. 

На 20кОм можно поставить, или не хватит питания, не будет работать?

Lilz
Offline
Зарегистрирован: 23.03.2021

Здравствуйте, не могли бы вы проконсультировать по некоторым вопросам по этому датчику, тоже мучаюсь не могу нормально его подключить 

 

Bob2021
Offline
Зарегистрирован: 10.08.2021

А можно ли измерять этим датчиком вакуум? (80 мм рт ст)

Kolya Khachatryan
Offline
Зарегистрирован: 29.11.2021
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ну, возможно три варианта:

1. Горизонтально.

2. Вертикально.

3. Под наклоном.

Kolya Khachatryan
Offline
Зарегистрирован: 29.11.2021

После просьбы о помощи я искал и все же нашел. Оказывается что можно и верх головой        

Kolya Khachatryan
Offline
Зарегистрирован: 29.11.2021

Как можно показать фото? Я покажу схему подключения этого рода сенсора.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Kolya Khachatryan пишет:

Как можно показать фото? Я покажу схему подключения этого рода сенсора.

Добавь фото в сообщение. Вверху значки смотри. 

Kolya Khachatryan
Offline
Зарегистрирован: 29.11.2021

Не слепой. Нажму на этот квадрат указывает только  ,,выбор на сервере,,. Из за этого вместо маленькой фото я поставил  длиннейшую ссылку. Все же должен быть способ поставить фото из моего компа. Поэтому и спрашиваю.

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Так загрузи на сервер и выбери с него. А говоришь, что не слепой...

Kolya Khachatryan
Offline
Зарегистрирован: 29.11.2021

Какой сервер? Как загрузить? Вопрос за вопросом, ответы на которых не нахожу в этом форуме. Лучше бы пересмотрели формат сайта. Я врач нейрохирург, мне 68 и а не обязан знать все жаргоны онлайн посетителей, или как их там называют. Я не привык такого тона и покину этот форум. Я зашел в форум чтобы получить ответ на мой вопрос. После этого нашел ответ на другом месте. Оказывается, что нужна определенная схема, хотел поделиться. Не получилось. Извените. Пока.  

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Kolya Khachatryan пишет:
Я врач нейрохирург, мне 68 и а не обязан знать все жаргоны онлайн посетителей, или как их там называют. Я не привык такого тона и покину этот форум. Я зашел в форум чтобы получить ответ на мой вопрос. После этого нашел ответ на другом месте. Оказывается, что нужна определенная схема, хотел поделиться. Не получилось. Извените. Пока.  

Извенили. Пока.

nik182
Offline
Зарегистрирован: 04.05.2015

Ну вот, тему для начинающих в песочнице где всё разжёвано по шагам прочитать не смог, а форум виноват. Да, о времена, о нравы.

dunkel
Offline
Зарегистрирован: 28.03.2017

Дабы не плодить темы спрошу здесь. Есть вышеуказанный HX710, при подключении к Nano все прекрасно работает, показывает атмосферные 750, ежели подуть в трубочку - значения увеличиваются, вобщем все хорошо.

Но! Мне надо подключить этот чудо-девайс к ESP. А при питании от 3,3В он уже показывает совсем другое. И ладно бы 1620 вместо 750 - коэффициентом можно поправить, но эти значения уменьшаются при увеличении давления, а не увеличиваются, как при питании от 5В.

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

На NODEMCU есть 5 вольт, контакт Vin

dunkel
Offline
Зарегистрирован: 28.03.2017

Есть. Я так в свое время bmp180 подключил. И 5В прилетело обратно на ESP. Дыма конечно не было, но и признаков жизни тоже.

Поаккуратней с такими советами.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

dunkel пишет:

Есть. Я так в свое время bmp180 подключил. И 5В прилетело обратно на ESP. Дыма конечно не было, но и признаков жизни тоже.

Поаккуратней с такими советами.

для этого есть преобразователи уровней, для тех выводов, что не толерантны к 5 вольтам

dunkel
Offline
Зарегистрирован: 28.03.2017

Я их купил две штуки, это вариант Б.

Но в даташите написано 2,6-5,5В. Т.е. эта штука должна работать от 3,3В, и это вопрос программный, о чем я и спрашивал.

Electron27
Offline
Зарегистрирован: 01.12.2020

Вообще не понимаю проблемы. Запитываете ESP от dc-dc преобразователя(стоит копейки) и всего делов. Ваша нана питается от 5вольт, а esp от 3.3.

dunkel
Offline
Зарегистрирован: 28.03.2017

Сам придумал, или кто подсказал?