Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Прецизионный датчик кубового давления на Arduino

Форум самогонщиков Приборы и электр(он)ика
1 2 3 4 5 6 5
dee Научный сотрудник Минск 11.7K 2.7K
Отв.80  05 Апр. 26, 11:15
Как я понял разговор про этот датчик давления. И его косяки за эту цену.Виктрыч, 05 Апр. 26, 10:56
это датчик давления, который сделан ровно так же как тензодачик для весов, с резистивным мостом плюс самый дешманский АЦП. Так вот тензодатчик переводит искривление мемраны от давления в напряжение на каждом плече моста, АЦП переводит эти миливольты в попугаи, скетч переводит попугаи в мартышки и показывает на экране. Так вот если показывает неправильно значит где то отличаются коэффициенты: 1. тензодатчик 2. АЦП 3. скетч
Виктрыч Профессор Екатеринбург 11.4K 2.9K
Отв.81  05 Апр. 26, 12:00 (через 46 мин)
Я про это и талдычу. И мне попадались датчики с изначально перекошеным мостом. И соответственно АЦП выдавало перекошеный сигнал. Не помню разрядность 710, но 711 выдаёт +/- 8 лимонов при сбалансированом мосте. Но такое редкость. И разрядность АЦП перекрывает заводскую несбалансировпность датчиков. Берёшь весы допустим на кило. Они всегда их покажут. Но сбплансированый может показать и 4. А несбплансированый и 8 кг. Либо его просто перевернуть. Нам же -8 кг не нужны. Офф конечно. Но для понимания. Чем я и пользуюсь.
То есть пожключаю, определяю способности конкретной желёзки и гружу её по способностям. Чем и отличается ручное изготовление от ширпотреба.
dee Научный сотрудник Минск 11.7K 2.7K
Отв.82  05 Апр. 26, 13:51
Но сбплансированый может показать и 4. А несбплансированый и 8 кгВиктрыч, 05 Апр. 26, 12:00
я немного про другое: весы на 100гр, на 10кг и на 1т могут выдают одинаковые 2мВ/В на номинале веса, а у датчиков на один вес чувствительность может быть и 0,5 и 1,0 и 2,0 мВ/В и что бы их пересчитать в вес нужны коэффициенты. Разброс у датчиов одно партии компенсируется при помощи команды "тара" когда сигнал с АЦП от веса платформы принимается за ноль плюс "калибровка" когда на платформу ставится калибровочная гирька и сигнал с АЦП принимается за 100%, остальные веса получаются функцией map() в ардуино
сообщение удалено
sachalin-1 Доктор наук Куйбышев 598 164
Отв.83  06 Апр. 26, 04:14
Как я понял разговор про этот датчик давления. dee, 05 Апр. 26, 13:51
Спасибо, наконец разобрались: это ДД с АЦП (похеру-тензо, мензо, нано и т.д). Эта штука работает с библой НХ710В и с НХ711 (плохо ли, хорошо ли-это след вопрос). Ну и наконец-под этот ДД авторский скетч? А? (Че? нет смелых?)

Ну и не пью. Гы.Виктрыч, 05 Апр. 26, 14:15
Виктрыч, ты как всегда в своем репертуаре.

П.С. С Вербным всех!
Виктрыч Профессор Екатеринбург 11.4K 2.9K
Отв.84  06 Апр. 26, 06:37
В смысле авторский? Рабочий что ли? Обозначься, что бы я на ноуте тебя увидел, скину что есть. Сейчас на телефоне. На нём всё лишнее грохнул.
А я действительно потихоньку завязываю. Нет кайфа и куража. Одни головняки. Нах тогда это занятие. Но гнать не перестану. Друзей нельзя бросать на полдороге.

Добавлено через 28мин.:

вот рабочий на 710 библе. если это сложно упрощу.
Выдает цифирь с датчика. остается к ней вкрячить свой коэфф. Выдает график в плотер либо в монитор ИДЕ.

Сори за формат, по другому до обеда буду строить

#include "HX710.h"

////////////////////////////////////////////////////////////////
// PARAMETERS
////////////////////////////////////////////////////////////////

const int DOUT = 4;
const int PD_SCK = 3;

#define SERIAL_PLOTTER
int32_t value;
int32_t value0;

////////////////////////////////////////////////////////////////
// SETUP
////////////////////////////////////////////////////////////////

HX710 ps;

void setup() {
Serial.begin( 115200 );
ps.initialize( PD_SCK , DOUT );
while( !ps.isReady() );
ps.readAndSelectNextData( HX710_DIFFERENTIAL_INPUT_40HZ );
value0 = ps.getLastDifferentialInput();// ТУТ СБРОС ПО ВКЛЮЧЕНИЮ, ЕСЛИ НЕ НУЖЕН =0
}

////////////////////////////////////////////////////////////////
// LOOP
////////////////////////////////////////////////////////////////

void loop() {

while( !ps.isReady() );
ps.readAndSelectNextData( HX710_DIFFERENTIAL_INPUT_40HZ );
value = ps.getLastDifferentialInput();

#ifdef SERIAL_PLOTTER
Serial.println( (value -value0)/1000);//ТУТ ВКРЯЧИТЬ !!!!!!!!
#else
Serial.print( "differential input (40 Hz): " );
Serial.println( value );
#endif
delay(1000);
}

Добавлено через 17мин.:

Пс. Это кусок для проверки датчика. Если работает, копаем дальше. Если нет, либо датчик дохлый либо криво подключён.
dee Научный сотрудник Минск 11.7K 2.7K
Отв.85  06 Апр. 26, 09:11
Ну и наконец-под этот ДД авторский скетч?sachalin-1, 06 Апр. 26, 04:14
у тебя три суб-задачи (ну как задачи, два готовых примера взять) 1. подключить АЦП НХ711 и вывести инфу в порт, например как показал Виктрыч 2. подключить дисплей что бы он хоть что-то показывал 3. найти коэффициент пересчета попугаев с АЦП в давление на экране
Виктрыч Профессор Екатеринбург 11.4K 2.9K
Отв.86  06 Апр. 26, 09:37 (через 26 мин)
Я кстати его минимизировал. Работает
#include "HX710.h"
const int DOUT = 4;//подключение
const int PD_SCK = 3;//подключение
int32_t value;//цифирь с датчика
HX710 ps;

void setup() {
Serial.begin( 9600 );
ps.initialize( PD_SCK , DOUT );
}

void loop() {
ps.readAndSelectNextData( HX710_DIFFERENTIAL_INPUT_40HZ );
value = ps.getLastDifferentialInput();//чтение
Serial.println( value /1000);//ТУТ ВКРЯЧИТЬ КОЭФФ ВМЕСТО 1000!!!!!!!!

delay(1000);//пауза секунда
}
Уже можно на компе давление смотреть. Я калибровал налив в кембрик воды 2 м. Ну и приводил к 20 кРа. Зависит от точности рулетки. Не суть.
sachalin-1 Доктор наук Куйбышев 598 164
Отв.87  06 Апр. 26, 13:35
В смысле авторский?Виктрыч, 06 Апр. 26, 06:37
От автора этой ветки. С первой страницы. От gol_avto.

у тебя три суб-задачиdee, 06 Апр. 26, 09:11
Одна: выбить у вас признание - этот датчик я использую или нет.
Виктрыч Профессор Екатеринбург 11.4K 2.9K
Отв.88  06 Апр. 26, 13:48 (через 13 мин)
Нет. Есть более продвинутые датчики давления. И по-моему на них автор потом и вышел. Я уже не помню какие. Уже склероз. Но стоят они на порядок больше. И если будешь цеплять его по шине i2c провода должны быть короткие. То есть шланг тащить в прибор.
dee Научный сотрудник Минск 11.7K 2.7K
Отв.89  06 Апр. 26, 14:03 (через 15 мин)
sachalin-1, если показания не совпадают то датчик не тот или НХ711 настроен на другой диапазон, но это можно исправить подобрав коэффициент, вот тут происходит чтение попугаев с АЦП и заталкивание в экран

raw = pressure_sensor.get_value(1);
tft_out(raw);

если все работает но показания в мм.вд.ст ниже чем надо в 4 раза делаешь своему датчику костыли через коэффициент

raw = pressure_sensor.get_value(1);
raw *= 4;
tft_out(raw);

Еще можно разобраться с датчиком что у тебя есть, возможно у автора используется канал А и 128х усиление а твой подключен на канал В и имеет усиление 32, в таком случае или переделка модуля с перерезанием дорожек и напайкой проводов или программный костыль в виде х4 как в примере выше

Микросхема имеет 2 канала считывания показания счётчика: А и В:
Канал А имеет возможность выбора коэффициента усиления: 64 или 128.
Канал В имеет фиксированный коэффициент усиления, равный 32.
sachalin-1 Доктор наук Куйбышев 598 164
Отв.90  06 Апр. 26, 17:11
У меня два таких ДД (на халяву и уксус сладкий), брались как 0-40кПа и оба ведут себя одинаково-они еще и показывают в минус (т.е. вакуум) примерно столько-же, сколько и в плюс.
IMG_20260406_175408.jpg
IMG_20260406_175408. Прецизионный датчик кубового давления на Arduino. Приборы и электр(он)ика.
IMG_20260406_175422.jpg
IMG_20260406_175422. Прецизионный датчик кубового давления на Arduino. Приборы и электр(он)ика.
IMG_20260406_175441.jpg
IMG_20260406_175441. Прецизионный датчик кубового давления на Arduino. Приборы и электр(он)ика.
IMG_20260406_175612.jpg
IMG_20260406_175612. Прецизионный датчик кубового давления на Arduino. Приборы и электр(он)ика.

На шприц нажимал до тех пор, пока показания больше не менялись
gxtkjdjl Профессор Архангельск 9.4K 2.4K
Отв.91  06 Апр. 26, 17:26 (через 16 мин)
еще и показывают в минус (т.е. вакуум) примерно столько-же, сколько и в плюс.sachalin-1, 06 Апр. 26, 17:11
значит не
0-40кПаsachalin-1, 06 Апр. 26, 17:11
а -40-40кПа
Виктрыч Профессор Екатеринбург 11.4K 2.9K
Отв.92  06 Апр. 26, 17:47 (через 21 мин)
Ну они так и должны идти. Там же мост. А мне не повезло. -75/+5.Вот и пришлось покулибничать. А китайцу предьявил. Вернул деньги.
sachalin-1 Доктор наук Куйбышев 598 164
Отв.93  06 Апр. 26, 18:00 (через 13 мин)
а -40-40кПаgxtkjdjl, 06 Апр. 26, 17:26
Судя по показаниям: -5+5кПа. И с учетом того, что тип ДД соответствует скетчу с 1 стр. На этот вопрос так никто и не ответил и автор молчит.
Пойду к ИИ. Всем спасибо.
Виктрыч Профессор Екатеринбург 11.4K 2.9K
Отв.94  06 Апр. 26, 18:37 (через 38 мин)
Дык проверь настоящим водяным столбом эти 381 мм. Может там просто нолик не туда поставить(с) и будет эти 40кпа.
dee Научный сотрудник Минск 11.7K 2.7K
Отв.95  06 Апр. 26, 19:35 (через 59 мин)
Судя по показаниям: -5+5кПаsachalin-1, 06 Апр. 26, 18:00
показания у тебя может коэффициент усиления АЦП съедать, датчик 0-5кПа вместо 0-20кПа наоборот бы больше в 4 раза показывал
Volume Научный сотрудник Уфа 744 405
Отв.96  11 Апр. 26, 05:44
я делал девайс для калибровки ДД из банки с винтовой жестяной крышкой. В крышку через отверстия с герметизацией термоклеем вмонтируется а)две иголки от шприца иглой внутрь банки (через одну шприцом подаем давление в банку, к второй подключаем трубку к ДД) б)обрезок корпуса шприца 2 мл обрезком наружу штуцерной частью внутрь (к нему снаружи крепим силиконовую трубку-уровень, внутри на штуцерную часть насаживаем кембрик чтоб доставал до дна)
В банку наливаем воды, герметично закрываем крышкой, подключаем к обрезку силиконовую трубку-уровень и закрепляем ее вертикально на метровой линейке или деревяшке с метками высоты. К одной игле подключаем шприц 10..20 мл, к второй трубку к ДД.
Шприцом подали давление до поднятия воды до метки,к примеру, 400 мм, поправили линейку так чтоб ноль был на уровне воды в банке, смотрим показания давления. Если не соответствуют, корректируем в скетче коэфф.пересчета АЦП в давление. Профит
Виктрыч Профессор Екатеринбург 11.4K 2.9K
Отв.97  11 Апр. 26, 06:28 (через 45 мин)
Я по линейке шланг опускал при калибровке. И вверх и вниз. В ванной заполнил эти 2,5м, донёс до колонны и выпустив воздух с одного конца накинул на штуцер датчика. Он на полу. Ну и гонял мениск по рулетке. А 2 м потому что , повторюсь, измерял протность жижи с пиюна. Он в 2 м от пола. Это вода 20 кра. Спирт 16. Вот на эту разницу и жил. Само собой с коррекцией. Вверху 78,снизу 25,брал по среднему и в протоке. Раз в минуту клапаном обнулял датчик и делал замер. Всё по взрослому. Это я про электронный попугай. Потом понял, что нах он не нужен. Ну дык...
sachalin-1 Доктор наук Куйбышев 598 164
Отв.98  11 Апр. 26, 11:11
Вот надыбал, попробую
https://arduino.ru/...-v-15-diapazona:
"в скетче ничего менять не нужно, всё решилось подпайкой резистора 14кОм между 2-й ногой на "mps20n0040d" и VCC на плате (по совету нужно было 15кОм, но не хватило резистора. Диапазон видимо расширился не полностью, но в моём случае и этого с головой, в общем ставьте 15кОм)"
изображение_2026-04-11_120525114.png
изображение_2026-04-11_120525114. Прецизионный датчик кубового давления на Arduino. Приборы и электр(он)ика.
Виктрыч Профессор Екатеринбург 11.4K 2.9K
Отв.99  11 Апр. 26, 12:19
Вот именно! Но я отпаивал ногу тензодатчика и выправлял баланс. Заводить резистор с питания не совсем верно. Оно может скакать. И будут скакать показания. Так то мост тензодатчиков запитан от стабилизатора чипа. Если не путаю.
Сейчас посмотрел, оттопыривались левая верхняя и центральная верхняя нога судя по следам пайки. Уже не помню, какая помогла. И в разрыв резистор, что бы АЦП боле мене ноль выдавал.