avatar_chelovechik

Шпора для отбора

Автор chelovechik, 05-12-2013, 19:35:38

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

Игорь

#315
Копаюсь в коді Роси, витягую звідти керування нагрівом. Коли розповідав про  роботу роси, про інкадицію забув розповсти.
Думаєте просто так висвітлюеться не екрані літери П-Р, температура чи відбор? Ні. Одночасно світиться лише один розряд.
Щоб щось показати, треба по черзі світити один за одним окремо кожен розряд. Швиденько, раз 50 за секунду.
Зараз намагаюсь перенести код з баскома - рідного середовища для АВР контролерів - в середовище ардуіно. Вже бачу, що не вийде. Занадто важкі та неповороткі бібліотеки, доведеться писати свої. Чи взагалі - напряму спілкуватись з регістрами. Але тоді хрен хто з ардуінщиків щось зрозуміє. Це вже С++, здається. Я не в курсі, я сантехнік.
Ось так вигладає ініціалізація АЦП та таймера.  Може це можна реалізувати засобами Ардуіно, але я не знайшов як.
void adc_init() { 
ADMUX = (0 << REFS1) | (0 << REFS0) | (1 << MUX2) | (1 << MUX0); 
ADCSRA = (1 << ADEN) | (1 << ADIE) | (1 << ADATE) | (1 << ADPS1) | (1 << ADPS0);
SFIOR &= ~((1 << ADTS2) | (1 << ADTS1) | (1 << ADTS0));
SFIOR |= (1 << ADTS2) | (1 << ADTS0); 
ADCSRA |= (1 << ADSC);
}
void timer1_init() {
TCCR1A = 0;
TCCR1B = (1 << CS11);
TCNT1 = starter;
TIMSK |= (1 << TOIE1);
}
   
Та що вже казати!
В Ардуіно, щоб в якісь пін записати одиницю чи нуль, пишуть "digitalWrite(PIN,1); Це триває 50-60 (!) тактів процесора. Для роботи в швидких функціях це занадто довго. Доводиться писати щось на кшталт PORTD |= (1 << PD0); Це триває 1-2 такти
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

ivan_fd

#316
На рахунок клапанів. Для чого щось вигадувати, якщо є в продажі перевірені часом і практикою AR-HX-3.
https://304.com.ua/ua/p1696112464-klapan-elektromagnitnyj-normalno.html

Цитата: Игорь від 11-08-2025, 10:34:42Якщо ніхто не буде збирати - накойхер мені коди писати?


Зберу схему 100%. Там нема, що збирати. Але, якщо це тільки для одного, двох людей писати код, то нафіг потрібно.

P.S: у мене є стабілізований рег. напруги. До покупки роси "склепав", працює супер, ну мені по крайній мірі подобається :-)
Можна буде зв'язати їх між собою. Я коли планував, до покупки РОСИ, зробити свою автоматику, то планував їх прив'язати по UART.
В даний час у мене є одна розробка, не важливо яка, там PIC і ESP8266 зв'язані, якраз по уарт, працює супер. І об'єми інформації там передаються не малі.

ivan_fd

Цитата: Игорь від 11-08-2025, 10:48:27Та що вже казати!

Що поробиш, це Ардуіно, тут все для того, щоб кожен школяр міг щось зробити, без знання структури контролера.

VitaliyR

Накидав компонентів в корзину, ніби нічого не забув ?

01.JPG   03.JPG 

ДимаС

#319
Цитата: Persey від 11-08-2025, 10:36:56Де ти таке вичитав? Я тобі нічого не пропонував,а описував приблизний ресурс клапанів такого типу.
Скажи, а твій латунний клапан зроблений спеціально для спирту? В ньому запорна резина виготовлена з якого матеріалу? Вона нейтральна до спирту і ти в цьому впевнений?
Більшість користується не мідно-латунними виробами після дефлегматора.
Най будуть кожному дані граблі по розміру лобу його...

VitaliyR

Цитата: Persey від 11-08-2025, 10:36:56Скажи, а твій латунний клапан зроблений спеціально для спирту? В ньому запорна резина виготовлена з якого матеріалу? Вона нейтральна до спирту і ти в цьому впевнений?

В описі було сказано : Valve tap for Beer Brew Alcohol
виробник U.S.Solid
я купляв ці клапани років 8 тому, шукав new old of stock щоб не був "фірмовий китай".


Я про інше, хотів впевнитись що ми розуміємо про що говоримо. Бо ти порівнював просто "картинки" і писав про
Цитатав мене виходили 150К кілометрів, скільки це спрацьовувань - не знаю, але думаю що це зовсім інші цифри, ніж 400-500К спрацьовувань
Але для таких показників використовуються інші матеріали які можуть бути небажаними при контакті з спиртом.

Persey

Цитата: VitaliyR від 12-08-2025, 09:49:45В описі було сказано : Valve tap for Beer Brew Alcohol
виробник U.S.Solid
я купляв ці клапани років 8 тому, шукав new old of stock щоб не був "фірмовий китай".
Не знаю що було там сказано, але на офіційному сайті цього виробника зазначено, що клапана в латунному корпусі не підходять для використання з питною водою (за питний спирт зовсім мовчу), а в нержавіючому підходять. І ресурс зазначають понад мільйон циклів.
Spoiler
IMG_20250812_124243.jpgIMG_20250812_145051.jpg
[close]

Дачнік

Вітон поганий вибір - про це згадували на форумі та на ютубі. Краще не використовувати його взагалі у контакті з спиртом.

Игорь

Цитата: VitaliyR від 11-08-2025, 20:10:23Накидав компонентів в корзину, ніби нічого не забув ?
Чекай... У тебе обрано IRLZ24. для його затвору потрібен резистор на 50-100 ом, у тебе в списку кілоомник, як для NPN транзистора. 
А взагалі - який опір котушки клапана? Про який струм йде мова?
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Игорь

Ще. Ти обрав не той перетворювач DS-DS. Він має потужність 1wt. На боці п'яти вольт він дасть щонайбільше 0,2 ампера струму. Треба більше.
Ось інформація про необхіднийструм для модуля Wemos D1.
Модуль Wemos D1 (і Wemos D1 mini) заснований на ESP8266 і живиться або від USB 5, або від піна 5V/Vin, всередині є стабілізатор на 3.3 В для самого чіпа.
По струму:
Середнє споживання у звичайному Wi-Fi режимі: ~70-120 мА
Піки передачі даних по Wi-Fi: до 250–400 мА
При старті модуля короткочасні стрибки можуть сягати 500 мА
Тому блок живлення для Wemos D1 рекомендується щонайменше 500 мА, а краще 1 А для стабільності.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

VitaliyR

Цитата: Игорь від 13-08-2025, 14:50:13Чекай... У тебе обрано IRLZ24. для його затвору потрібен резистор на 50-100 ом, у тебе в списку кілоомник, як для NPN транзистора.

Ти давав два типи ключа, то я затупив. Зараз ще раз все перевірю.


VitaliyR

Ще раз по компонентам :


Датчик температури DS18B20 із кабелем 2м (2-line режим підтримується) >> Код товару: 184131

ESP8266 WeMos D1 mini Micro USB >> Код товару: 165678

Макетна плата на 400 контактів (KLS1-400A-01) >> Код товару: 110279

1N4007 MIC >> Код товару: 176822

2N2222A Semtech >> Код товару: 213005

1 kOhm 5% 0,25W вивів. (CR025SJTB-1K-Hitano) >> Код товару: 11106

10 kOhm 5% 0,25W вив. (CR025SJTB-10K-Hitano) >> Код товару: 13787

4,7 kOhm 5% 0,25W вив. (CR025SJTB-4K7R-Hitano) (S) >> Код товару: 13778

DC/DC перетворювач 6W, FAVOTEK MU6S-2405 >> Код товару: 207112

По перетворювачу ціна 225 грн, трохи не бюджетно для експерименту, можливо поки що заживлю блочком USB 5в

0101.jpg

Игорь

Перетворювач dc-dc потрібен lm2596. Це 2 ампера струму та 1-1.5 доларів вартості. Можна взагалі зібрати на розсипусі - L7805 або аналог, та два конденсатора по 100 мкФ. Але я віддав би перевагу LM-ці. Тільки треба мати на увазі. Спочатку налаштувати 5 вольт, потім під'єднувати контролер.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Игорь

В процесі виноса з алгоритму Роси контроля за нагрівом в окрему плату чи модуль, приходжу до i2c slave приладу, яким можна буде керувати з будь-якого arduino приладу по двом дротам (плюс живлення) , за допомогою нескладної системи власних команд, яку ще треба розробити.  
Зараз думаю про зворотній зв'язок - або відповідати про виконання головному контролеру по тій самій ліній, або видавати візуальну інформацію на невеличкий власний екранчик. Або обидва варіанти. 
Вчора вже довів кількість замврів напруги до 20 тисяч за секунду, це 200 за напівперіод, та стільки ж кроків керування нагрівом.  
Алгоритм лишився такий саме, як і у Росі - підраховуємо потужність за період, та порівнюємо з завданням. Якщо не співпадає - зміщуємо на крок момент запуску симістора, та знов рахуємо потужність в наступному періоді. Вчора запускав та перевіряв чи працює. Все нормально. Лишилось налагодити модуль TWI щоб спілкуватись з головним контролером. 
Ще хотів би оптично розв'язати лінію зв'язку, бо в модулі керування нагрівом мінус напряму сидить на нулі (чи фазі?) 220 вольт, але спочатку - зв'язок. Маю створити для двох контролерів мову спілкування :) 
Може для програміста це тривіальна задача, а мені -  цікаво :)
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Игорь

Почну з осмислення що мені треба. 
Для різних етапов нашої нелегкої дистиляційно- ректифікаційної роботи потрібна різна потужність. Яку саме - мастер має сказати слузі.  
Потужність - це 10, 40, 80 відсотків зі стабілізацією, або повний нагрів без стабілізації. Це один байт інформації на початку чергового етапу. 
Час від часу треба перевірити калібровку, та при необхідності - внести поправку. Для цього теж вистачить одного байта (від нуля до 255), бо треба виміряти тестером та  передати модулю фактичну напругу в розетці з точністю до вольта.  
Думав до десятих - передумав, бо доки введеш та передаш - десяті вже зміняться, та й точність тестера - до одиниць вольта.  
Які команди ще можна придумати?  Ну, наприклад, додати або відняти ІКС відсотків потужності. На це теж достатньо байта. 
Ще одно - це запрос фактичного стану. Тут взагалі не треба передавати нічого, крім запроса. Можна ще щось придумати, але все одно, я не бачу варіантів щоб треба було передавати більше ніж один байт інформації. 
Тому пакет команди буде двобайтовим.  
Перший байт -  номер команди, другий - той самий  корисний  байт. Необхідна потужність, фактична напруга в розетці, або зсув потужності в плюс або в мінус. 
Отримавши команду від мастера (тобто-головного контролера), слуга має підтвердити отримання. Теж два байта максимум. Повторити команду, або дати фактичну цифру потужності. 
Ось і все спілкування. Дійсно, тривіальна задача. 
Отже, як це має працювати. 
Головній контролер на старті будь-якого етапу має дати команду встановити нагрів, та впевнитись, що його добре зрозуміли.  
Потім - періодично, в процесі перевірки чи все іде як треба, має запитувати - як там фактичний нагрів, та у разі якщо факт відхиляється від плану на певну величину, вважати, що це аварія та зупиняти процес. 
Все просто. 
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

SMF spam blocked by CleanTalk