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

Arduino или дешевая автоматика

Форум самогонщиков Автоматика
1 2 3 4 5 6 3
webserge Доцент Саратов 1.7K 468
Отв.40  12 Сент. 15, 01:50
Бугор, старая привычка Т.к. знаю что еще 100500 раз буду переделывать и сам же что-то забуду. В студенческие годы много программировал для себя.
kazu Кандидат наук Харьков 375 74
Отв.41  12 Сент. 15, 01:50, через 1 мин
аффтар! пажалуста!! переименуй тему!!! ардВино уж очень режет слух. она ведь ардУино!!
Хотя... Ард и Вино... ну может быть. Но все равно неблагозвучно.
Бугор Магистр Город Герой Магадан, St. Louis 211 103
Отв.42  12 Сент. 15, 01:56, через 7 мин
webserge, Смотрю ты приложение DallasTemperature пользуешь
Щуп сам делал или готовый на DS18** покупал?


Бугор Магистр Город Герой Магадан, St. Louis 211 103
Отв.43  12 Сент. 15, 01:59, через 3 мин
уж очень режет слухkazu, 12 Сент. 15, 01:50
Ты вслух читаешь? Улыбающийся
яб поменял, но чертивознает как оно меняется
webserge Доцент Саратов 1.7K 468
Отв.44  12 Сент. 15, 02:10, через 12 мин
Бугор, брал у китайцев готовые в нержовой гильзе. Такого плана - http://ru.aliexpress.com/...2233096288.html
К ним на концы подпаивал резистор и удлинял кабелем микрофонным, на видео синий такой. Очень уж он мне понравился, 2 жилы в нем внутри в изоляции и +1 жила как оплетка по внешнему слою, ее на землю подпаиваю. При длине от разъема до датчика не более 2м каких либо глюков при съеме показаний Т не испытывал. Хотя по инету пишут что такое возможно при длинных кабелях или плохой защиты от помех. На конец кабеля DIN разъем такой - http://www.ebay.com/...K%3AMEBIDX%3AIT
Но сейчас хочу эту связку переделать на разъемные соединения. Был случай как один датчик оторвал с провода, сука вылезать из штуцера не хотел. Так вот имея съемные датчики я бы на его место просто поставил бы запасной, а так пришлось все разбирать и перепаивать. Сейчас делаю на таких колодочках - http://www.ebay.com/...K%3AMEBIDX%3AIT . Промаркировал датчики сразу разными цветами термоусадкой,  вот так будет выглядеть. Датчиков будет уже не два как сейчас, а три. Третий в ТСА дефлегматора для отслеживания аварийного перегрева.
2015-09-12 02-07-45.JPG
2015-09-12 02-07-45.JPG Arduino или дешевая автоматика. Автоматика.
Бугор Магистр Город Герой Магадан, St. Louis 211 103
Отв.45  12 Сент. 15, 02:15, через 6 мин
, старая привыwebserge, 12 Сент. 15, 01:50
отовые в нержовой гильзеwebserge, 12 Сент. 15, 02:10
калибровку делал?
Я пока жду разьемы http://www.ebay.com/itm/170999507818?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
повозился с К-Type сенсором, погрешность бешенная и не стабильная, может шумы влияют, надо бы  0.01uF кондер впаять, может поможет
webserge Доцент Саратов 1.7K 468
Отв.46  12 Сент. 15, 02:38, через 23 мин
Бугор, разъем зачетный, понравился)
У меня если код посмотреть поподробнее есть раздел в меню называется "Temp Calibr". Как раз это и есть для калибровки датчиков. Пробовал калибровать в кружке с кипящей водой, получалась херня какая-то, чуть по другому датчик положил и уже другие значения. Потом придумал калибровать в перегонном кубе с кипящей водой. Все стало как нужно, после многократного перетыкивание датчиков все показания такие же как и были с первого раза. В скетче в самом начале есть переменные в которые вписываю поправочные значения для датчиков, можно конечно в eeprom памяти сохранять, но чето мне лень было так делать))
Бугор Магистр Город Герой Магадан, St. Louis 211 103
Отв.47  12 Сент. 15, 02:50, через 13 мин
возвращаясь к вопросу управлением плавно открывающегося моторизированного крана
не сложно и надежно, можно открывать постепенно можно и сразу как в этом моем видео



/* подробнее читать тут http://tronixlabs.com/...2a-and-arduino/
* Эксперимент , регулировка открытия/закрытия моторизированного клапана с заданым интервалом
* Motor Controller - Stepper Motor Drive Controller Board Module L298N Dual H Bridge DC For Arduino
*/

//Motorized Valve
int myMotorSpeed = 9;
int Direction_01 = 8;
int Direction_02 = 7;
int valveOpen = 6;
int ValveClosed = 5;
int vOpen = 1;
int vClosed = 1;

void setup()
{
 Serial.begin(9600);
 // set the motor control pins to outputs
 pinMode(myMotorSpeed, OUTPUT);
 pinMode(Direction_01, OUTPUT);
 pinMode(Direction_02, OUTPUT);
}

void ValveController()
{
 // open and close the valve
 //Open
   start=millis(); //начало цикла
   digitalWrite(Direction_01, HIGH);
   digitalWrite(Direction_02, LOW);
   delay(2500); // интервал
   finished=millis(); //окончание цикла
   elapsed=finished-start; //затраченное время в милисекундах
   Serial.print ("Valve Open = " ); //vOpen  считает сколко раз кран был открыт
   Serial.print(vOpen);
   Serial.print("\t Time to open = "); //интересно было посмотреть, на самом ли деле тратится 2,5 секунды
   Serial.println(elapsed);
   vOpen = vOpen + 1; // плюс один к счетчику
   
 // скорость с которой наш мотор будет вращаться = 250 из возможного диапозона 0~255
 //тут можно повозится созначением. Так же можно написать модуль для плавного зауска/остановки мотора
 //это будет хорошо видно с мотором без понижающего редуктора
 analogWrite(myMotorSpeed, 250);
 delay(500);
 // now change motor directions
 //Close
 start=millis();
 digitalWrite(Direction_01, LOW);
 digitalWrite(Direction_02, HIGH);  
 delay(2500); // интервал
 finished=millis();
 elapsed=finished-start;
 Serial.print ("Valve Closed = " ); //vClosed считает сколко раз кран был закрыт
 Serial.print(vClosed);
 Serial.print("\t Time to close = ");
 Serial.println(elapsed);
 vClosed = vClosed + 1; // плюс один к счетчику
 
 // выключить мотор
 digitalWrite(Direction_01, LOW);
 digitalWrite(Direction_02, LOW);  
}

//Run application
void loop()
{
 ValveController();
 delay(1000); // интервал
}
webserge Доцент Саратов 1.7K 468
Отв.48  12 Сент. 15, 03:00, через 11 мин
Бугор, ссылочку на клапан этот можешь дать? Хочу про него почитать и цену посмотреть у китайцев.
Бугор Магистр Город Герой Магадан, St. Louis 211 103
Отв.49  12 Сент. 15, 03:05, через 5 мин
ссылочку на клапанwebserge, 12 Сент. 15, 03:00
модуль управления http://www.ebay.com/itm/170926726867?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
и кран http://www.ebay.com/itm/161472673200?_trksid=p2057872.m2749.l2649&var=460507259493&ssPageName=STRK%3AMEBIDX%3AIT

Схема http://www.academia.edu/5915843/CWX-SERIES_WIRING_DIAGRAM
Бугор Магистр Город Герой Магадан, St. Louis 211 103
Отв.50  12 Сент. 15, 03:56, через 51 мин
Если вам нужен многофункциональный редактор то Мелкомягкие дают бсплатную версию Visual Studio 2015, ни чем не отличающуюся от профессиональной https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx
для програмирования Arduino в VS 2015 необходимо загрузить плагин https://visualstudiogallery.msdn.microsoft.com/069a905d-387d-4415-bc37-665a5ac9caba

и если С++ вас напрягает, то для Arduino можно запросто писать в VB.Net http://social.technet.microsoft.com/wiki/contents/articles/14194.how-to-communicate-to-the-arduino-in-visual-basic-net.aspx
Бугор Магистр Город Герой Магадан, St. Louis 211 103
Отв.51  12 Сент. 15, 03:56, через 1 мин
webserge,
узнаешь свой код ? Улыбающийся
компиляция в VS 2015

Arduino или дешевая автоматика
Arduino или дешевая автоматика. Автоматика.
webserge Доцент Саратов 1.7K 468
Отв.52  12 Сент. 15, 04:05, через 9 мин
Бугор, необычно. Я раньше в VS как раз и работал, не знал что она сейчас умеет под ардуино компилить. И заливать в контроллер может?
Бугор Магистр Город Герой Магадан, St. Louis 211 103
Отв.53  12 Сент. 15, 04:14, через 9 мин
И заливать в контроллер может?webserge, 12 Сент. 15, 04:05
да, без проблем
http://www.visualmicro.com/page/How-to-compile-and-upload-to-an-Arduino-using-Visual-Studio.aspx
ase70 Студент Краснодар 46 7
Отв.54  12 Сент. 15, 22:36
Может я тупой ,но не настолько
webserge Доцент Саратов 1.7K 468
Отв.55  12 Сент. 15, 23:01, через 26 мин
и если С++ вас напрягает, то для Arduino можно запросто писать в VB.NetБугор, 12 Сент. 15, 03:56
Вот тут промашка, приведенная ссылка показывает как написать на VB.Net консольное приложение которое через serial порт подключится к ардуине и считает инфу. Писать ПО для самой ардуины все же нужно на C++, документацию по IDE для VS изучаю, предварительно мне нравится что смогу снова работать с VS.
slony Магистр Сочи 246 63
Отв.56  12 Сент. 15, 23:08, через 8 мин Автор был выпивший
Есть ещё CodeBlocks http://pashkevich.me/article/22.html Сам не ставил, стандартной ide пока хватало.
Бугор Магистр Город Герой Магадан, St. Louis 211 103
Отв.57  13 Сент. 15, 01:18
Вот тут промашкаwebserge, 12 Сент. 15, 23:01
возможно, я для Ардуино в VB.Net писать не пробовал

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

стандартной ide пока хваталоslony, 12 Сент. 15, 23:08
кому как, стандартный меня с первого дня не впечатлил
VS 2015 я на работе пользуюсь, как-то привычнее
Бугор Магистр Город Герой Магадан, St. Louis 211 103
Отв.58  22 Сент. 15, 22:25
Не большие доработки, и код немного почистил, видео выложу чуть позже, сейчас времени совсем ни на что не хвататет.
В общих чертах  - механизм работает без каких либо нареканий кроме того, что не очень мне нравится то, что значение температуры контролирующее открывание/закрывание крана закодировано, хотелось бы такое значение вносить в ручную. По совету webserge заказал LCD shield с кнопачками, жду когда прилетит.
Так же, я посчитал сколько пульсов нужно для того, что-бы открыть/закрыть мой кран и прибавляю или вычитаю единичку в зависимости от направления движения мотора.


/* reference http://tronixlabs.com/...2a-and-arduino/
* An experiment to make motorized valve opend and close on demand
* the idea is to have valve position controlled with respect to a preset temperature
* Temperature controller  - MAX6675 Module For K Type Thermocouple Sensor
* Motor Controller - Stepper Motor Drive Controller Board Module L298N Dual H Bridge DC For Arduino
*/
#include "max6675.h"

//Temperature
int thermo_vcc_pin = 13;
int ktcSO = 12;
int ktcCS = 11;
int ktcCLK = 10;

//Motorized Valve
int myMotorSpeed = 9;
int Direction_01 = 8;
int Direction_02 = 7;
int valveOpen = 6;
float onePercent = 2.631578947;
int percentOpen = 0;
float thresholdTemp = 27.75; //значение температуры контролирующее открывание/закрывание крана
float currentTakeOutTemp = -1;

//ToDo: connect and code for limit switches
int valveOpenValue = 0; // Valve Open Limit Switch

MAX6675 ktc(ktcCLK, ktcCS, ktcSO);

void setup()
{
 Serial.begin(9600);
 // немного времени на стабилизацию
 delay(500);
 pinMode(thermo_vcc_pin, OUTPUT);
 digitalWrite(thermo_vcc_pin, HIGH);
 // set the motor control pins to outputs
 pinMode(myMotorSpeed, OUTPUT);
 pinMode(Direction_01, OUTPUT);
 pinMode(Direction_02, OUTPUT);
 analogWrite(myMotorSpeed, 255);
 delay(500);
 //закрываем кран
 digitalWrite(Direction_01, LOW);
 digitalWrite(Direction_02, HIGH);
 delay(2500);
}

void ValveController()
{
 //открываем кран если температура поднялась выше заданной
   currentTakeOutTemp = ktc.readCelsius();
 if (currentTakeOutTemp > thresholdTemp and valveOpenValue < 39){
   digitalWrite(Direction_01, HIGH);
   digitalWrite(Direction_02, LOW);
   delay(50); //интервал (пульс), кран открывается
   valveOpenValue++; //gradually open the valve, takes 38 steps to open the valve 100%
   percentOpen = onePercent * valveOpenValue; //считаем на сколько % кран отрыт
   // turn the motor off
   digitalWrite(Direction_01, LOW);
   digitalWrite(Direction_02, LOW);    
 }
   else if (currentTakeOutTemp <= thresholdTemp and valveOpenValue > 0)
 {
  // меняем полярность и закрываем кран
   digitalWrite(Direction_01, LOW);
   digitalWrite(Direction_02, HIGH);  
   delay(50); //интервал (пульс), кран закрывается
   valveOpenValue--; //постепенно закрываем кран, для польного закрытия необходимо 38 пульсов
   percentOpen = onePercent * valveOpenValue; //считаем на сколько % кран отрыт
   // turn the motor off
   digitalWrite(Direction_01, LOW);
   digitalWrite(Direction_02, LOW);
   }
 Serial.print("Deg C = ");
 Serial.print(currentTakeOutTemp);
 Serial.print("\t Valve Open = ");
 Serial.print(percentOpen);
 Serial.println("%");
}

//Run application
void loop()
{
 ValveController();
 delay(5000); //Интервал проверки температуры, 1000 =  1 секунда
}

Arduino или дешевая автоматика
Arduino или дешевая автоматика. Автоматика.
Алконаффт Студент Липецк 28 5
Отв.59  23 Сент. 15, 16:43 Автор был пьяный
Ньюбский вопрос.
А ничего страшного, что клапан не нержавейка? В описании я не нашел того, что он стоек к таким жидкостям.