21

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Vlad1975 ©:

Чистый спирт - не электролит (диэлектрик).

Надо сперва получить чистый спирт :)
  По справочным данным среднее значение 1,5 · 10 в минус пятой.  У нас в самом идеальном варианте 97.2% далеко не у всех.  Сам процесс замера сопротивления вызовет химическую реакцию окисления, сопротивление будет меняться, при хранении тоже кстати меняется.  Так что датчик можно сделать смело, но только как датчик уровня.  1.3 (тоже среднее) было взято из реального регламента на ректификат 96.2%, но я эти цифры не проверял и ничего объективного сказать не могу. Просто не интересовало, так как постоянные значения получить не реально, тут еще и примеси будут вносить "поправку" ...

anders ©:

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

Незнаю как насчет везения, но простой датчик протечки собирается на паре транзисторов выпаянных из любого китайского патефона... я не силен в электронике, но в детстве такие схемки паяли в кружке. Сейчас просто есть все готовое, плати-юзай.

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Регистрация на форуме отключает почти всю рекламу.

22

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Иван ©:

в детстве такие схемки паяли в кружке

Точно. Да и сейчас можно. Что получится - см. в параллельной теме. Номиналы можно прогуглить.

23 (2015-08-04 09:56:44 отредактировано Николя)

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

anders ©:

Ардуинщикам повезло больше всех. Все уже у них есть, только надо знать что и где искать.

Есть у меня и такая хрень. Только и без нее можно, просто два электрода в спирт, видит ардуина спирт, правда у меня под рукой только изопропиловый, на него четко реагирует, а вот она без ардуины не видит спирт, воду отлично видит.  Буду вводить в прогу, как дополнительное баловство.
Добавлено: 2015-07-08 17:37:58

Продолжение АвтоСем Внимание. Прошивка обновлена, исправлены некоторые ошибки.
Модификация AutoSem v1. 
-Добавлены часы и минуты сначала запуска устройства.
-Добавлена индикация температуры на 2/3 высоты колонны (датчик ХВОСТ)
-Добавлен контроль по датчику на 2/3 высоты. Можно реле на отключение или сигналку повесить.

// АвтоСамогон, автоматика для самогоноварения и прочего винокурения. Версия: AutoSem LCD 16*2 v1
// Проект открытый и доступен на сайте https://alcodistillers.ru 
// Связь с автором проекта krdub@ya.ru
// Для дисплея 16*2 раскоментируйте соответствующие строчки, и удалите или закоментируйте для 20*4 или наоборот
// Перезапуск только через RESET или отключение питания.
// Реле клапана отбора на пин D3, реле отключения всей системы по датчику подхода хвотов пин D4. Можно включать сигнализацию.
// После нажатия кнопки, температура фиксируется как в верхней точке, так и на 2/3 колонны.
// Кнопка не активна до перезапуска программы.

#include <Wire.h> 
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// Для дисплея
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // инициализация библиотеки с перечнем задействованных выводов
//LiquidCrystal_I2C lcd(0x27,16,2); // инициализация библиотеки с перечнем задействованных выводов
float setTmp; // переменная для заданного значения температуры
float XBOCT;  // переменная для хранения температуры на 2/3 высоты колонны, для отсечки хвостов и остановки погона.

int buttFixPin = 2;     // пин кнопки
int buttFixPinCurentState = LOW;       // текущее состояние кнопки 
const int ledPin =  13;      //  LED pin 
unsigned long time; // объявление переменной time типа unsigned long 
 
void setup(void){
Serial.begin(9600);// Запускаем Seriak порт
sensors.begin();   // Запуск датчика ds1820
lcd.init();        // Инициализация дисплея
lcd.backlight();   // Включаем подсветку дисплея
  pinMode(buttFixPin, INPUT_PULLUP); //подтягиваем входы кнопки к плюсу встроенными резисторами
  pinMode(ledPin, OUTPUT); // 13й вывод индикация нажатия кнопки
  pinMode(3, OUTPUT);      // 3й пин реле клапана отбора
  pinMode(4, OUTPUT);      // 4й пин реле остановки погона (по подходу хвостов)
  
  // Просто заставка на дисплей при запуске 
  lcd.clear(); 
  lcd.setCursor(0, 0);
  lcd.print("initializing....");
  lcd.setCursor(0, 1);
  delay(2000);
  lcd.clear();
  lcd.setCursor(2, 1);
  lcd.print("AutoSem v1");
  delay(3000);
}
void loop(void){
sensors.requestTemperatures();

//Serial.print("T0=");
//Serial.println(sensors.getTempCByIndex(0));
//delay(200);
//Serial.print("T1=");
//Serial.println(sensors.getTempCByIndex(1));
//delay(200);
//celsius=sensors.getTempCByIndex(0)
//Serial.print("T2=");
//Serial.println(sensors.getTempCByIndex(2));
//lcd.setCursor(15,0);
//lcd.print("R"); 

//Индиккация времени работы программы
 if (time/60/60<10) { Serial.print ("0");}
 Serial.print (time/60/60);
 Serial.print (":");  
  lcd.setCursor(0, 0);
  lcd.print (time/60/60);
  lcd.setCursor(2, 0);
  lcd.print (":");
 if (time/60%60<10) { Serial.print ("0"); }
 Serial.print ((time/60)%60);
 Serial.print (":");
  lcd.setCursor(3, 0);
  lcd.print ((time/60)%60);
 if (time%60<10) { Serial.print ("0"); }
 Serial.println (time%60);
 
  time = millis()/1000;

//Работа Дисплея 16*2
  //lcd.setCursor(6, 0);
  //lcd.print("RTF"); 
  //lcd.setCursor(10, 0);
  //lcd.print(sensors.getTempCByIndex(0));   // Температура в верхней точке колонны
  //lcd.print((char)223);                    // Знак градуса  
  //lcd.setCursor(0, 1); 
  //lcd.print("S");     
  //lcd.print(setTmp);                       // Температура стабилизации колонны
  //lcd.setCursor(6, 1);             
  //lcd.print("X");     
  //lcd.print(sensors.getTempCByIndex(1));   // Температура на высоте 2/3 колонны
 //lcd.setCursor(13, 1);                
  // if (digitalRead(3)) lcd.print(" ON");   // Состояние клапана отбора
    //else lcd.print("OFF"); 
  //lcd.print("   ");
  
  

//Работа Дисплея 20*4
   lcd.setCursor(0, 1);  // устанавливаем курсор в 0-ом столбце,2 строка (начинается с 0)
   lcd.print("t1="); // Логотип
   lcd.setCursor(3, 1);  // устанавливаем курсор в 3-ом столбце,2 строка (начинается с 0)
   lcd.print(sensors.getTempCByIndex(0));      // Температура в верхней точке колонны
   lcd.print((char)223);            // Знак градуса
   lcd.setCursor(0, 2);             // устанавливаем курсор в 0-ом столбце,  строка 3 (начинается с 0)
   lcd.print("tX");     // Температура на высоте 2/3 колонны, отлов хвостов
   lcd.print(sensors.getTempCByIndex(1));              // Температура в верхней точке колонны
   lcd.print((char)223);            // Знак градуса
   lcd.setCursor(0, 3);  // устанавливаем курсор в 0-ом столбце, 4 строка (начинается с 0)
   lcd.print("St1"); 
   lcd.print(setTmp); // Температура стабилизации по верхней точке колонны 
   lcd.setCursor(0, 3);  // устанавливаем курсор в 8-ом столбце,4 строка (начинается с 0)
   lcd.print("tX"); 
   lcd.print(XBOCT); // Температура стабилизации по 2/3 высоты колонны 
   lcd.setCursor(10, 1);                
   lcd.print("Valve");
   lcd.setCursor(11, 2);                
   lcd.print("Valve");
    if (digitalRead(3)) lcd.print(" ON"); // показываем состояние выхода
       else lcd.print(" OFF"); 
   lcd.print("   ");
    
  // считываем состояние кнопки
   buttFixPinCurentState = digitalRead(buttFixPin);
  if (buttFixPinCurentState == LOW)digitalWrite(ledPin, HIGH ); //Зажигаем светодиод по нажатию кнопки 
  else digitalWrite(ledPin, LOW); 
 //Запись температуры фиксации в переменную setTmp 
  if (buttFixPinCurentState == LOW && setTmp == 0)
    {setTmp=sensors.getTempCByIndex(0);  //Если нажата кнопка, пишем в переменную setTmp текущее значение температуры, она же температура стабилизации колонны
     Serial.println(setTmp);}  
  if (sensors.getTempCByIndex(0) > (setTmp+0.1))digitalWrite(3, HIGH  );  // Если температура выше зафиксированной на 0,1 С, клапан отбора закрыт         
  else digitalWrite(3, LOW); 
  //Запись температуры фиксации в переменную XBOCT
  if (buttFixPinCurentState == LOW && XBOCT == 0)
    {XBOCT=sensors.getTempCByIndex(1);  //Если нажата кнопка, пишем в переменную XBOCT текущее значение температуры
     Serial.println(XBOCT);}    
  if (sensors.getTempCByIndex(1) > (XBOCT+0.1))digitalWrite(4, HIGH  );  // Если температура выше зафиксированной на 0,1 С, останавливаем погон, хвосты пошли        
  else digitalWrite(4, LOW); 
  } 
 

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


Но вот вопрос меня мучает, подскажите из практики. На датчик хвостов какую отсечку ставить, 0,1 С, или другую. Пока 0,1 С сделал.

Ленивые всё делают быстро, что бы скорее отделаться от работы и делают хорошо, чтобы не переделывать.
С уважением, Николай.
Моё оборудование : → Винокурня Николя

24

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Иван ©:

По справочным данным среднее значение 1,5 · 10 в минус пятой.

Это проводимость,  величина обратная сопротивлению.

25

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Vlad1975 ©:

Это проводимость,  величина обратная сопротивлению.

Так какое сопротивление получается в 1 см между электродами?

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Регистрация на форуме отключает почти всю рекламу.

26 (2015-07-08 23:47:09 отредактировано anders)

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Николя ©:

Есть у меня и такая хрень.

Может вот такой нет. Это проходной датчик на отключение подаваемой воды для охлаждения дефа.
Исполнительное устройство может быть разным. Минимум - звуковая и световая сигнализация - электронный "свисток".
Ну а максимум - отключение тэнов через силовое и управляющее реле, когда оператор "заснул".  Управляющее реле - это "ардуиновская хрень", наверняка есть. Силовое - надо подбирать по мощности тэна.

ПС: трубка ТСА у дефа горизонтальна, чтоб не городить этажи вверх под потолок. Для вертикально направленной ТСА все аналогично.
ППС: отвечаю на возможный вопрос коллег "зачем" - вовремя отключить питание 220в, чтобы не бабахнуло.

27

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Иван ©:

Так какое сопротивление получается в 1 см между электродами?

Зависит от площади электродов и расстояния между ними. В любом случае это будут сотни КОм.
Добавлено: 2015-07-09 09:15:29

anders ©:

Может вот такой нет. Это проходной датчик на отключение подаваемой воды для охлаждения дефа.

Вообще не понял назначение.

28

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Vlad1975 ©:

Вообще не понял назначение

При внештатном отключении охлаждающей воды, подаваемой в деф, там начинает расти Т. Через ТСА начинает выходить пар с нарастающей Т. Датчик с переходником подключен к ТСА и при достижении заданного порога Т, например 85С, датчик подает сигнал на Ардуино, в результате чего срабатывает исполнительный механизм сигнализации, который отключает питание тэна (или, как минимум, происходит подача звукового сигнала и тэн отключает оператор).

29

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

anders ©:

При внештатном отключении охлаждающей воды, подаваемой в деф,

Температура в колонне также вырастет, первым отреагирует датчик на 2/3 колонны, и все тоже что и у Вас, только вид сбоку, и без лишнего датчика.
Если Ваша конструкция работает, выкладывайте на стесняйтесь, а то все загадками говорите :)

Ленивые всё делают быстро, что бы скорее отделаться от работы и делают хорошо, чтобы не переделывать.
С уважением, Николай.
Моё оборудование : → Винокурня Николя

30

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Николя ©:

первым отреагирует датчик на 2/3 колонны

Здесь принципиально не согласен. Первым отреагирует то, что охлаждает вода, а именно деф. А поскольку по закону физики при увеличении температуры обьем пара будет увеличиваться, то избыточный обьем будет стремиться пройти через ТСА, для чего она и существует.

31 (2015-07-09 10:19:29 отредактировано Николя)

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

anders ©:

Здесь принципиально не согласен. Первым отреагирует то, что охлаждает вода

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

Ленивые всё делают быстро, что бы скорее отделаться от работы и делают хорошо, чтобы не переделывать.
С уважением, Николай.
Моё оборудование : → Винокурня Николя

32

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

anders ©:

При внештатном отключении охлаждающей воды, подаваемой в деф, там начинает расти Т. Через ТСА начинает выходить пар с нарастающей Т. Датчик с переходником подключен к ТСА и при достижении заданного порога Т, например 85С, датчик подает сигнал на Ардуино, в результате чего срабатывает исполнительный механизм

У меня на автоматике стоит для этого дополнительный компаратор с терморезистором, прикреплённым к верху дефа. Аварийное отключение тэнов произойдёт при нагреве верхней части дефа до 50-55 градусов (на всякий случай).  Если поставить в  ТСА , то сработает чуть раньше.

33

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Vlad1975 ©:

У меня на автоматике стоит для этого дополнительный компаратор

Для Ардуино этого не надо - внутри самой схемы уже есть каналы (количество элементов и обьем памяти в зависимости от ее модификации - Уно, Нано, Мега и тд) для работы с полупроводниковыми термодатчиками DS18b20 и другими ее элементами, по сути это - лего-конструктор.  Я показал один из вариантов крепления датчика в ТСА, имхо - самый оптимальный - вышла из строя автоматика - свистулькой всегда обойтись можно без перестройки конструкции.

34

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

anders ©:

Для Ардуино этого не надо

Не сталкивался с подобными устройствами.
У меня на PIC16F84 схема собрана, плюс обвесы аналоговые, плюс КМОП логика и операционные усилители. Схема тоже достаточно универсальна. Может управлять клапаном, ТЭНами, регулировать мощность, точно настраиваются пороги и гистерезис для DS18B20, может отключать по уровню жидкости и по превышению температуры в дефе.
Кстати нормально открытый клапан сделал из обычного реле, всё достаточно надёжно и просто для повторения. Как сделаю фото, создам тему. Уже всё готово. Сейчас делаю 1-й погон, на выходных проведу испытание колонны и автоматики. Отчитаюсь.

35

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Vlad1975 ©:

Не сталкивался с подобными устройствами.

Да тоже контроллер в основе, только ATMEL mega 328 в основном. С ардуинками удобно код залил сразу протестил, подправил. Программатора не надо, бутлодер залит сразу в контроллер. У меня дружбы с просто контроллерами не сложилось, а с ардуиной как то ужился понемногу.

Ленивые всё делают быстро, что бы скорее отделаться от работы и делают хорошо, чтобы не переделывать.
С уважением, Николай.
Моё оборудование : → Винокурня Николя

36

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Николя ©:

У меня дружбы с просто контроллерами не сложилос

Достаточно не плохо владею схемотехникой. С программированием не знаком. Использовал готовую прошивку для PIC.  Обвесил сам, функционалом доволен.

37

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Vlad1975 ©:

С программированием не знаком.

Я тоже, но тут проще, примеры, работы других, постепенно начинаешь понимать откуда ноги и переменные с константами растут.

Ленивые всё делают быстро, что бы скорее отделаться от работы и делают хорошо, чтобы не переделывать.
С уважением, Николай.
Моё оборудование : → Винокурня Николя

38

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Вот таким образом облагородил датчики, может кому пригодится. Поставил сначала планарный резистор, пока паял другие выводы, один вывод резистора отслоился. Решил не испытывать судьбу, поставил обычный. Резистор 4.7 кОм.
До датчиков от блока хорошая экранированная витая пара, а датчики уже на клеммах к ней, что бы обслужить можно было колонну.

   

Термоусадка 125 градусов.

Ленивые всё делают быстро, что бы скорее отделаться от работы и делают хорошо, чтобы не переделывать.
С уважением, Николай.
Моё оборудование : → Винокурня Николя

39

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Николя ©:

Вот таким образом облагородил датчики,

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

У вас в жизни всегда будет все, что вы хотите, если вы будете помогать другим людям получать то, чего хотят они.
Регистрация на форуме отключает почти всю рекламу.

40

Re: Автоматика на Arduino для ректификации и дистилляции (схема-прошивки)

Иван ©:

Предлагаю снять термоусадку

Не вопрос, сразу сам не подумал. Гляну есть ли силикон.

Ленивые всё делают быстро, что бы скорее отделаться от работы и делают хорошо, чтобы не переделывать.
С уважением, Николай.
Моё оборудование : → Винокурня Николя