Бутерброд для ЛУТ или ЛУТ без утюга на Arduino
- Войдите на сайт для отправки комментариев
Приветствую форумчане ! В этой сфере я новичек , ардуино в руке держу пару дней и за это время успел потестить часы , барометр и прочую мелочь - радуюсь как ребенок ) Так вот задумал я сотворить устройство на ардуино: диммер + термопара + тэн , хочется задавать температуру самому и чтоб по достижению выставленной температуры звучал сигнал и устройство отключалось. Хочу это все приспособить для ЛУТ , то есть ЛУТ без утюга. Будет что-то типо бутерброда в который будет закладываться текстолит с тонером ... В данный момент имею UNO , на днях должна приехать NANO , примерно "нарисовал" как я это вижу . Хочу знать это возможно ? Слишком это сложно в плане написания кода ? Вот картинка коммутации , посмотрите пожалуйста что не так ?! Помогите по возможности добавить управление с кнопок !
p.s. то что я художник от Бога можете не упомянать , я в курсе )))
Диммер уже собран , осталось только воткнуть MOC 3052 , операционник собран и проверен ! По всей сети перерыл кучу информации и собрал вот такую часть кода , LCD прописал в код сам , пока мало понимаю что к чему , но на экране температуру с термопары уже отображает :
#include <LCD_1602_RUS.h> // Задаем адрес LCD экрана 0x27, 16 символов, 2 строки LCD_1602_RUS lcd(0x27, 16, 2); int incomingByte = 0; // for incoming serial data int AC_LOAD = 3; // Output to Opto Triac pin volatile int dimming = 117; // Dimming level (0-128) 0 = ON, 128 = OFF int temp_PIN=0; // Порт датчика температуры void setup() { lcd.init(); // Инициализируем экран // Включаем подсветку экрана lcd.backlight(); pinMode(AC_LOAD, OUTPUT); // Set the AC Load as output attachInterrupt(0, zero_crosss_int, RISING); // Choose the zero cross interrupt # from the table above Serial.begin(9600); } void zero_crosss_int() // function to be fired at the zero crossing to dim the light { // Firing angle calculation :: 50Hz-> 10ms (1/2 Cycle) // (10000us - 10us) / 128 = 75 (Approx) int dimtime = (75*dimming); delayMicroseconds(dimtime); // Off cycle digitalWrite(AC_LOAD, HIGH); // triac firing delayMicroseconds(10); // triac On propogation delay digitalWrite(AC_LOAD, LOW); // triac Off } void loop() { /* Управления с клавиатуры if (Serial.available() > 0) { // read the incoming byte: int x=map(Serial.read(),49,57,128,10); if(x>9&&x<129) dimming= x; } */ // Управления термопарой int temp = map(analogRead(temp_PIN),0,40,10,116); if(temp>9&&temp<117) dimming=temp; Serial.println(analogRead(temp_PIN)); // Данные паяльника на дисплей lcd.print(L"TEMПEPATУPA:"); lcd.setCursor(12, 0); lcd.print(analogRead(temp_PIN)); lcd.print("\C "); // Символ после температуры lcd.setCursor(0, 0); delay(100); /* Управление в цикле for (int i = 2; i <= 117; i++){ dimming = i; delay(20); } for (int i = 117; i >= 2; i--){ dimming = i; delay(20); } */ }
Возможно то оно, возможно. А как будете обеспечивать плотность прилегания тонера к плате?
Возможно то оно, возможно. А как будете обеспечивать плотность прилегания тонера к плате?
Если код брали копипастом, а не осмысленно, то найдите библиотеку CiberLib, там очень корректно прописана работа с таким диммером. Ну и корректность схемы и показаний с операционника проверять. А остальное в общем то уже мелочи.
На данный момент мне хотя бы запустить один диммер с лампочкой в качестве нагрузки , я не могу понять как сделать управление кнопками "Прибавить" и "Убавить" яркость лампочки. Термопара с ОУ проверена , все работает (предварительно калибровал изменением сопротивления на ОУ) и на ЖК отображает. Теперь хочется отдельно поуправлять диммером. После чего потихоньку все собирать в единое целое ...
найдите библиотеку CiberLib, там очень корректно прописана работа с таким диммером.
For (i = 0; i<=255; i++) {
delay(200);
Здесь скармливаем диммеру значение i
}
Аналогично в обратную сторону. Алгоритмы по кнопкам почитайте здесь.
Пойду поизучаю Ваши советы. Ребят если есть еще у кого что-то добавить , буду признателен ! Может кто-то сможет наглядно показать кусочек кода , тоже будет не плохо , на разборе других скетчей тоже разбираться получается !
R3/R4 я использую 51кОМ
бутерброд звучит хорошо, но каким образом будет сам перенос осуществляться? просто нагреть мало, надо или придавить или прикатать
обычно прикатывают или утюгом или ламинатором, это позволяет легко добиться равномерного прижима. А вот в вариенте придавить, то есть пресс нужна будет жесткость верха и низа бутерброда и какой-то механизм управляемого прижима - технически все это сложнее прикатывания
обычно прикатывают или утюгом или ламинатором, это позволяет легко добиться равномерного прижима. А вот в вариенте придавить, то есть пресс нужна будет жесткость верха и низа бутерброда и какой-то механизм управляемого прижима - технически все это сложнее прикатывания
Было где то на Ютубе, с фольги в кипятке, через резину. Но как то скепсис вызывает в получении равномерности по всей площади плиты. ТС сказал, этого он не боится.))))
бутерброд звучит хорошо, но каким образом будет сам перенос осуществляться? просто нагреть мало, надо или придавить или прикатать
обычно прикатывают или утюгом или ламинатором, это позволяет легко добиться равномерного прижима. А вот в вариенте придавить, то есть пресс нужна будет жесткость верха и низа бутерброда и какой-то механизм управляемого прижима - технически все это сложнее прикатывания
Пойду поизучаю Ваши советы. Ребят если есть еще у кого что-то добавить , буду признателен ! Может кто-то сможет наглядно показать кусочек кода , тоже будет не плохо , на разборе других скетчей тоже разбираться получается !
Лучше начинайте делать сами и сюда выкладывать. И будете понимать, что происходит, и подправят, если потребуется. Только ради Аллаха, Будды, Кришны и прочего пантеона, не пихайте все в loop, а функциями, функциями. И отлаживать и что то изменять легче.))))
Только ради Аллаха, Будды, Кришны и прочего пантеона, не пихайте все в loop , а функциями, функциями. И отлаживать и что то изменять легче.))))
Функция - аналог подпрограммы в Бейсике, Фортране и т.п. Код разбитый на небольшие самодостаточные блоки (функции-подпрограммы) намного проще в отладке. Добились работы получения температуры в функции и можно к ней больше не возвращаться, т.к. знаем, что полученный из нее результат корректен. И так по всей программе.
понятно. судя по ссылкам равномерность прижима решается двумя вещами - минимальными размерами девайса (что означает ограничение по размеру плат) и применение толстых дюралевых листов. Имел опыт приобретения толстого дюраля, он нынче стоит столько...)) проще ламинатор купить
кстати в чем преимущество перед ламинатором?
кстати в чем преимущество перед ламинатором?
выбор ваш. я все не пробовал, я сразу купил ламинатор, потом его переделал (сделал свой контроллер с автоматическим протягиванием). Меня все устраивает. И пользоваться явно проще, чем этим прессом. Но может я что то не понимаю насчет преимуществ...
Можно не прикатывать а просто придавить резиновой прокладкой, есть способ simpletronic: смешать ацетон и спирт в пропорции примерно 3:8. Мажется на отпечаток, кладётся на чистую плату, через 15 секунд придавливается на 40-60 секунд, потом 2 минуты лежит в покое. Прокладку при этом надо снять, чтобы раствор испарился. Сдирается обычным способом.
Можно не прикатывать а просто придавить резиновой прокладкой, есть способ simpletronic: смешать ацетон и спирт в пропорции примерно 3:8. Мажется на отпечаток, кладётся на чистую плату, через 15 секунд придавливается на 40-60 секунд, потом 2 минуты лежит в покое. Прокладку при этом надо снять, чтобы раствор испарился. Сдирается обычным способом.
В общем запустил диммер без кнопок , пока задал в цикле вот это :
Работает , а это главное , пошел читать и изучать дальше !
В общем запустил диммер без кнопок , пока задал в цикле вот это :
Работает , а это главное , пошел читать и изучать дальше !
Ну а for мой чем не ко двору пришелся? ((((
Ну а for мой чем не ко двору пришелся? ((((
На for-е более понятна будет плавность. Я на киберлибе их гоняю, но там отслеживают и фронт и спад, насколько плавный ваш алгоритм, неизвестно.
Вот таким вышел диммер :
И вот таким ОУ для термопары :
Вы таки какую мощу им гонять собрались? Вроде киловатты для этой задачи не требуются.
А вот ОУ в колодке, думаю лишнее. ИМХО.
Вы таки какую мощу им гонять собрались? Вроде киловатты для этой задачи не требуются.
В принципе BTшки в ТО-220 полкиловатта и так тянут спокойно.
В принципе BTшки в ТО-220 полкиловатта и так тянут спокойно.
delay из тела обработчика прерываний нужно убирать и переделывать логику на два обработчика - один по пину, второе по таймеру. Проще всего наверно библиотеку прикрутить http://playground.arduino.cc/Main/MsTimer2
delay из тела обработчика прерываний нужно убирать и переделывать логику на два обработчика - один по пину, второе по таймеру. Проще всего наверно библиотеку прикрутить http://playground.arduino.cc/Main/MsTimer2
Думаю это примерно то о чем Вы говорили ?!
вполне нормальный вариант который вы нашли
просто если использовать delay внутри обработчика прерываний то по мере увеличения размера скетча вы можете попасть в ситуацию когда сначала перестанет работать код внутри loop (будет непрерывное срабатывание прерываний), а потом и прерывания не будут вовремя срабатывать
в общем хорошая практика это когда обработчик прерываний делает свою работу максимально быстро, если нужно сделать что-то длительное, то в рбработчике выставляется переменная-флаг и само действие делается уже в loop
Спасибо , я постараюсь это учесть. Нужно больше об этом читать , практика это хорошо , но без теории никуда. Сейчас потыкаюсь , нужно вникнуть. Спасибо еще раз !
p.s. и если будете обращаться на ТЫ , мне будет комфортнее )
вполне нормальный вариант который вы нашли
Вот тут эта статья , а там и схема и скетч , возможно этот скетч переделать под мой диммер без "ZeroCross" ?
Неужели так трудно было либу и описание найти? В первом схема, потом по ссылке на многоканальный, там либа и код.
Кстати, попытался соотнести вашу схему с вашей хотелкой. Так вы собираетесь управлять этим куском фольги напрямую или все таки через разделительный трансформатор?
Только сейчас увидел что этот скетч мне не подойдет , он написан под диммер в котором оптосимистор с контролем нуля или как там его "ZeroCross" , а у меня без этого самого "ZeroCross". Замкнутый круг )
где вы такое увидели? Там в коде явно указывается на определение момента открытия симистора, а это уже значит, что там оптосимистор без детектора нуля. Кстати при наличии хоть какой-то тепловой инерции вместо фазо импульсного регулирования можно применять пропуск полупериодов. В этом случае без разницы есть датчик нуля или нет
Кстати, попытался соотнести вашу схему с вашей хотелкой. Так вы собираетесь управлять этим куском фольги напрямую или все таки через разделительный трансформатор?
Там в коде явно указывается на определение момента открытия симистора, а это уже значит, что там оптосимистор без детектора нуля. Кстати при наличии хоть какой-то тепловой инерции вместо фазо импульсного регулирования можно применять пропуск полупериодов. В этом случае без разницы есть датчик нуля или нет
Воспользовался пока этим скетчем , для первоначального как основа вполне подходит , проверил все работает. Тем времени всем спасибо , задача выполнена . Тонкости добью !
Уважаемый TarLink, подскажи плиз, твой проект работает, доработки были или все исправно по последнему коду? Мне нужна примерно такая же схема, только заместо утюга планирую подключить стеклокерамическую плиту (1 элемент).. потянет?
:)