27 МОСКОВСКАЯ ВСТРЕЧА
Форум самогонщиков Сайт Барахолка Магазин 27 МОСКОВСКАЯ ВСТРЕЧА

Автоматика Самовар

Форум самогонщиков Вопросы по электр(он)ике
1 ... 58 59 60 61 62 63 64 ... 130 61
dranek Кандидат наук Минск 326 257
Отв.1200  04 Дек. 23, 12:24
Давайте здесь не будем больше обсуждать подключение к перегонному кубу датчиков давления, ибо оффтоп. Kuban мне указал верный путь, вопрос исчерпан.
Уже не актуально, оставил для историиПомогите лучше с формулой расчета сопротивления, что то не выходит каменный цветок.

Мои рассуждения:
Преобразование 15 бит, значит максимальное значение снимаем с АЦП ADSmax = b111111111111111 = 32767.
Схема делителя 3.3В - 6.2кОм - Uацп - 10кОм||Rизм -0В.
Uацп=3.3В*ADS/ADSmax
I=(3.3В-Uaцп)/6.2кОм=Uацп/(10кОм||Rизм) => (10кОм||Rизм)=(Uацп*6.2кОм)/(3.3В-Uaцп)
Rизм=1/(1/(10кОм||Rизм)-1/10кОм))

Кодирую:
float U33 = 3.4;      // точное напряжение на пине 3.3 V 
float R62 = 6.200;  // точное значение 6.2 кОм резистора
float R10 = 9.900;   // точное значение 10 кОм резистора
int   ADS = readADS(0, 16); //Читаем из АЦП
float Uacp = U33 * ADS / 32768;
float R10_izm = (Uacp * R62) / (U33 - Uacp);
float Rizm = 1 / (1/R10_izm - 1/R10);

ASOled.printString_12x16(F("ADS "), 0, 0);
ASOled.printNumber(float(ADS), 0, 52, 0);
ASOled.printString_12x16(F("Uacp"), 0, 2);
ASOled.printNumber(float(Uacp), 3, 52, 2);  
ASOled.printString_12x16(F("R|| "), 0, 4);
ASOled.printNumber(float(R10_izm), 3, 52, 4);
ASOled.printString_12x16(F("Rizm"), 0, 6);
ASOled.printNumber(float(Rizm), 3, 52, 6);

Получаю:
IMG_20231204_121818.jpg
IMG_20231204_121818. Автоматика Самовар. Вопросы по электр(он)ике.


Где косяк?
UPD.
Напряжение измеренное вольтметром на входе в 1 канал АЦП 1,53 В.
Подставил его вместо формулы расчета по ADS. Остальные формулы правильные. Косяк где то здесь Uacp = U33 * ADS / 32768;
UPD2.
Всё, задачка решена. Вместо напряжения 3.3 В надо было использовать опорное 2.05 В:
Uacp = 2.05 * ADS / 32768;
У меня третья бета Подмигивающий
Добавлен помощник подбора резисторов делителя, чтоб его задействовать нужно перед включением замкнуть между собой контакты подключения первого термистора.
Кусок описания из скетча:
ДЛЯ ТЕХ У КОГО НЕТ ТОЧНЫХ ПРИБОРОВ
Подбор резисторов в процессе сборки:
Сначала собираем АЦП с одним первым максимально точным делителем 6.2/10 кОм, вписываем их значения в константы ниже.
Вольтметром меряем напряжение питания 3.3 В и референтное с ноги А0, вписываем их ниже.
Прошиваемся уже с выбранной и возможно рассчитанной характеристикой В, см. выше и ниже.
Паяем вместо первого терморезистора 2 зажима.
Перезагружаемся с соединенными между собой зажимами, на дисплее появятся значения с 1 канала: 15 битовое с АЦП, измеренное АЦП напряжение, общее сопротивление параллельных R 10 кОм и измеряемого, и нижнее измеряемое сопротивление кОм.
Измерение не правильное, особенно с резисторами 6.2 кОм, но позволяет подбирать их одинаковыми с точностью до третьего знака после запятой.
Подбираем сопротивления 10 и 6.2 кОм так, чтобы цифры внизу были как можно более похожи, выпаиваем первый делитель и впаиваем все из подобранных.
Теперь у вас все делители максимально похожи между собой, хоть скорей всего не ровно 10/6.2 кОм, строим характеристику теперь для них и прошиваемся ещё раз.
На этом пока с измерениями сопротивлений делаю паузу, умные советы принимаются.
сообщение удалено
Defend56 Студент Оренбург 13 1
Отв.1201  05 Дек. 23, 07:30
Добрый день. Друзья, не получается скомпелировать по инструкции с сайта. ArduinoIDE v2.2.1, ESP32 by Espressif Systems v2.0.14.
Скрытый текстПРЕДУПРЕЖДЕНИЕ: библиотека LiquidCrystal_I2C должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре esp32.
ПРЕДУПРЕЖДЕНИЕ: библиотека LiquidMenu должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре esp32.
ПРЕДУПРЕЖДЕНИЕ: библиотека iarduino I2C connect (соединяет несколько Arduino по I2C) должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре esp32.
In file included from C:UsersUserDocumentsArduinoSamovarSamovar.ino:41:
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:52:123: note: #pragma message: LiquidMenu: Selected 'LiquidCrystal' (parallel) library. Edit 'LiquidMenu_config.h' file to change it.
# pragma message ("LiquidMenu: Selected 'LiquidCrystal' (parallel) library. Edit 'LiquidMenu_config.h' file to change it.")
^
In file included from C:UsersUserDocumentsArduinoSamovarSamovar.ino:63:
C:UsersUserDocumentsArduinoSamovarSamovar.h:277:26: error: no matching function for call to 'LiquidMenu::LiquidMenu(LiquidCrystal_I2C&)'
LiquidMenu main_menu1(lcd);
^
In file included from C:UsersUserDocumentsArduinoSamovarSamovar.ino:41:
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:847:3: note: candidate: 'LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, LiquidScreen&, LiquidScreen&, uint8_t)'
LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,
^~~~~~~~~~
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:847:3: note: candidate expects 6 arguments, 1 provided
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:833:3: note: candidate: 'LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, LiquidScreen&, uint8_t)'
LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,
^~~~~~~~~~
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:833:3: note: candidate expects 5 arguments, 1 provided
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:821:3: note: candidate: 'LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, LiquidScreen&, uint8_t)'
LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen1,
^~~~~~~~~~
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:821:3: note: candidate expects 4 arguments, 1 provided
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:810:3: note: candidate: 'LiquidMenu::LiquidMenu(LiquidCrystal&, LiquidScreen&, uint8_t)'
LiquidMenu(DisplayClass &liquidCrystal, LiquidScreen &liquidScreen,
^~~~~~~~~~
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:810:3: note: candidate expects 3 arguments, 1 provided
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:801:3: note: candidate: 'LiquidMenu::LiquidMenu(LiquidCrystal&, uint8_t)'
LiquidMenu(DisplayClass &liquidCrystal, uint8_t startingScreen = 1);
^~~~~~~~~~
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:801:3: note: no known conversion for argument 1 from 'LiquidCrystal_I2C' to 'LiquidCrystal&'
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:785:7: note: candidate: 'constexpr LiquidMenu::LiquidMenu(const LiquidMenu&)'
class LiquidMenu {
^~~~~~~~~~
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:785:7: note: no known conversion for argument 1 from 'LiquidCrystal_I2C' to 'const LiquidMenu&'
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:785:7: note: candidate: 'constexpr LiquidMenu::LiquidMenu(LiquidMenu&&)'
c:UsersUserDocumentsArduinolibrariesLiquidMenusrc/LiquidMenu.h:785:7: note: no known conversion for argument 1 from 'LiquidCrystal_I2C' to 'LiquidMenu&&'
C:UsersUserDocumentsArduinoSamovarSamovar.ino: In function 'void StepperTicker()':
C:UsersUserDocumentsArduinoSamovarSamovar.ino:227:27: error: 'class GStepper<(GS_driverType)0>' has no member named 'quicktick'
StepperMoving = stepper.quicktick();
^~~~~~~~~

exit status 1

Compilation error: no matching function for call to 'LiquidMenu::LiquidMenu(LiquidCrystal_I2C&)'
Может подскажите что я делаю не так?
Chernik_ Специалист Липецк 129 62
Отв.1202  05 Дек. 23, 07:54, через 24 мин
Добрый день. Друзья, не получается скомпелировать по инструкции с сайта. ArduinoIDE v2.2.1, ESP32 by Espressif Systems v2.0.14.Defend56, 05 Дек. 23, 07:30
Начни с того, что используй ArduinoIDE 1.8х. На версии 2х скомпилированный файл получается большой и не влезает в память ESP32. Еще может быть имеет смысл опустить ESP32 с 2.0.14 на 2.0.9.
Про ошибку - попробуй скачать Самовар еще раз и заменить все файлы. У меня что-то такое же было один раз - необъяснимые ошибки при компиляции, перезаливка помогла.
logvinov Магистр Москва 259 45
Отв.1203  05 Дек. 23, 08:52, через 58 мин
На днях грузил версию 6.12 ide 1.8...
Всё прекрасно загрузилось.
lkosoj Куратор Видное 495 513
Отв.1204  05 Дек. 23, 09:00, через 8 мин
не получается скомпелироватьDefend56, 05 Дек. 23, 07:30
Используется библиотека не из комплекта к Самовару.
Как уже сказали выше, нужно все библиотеки взять комплектные.
Defend56 Студент Оренбург 13 1
Отв.1205  05 Дек. 23, 09:34, через 35 мин
Используется библиотека не из комплекта к Самовару.lkosoj, 05 Дек. 23, 09:00
Все комплектное, у меня просто других нет. Опустился по рекомендации на версию 1.8.8 все прошилось. Теперь с точкой доступа воюю. Она поднялась, но с паролем. Пароль нашел в скетче, подключился, но не открывается теперь 192.168.4.1)))

Заработало) Всем спасибо!
сообщения удалены (2)
dranek Кандидат наук Минск 326 257
Отв.1206  05 Дек. 23, 19:10
Я сегодня тоже на 6.12 глюков наловил. Но решил, что из-за помех от ардуины в измерителе.
Там и мощность не хотела устанавливаться и строки программы исчезали. То ли перегрев из-за возросшего тока по 5 В. Толи помехи от ардуины.
Завтра попробую с обычными ds18b20.
сообщение удалено
lekt Студент Екатеринбург 17 17
Отв.1207  06 Дек. 23, 10:10
и строки программы исчезалиdranek, 05 Дек. 23, 19:10
Та же проблема.
Пример: этап отбора голов и тела разбит на части, начинается выполнение 1й части отбора голов, а в закладке с программой отображается первая часть этапа отбора тела. Раньше в процессе можно было вносить изменения в еще неотработанные части, а теперь даже непонятно в какой последовательности будет распределение по таре и на каком этапе процесс, а изменения вносить бесполезно (не понятно куда внесутся).
IMG_4731.jpg
IMG_4731. Автоматика Самовар. Вопросы по электр(он)ике.

Вот фото реально идет отбор голов в емкость №0, а показывает тело и в емкость №2 (изначально №2 и была определена мной для подголовников), причем "вторых подголовников". После первой программы (голов) включилась программа №02 (по фото) начался одбор тела при этом произошел перескок через 2 программы подголовников и паузу, а индикация выполняемой программы стала №05 (хвосты ). И это не из-за нагрузки, у меня практически базовый Самовар, без дополнительных наворотов и все на пайке. На версии 6.10 (вроде она до этого стояла), было все нормально.
Еще заметил (не помню с какой версии), при дистилляции после разгона проскакивает 1ю строку программы, выход дублирую ее дважды, но в первой строке объем отбора указываю небольшой (а вдруг не перескочит).
Спиртуозность автоматически определяется достаточно точно (ареометр на СС показал 29 Самовар вычислил 29,5).
dranek Кандидат наук Минск 326 257
Отв.1208  06 Дек. 23, 13:10
6.12.
В общем вот.
Нет строки.png
Нет строки. Автоматика Самовар. Вопросы по электр(он)ике.

Отсутствует первая строка в текстовом варианте программы. Из-за этого при запуске программ происходит чертовщина.
Датчики обычных три ds18b20.
Пробовал перепрошивки.
Прошивался по воздуху.
1 раз в ide 2.1.0, SDK версии 2.09.
2 раз тоже, но отключил в скетче Lua, контроль протока воды и датчик захлёба.
3 раз в ide 1.8.15, SDK версии 2.09.
Память устройства с LUA 95%.
Прошился на 6.11, строка на месте. Но нет поддержки датчика давления
Автоматика Самовар
Автоматика Самовар. Вопросы по электр(он)ике.
.
Похоже с 6.12 действительно что-то не так.
lkosoj Куратор Видное 495 513
Отв.1209  06 Дек. 23, 13:19, через 9 мин
Проверю
dranek Кандидат наук Минск 326 257
Отв.1210  06 Дек. 23, 21:57
Поделюсь достижениями.
Вчера на 6.12.
Прогрел колонну и гонял её без запуска программы. Смотрел на показания датчиков в измерителе. По температурам всё было замечательно.
По давлению. В моём обычном плёночном режиме на 1,5 кВт показывал около 2 мм.рт.ст. Вывел колонну на захлёб (это у меня чуть менее 4 кВт, 2", РПН 1,5 м.) Показал около 13 мм.рт.ст, в принципе первый час вёл себя вполне адекватно. Затем я попытался запустить программу, начались глюки и я наделал ошибок. В итоге датчик попробовал у меня и масла и немного паров спирта, возможно из-за этого, а может и нет, но он начал врать примерно на 5 мм.рт.ст в минус.
Так что
1) Для него разделитель среды скорей всего нужен.
2) Если там всё надёжно соединено и не трогать руками можно использовать и кольцо с маслом. Однако масло может и плюнуть, надо быть осторожным.
Я всё таки попробую сваять какой нибудь разделитель с мембраной, там такого не должно получаться.
Да, понятно что у многих работают датчики с простой трубкой, но для этого похоже надо. Точку не ставлю, будут еще испытания. СС ещё есть.

Сегодня на версии 6.11.
Датчик давления был с платы изъят, поскольку в 6.11 не поддерживается. И я произвёл пятичасовой отбор голов в плёночном режиме на 1,5 кВт. Он прошел без малейших проблем. Температура в царге в интерфейсе Самовара подскакивала изредка на 1 разряд замера по 1Ware и обратно, это 0,063 гр.ц, в подавляющей продолжительности времени вообще не изменялась. Сам приборчик показывал изменения только сотых долей градуса. В кубе тоже была очень стабильна. В дефлегматоре наблюдались плавные изменения, что связано с его конструктивной ущербностью.
Выводы: по измерению температур всё очень неплохо, даже сделанный на скорую руку с помощью китайского тестера без поверки и с разнобоем в делителях более 1% показал способность вести ректификацию. По измерению давления требуется конструктивная доработка, в принципе, если он не будет начинать врать спустя пару часов можно будет ловить барботажный режим (предзахлеб) в диапазоне 5-10 мм.рт.ст.

Да, один прикол в конце все таки был, от Самовара. Изначально я составил программу из двух строк с отбором голов, двух пауз и двух строк с отбором тела. После я понял, что времени сегодня у меня только на головы и удалил последние 4 строки. Так вот Самовар после отбора голов деловито принялся отбирать тело, как будто я ничего не удалял.
logvinov Магистр Москва 259 45
Отв.1211  07 Дек. 23, 10:10
Да проблемы с программой в версии 6.12 есть
Screenshot_2023-12-06-20-07-00-618_com.android.chrome.jpg
Screenshot_2023-12-06-20-07-00-618_com. Автоматика Самовар. Вопросы по электр(он)ике.
IMG_20231206_200420.jpg
IMG_20231206_200420. Автоматика Самовар. Вопросы по электр(он)ике.

Заменить, поправить программу уже не удаётся после старта, и отбор идёт хз куда куда вздумается
dranek Кандидат наук Минск 326 257
Отв.1212  07 Дек. 23, 10:28, через 19 мин
Сейчас пытаюсь начать отбор тела, в 6.11 тоже присутствуют глюки с программой. Непредсказуемые действия бывают. Откатываюсь на 6.10.

Добавлю сюда, чтоб тему не раздувать.
Сегодня на версии 6.10 Самовара. Произвел отбор тела и продул в конце колонну.
Датчик давления вставил в плату, но к кубу не подключал чтоб посмотреть как его наличие повлияет на замер и передачу температуры.
С температурой все получилось, опрос скетчем по I2C XGZP6857D особо не повлиял на процесс. В общем в части измерений температуры Самовар ректификацию провёл успешно, измеритель справился.
А вот датчиком давления разочарован. После вчерашних издевательств у него начался серьёзный дрейф нуля, в начале показал +5 мм.рт.ст. затем примерно через час плавно вышел на +15 мм.рт.ст.
Мысленно с ним попрощавшись я решил проверить как повлияют на показания спирт и вода. Шприцем с иголкой впрыснул ему пару раз спирта и дисцилировки. Очень плохо повлияли. Дрейф был от -30 от спирта до +50 от дистиллированной воды. Решив сделать последний стресс-тест напоследок впрыснул солевого раствора для хранения pH метра. Он благополучно потух.
На всякий случай промыл его дисциллировкой, затем дал полежать минут 20 в спирту. После высыхания он ожил и опять показывает близкие к нулю значения.
Вот такие нелёгкие испытания выпали на его долю. От спирта у него сильный дрейф нуля, как и от воды.
Теперь придётся делать кнопку для автоматического ввода поправки на лету.
У меня появились сомнения, что 10 долларовый датчик XGZP6857D (-40 - +40 кПа), пригоден для нашего дела.

В процессе эксперимента выявил один косячек в скетче в части старта измерений температур, будет следующая бета.

Upd.
Четвертая бета.
Теперь при включении измерителя и поступлении запроса по 1Ware, если температуры с АЦП еще не читались будут передаваться 25 гр.ц., а не 85, как было ранее (вызывало аварию по температуре воды при горячем переподключении измерителя к Самовару).
Добавил поддержку кнопки с массы на 12 пин ардуины, при её нажатии происходит автоматическое запоминание текущего показания датчика давления в качестве поправки, т.е. ручная компенсация дрейфа нуля.
Подправил отображение цифр в сервисном режиме, чтоб не мерцало.

Ещё.
Почитал про датчики давления и пришел к выводу, что надо ставить MPX10DP. Для него выделю 4 канал второго АЦП и поставлю источник напряжения 2.048 В. Причина - внутри у него есть силиконовая мембрана, даташит прилагаю, там есть его конструктив.
Потому то он и живёт у всех так долго и счастливо.
Поддержку XGZP6857D оставлю, может кому захочется его купить. В даташитах обоих датчиков написано, что только для воздуха, но у XGZP6857D гораздо больше заостряют на этом внимание.
Да и так оно работать будет быстрее.
THK Специалист Серпухов 123 101
Отв.1213  07 Дек. 23, 16:44
Немного офтопа из личного опыта.

При компиляции программы часто выскакивают варнинги и многие программисты на них просто "забивают", я был такой-же.)
Сейчас борюсь с ними сразу, по мере появления, ведь что такое варнинг - это предупреждение компилятора о неоднозначности кода. Можно так понять, а можно и иначе. И как скомпилируется программа, одному GCC известно.( Хорошо, если так, как хотел автор, а если иначе?
lkosoj Куратор Видное 495 513
Отв.1214  07 Дек. 23, 17:39, через 56 мин
Сообщения, которые выводит компилятор при компиляции Самовара, это не варнинги. Это pragma - информационные сообщения, их вывод можно отключить, но смысла в этом нет. Они ни на что не влияют.
logvinov Магистр Москва 259 45
Отв.1215  07 Дек. 23, 18:46
Сообщения, которые выводит компилятор при компиляции Самовара, это не варнинги. Это pragma - информационные сообщения, их вывод можно отключить, но смысла в этом нет. Они ни на что не влияют.lkosoj, 07 Дек. 23, 17:39
это не столь важно,работает и уже замечательно, Алексей поправишь ошибки в версии 6.12 . Спасибо.
lkosoj Куратор Видное 495 513
Отв.1216  09 Дек. 23, 19:11
проблемы с программой в версии 6.12 естьlogvinov, 07 Дек. 23, 10:10
Исправил интерфейс. После загрузки (или перезагрузки) Самовара 6.11 и 6.12 версий он скачает обновления интерфейса из интернета, проблема с программой отбора должна решиться.
logvinov Магистр Москва 259 45
Отв.1217  10 Дек. 23, 12:19
Исправил интерфейс. После загрузки (или перезагрузки) Самовара 6.11 и 6.12 версий он скачает обновления интерфейса из интернета,lkosoj, 09 Дек. 23, 19:11
После обновления что то с стилями оформления что на версии 6.12 , что теперь на версии 6.11 , до обновления версия 6.11 пиво отображалась читаемо и стабильно
Screenshot_2023-12-10-12-16-51-735_com.android.chrome.jpg
Screenshot_2023-12-10-12-16-51-735_com. Автоматика Самовар. Вопросы по электр(он)ике.
Screenshot_2023-12-10-12-15-58-171_com.android.chrome.jpg
Screenshot_2023-12-10-12-15-58-171_com. Автоматика Самовар. Вопросы по электр(он)ике.


Программа 6.11 пиво до обновления
IMG_20231210_123324.jpg
IMG_20231210_123324. Автоматика Самовар. Вопросы по электр(он)ике.
lkosoj Куратор Видное 495 513
Отв.1218  10 Дек. 23, 13:15, через 57 мин
Попробуйте очистить кэш браузера, у меня нормально показывает и на компьютере и на телефоне
logvinov Магистр Москва 259 45
Отв.1219  10 Дек. 23, 13:49, через 35 мин
Всё равно какой то глюк, если было прерывание во время кипа, и температура больше указанной в скетче, то самовар не видит указанную температуру в скетче и не выкл обратный отсчёт
Screenshot_2023-12-10-13-45-05-656_com.anydesk.anydeskandroid.jpg
Screenshot_2023-12-10-13-45-05-656_com. Автоматика Самовар. Вопросы по электр(он)ике.
Screenshot_2023-12-10-13-45-00-932_com.anydesk.anydeskandroid.jpg
Screenshot_2023-12-10-13-45-00-932_com. Автоматика Самовар. Вопросы по электр(он)ике.