Очередная паяльная станция

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Доброг времени суток всем. Вообщем немного помучавшись залил скейч в ардуинку.Возникла следующая проблемма: дисплей 16х4 не отображает вообще ничего. контраст крутил не помогает. Прошивка 1.5 с архива Русл@на,  плата alex1978. Подскажите какие действия дальше? Как пользоваться сканером портов в архиве Русл@на?

P.S. Пробовал прошивку 2.2 с дисплеем 16х2 - все корректно отображается

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

mr.nikon пишет:
Как пользоваться сканером портов

Залить скетч сканера, открыть окно сериал монитора и посмотреть, какой адрес устройства на шине  покажет сканер. Этот адрес подставить в скетч ПС, в строку инициализации, к примеру -
LiquidCrystal_I2C lcd(0x27, 20, 4)
адрес 0x27
Там же указывается количество сиволов и строк дисплея, в данном примере 20 символов, 4 строки.
Для 1604 нужно подправить кол-во символов.

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Извиняюсь 20х4 дисплей Понял буду пробовать. Только я если правильно понял то ардуино должна быть установлена на плату

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Попробовал залить скейч выдало вот такую ошибку:Изменена опция сборки, пересобираем все

collect2.exe: error: ld returned 5 exit status
Ошибка компиляции.
OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Можно взять дуину и прицепить к ней дисплей (А4, А5). Там делов на пару минут - адрес глянуть.
А вообще, сравните, какой адрес указан в скетче, с которым не отображает и с которым работает, скорее всего они отличаются.

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

mr.nikon пишет:
collect2.exe: error: ld returned 5 exit status
Ошибка компиляции.

хз, не сталкивался с таким. Почитайте тут, может поможет.

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Спасибо за наставления буду разбираться что к чему 

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Воощем ошибка компиляции происходила из за того что у меня стоист windows xp пришлось заменить один файлик со старой версии 1.0.6 в 1.6.5. тут подсказка  Адрес дисплея действительно стоял совсем другой. Просканировал,записал действительный адрес все заработало. Спасибо что наставили на путь истинный

mr.nikon
Offline
Зарегистрирован: 20.05.2016

OlegK  подскажите пожалуйста что значит ошибка 6 при нагреве фена? Фен в этот момент при ее появлении отключается

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

В сообщении #1669 приведён перечень защит.

mr.nikon
Offline
Зарегистрирован: 20.05.2016

OlegK пишет:

В сообщении #1669 приведён перечень защит.

Т.е по факту может криво работать lm358?

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Да не думаю.
Лучше, на время настройки, доп. защиты деактивировать, закомментив строки
#define HA_ADV_PROT_ON
#define S_ADV_PROT_ON
для фена и паяльника, соответственно.
Потом можно вернуть.

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Понял попробую так сделать. Спасибо за информацию Еще вопрос - как быстро стабилизиуется температура на экране  до момента появления звездочки на экране? Спрашиваю потому как на термопаре можно сказать стабильно дежится а цифры скачут

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

mr.nikon пишет:
как быстро стабилизиуется температура на экране  до момента появления звездочки на экране?

Вот сейчас проверил -
На фене, от комнатной, до 300 град. примерно 25 сек. После стабилизации показания гуляют возле заданной на градус-два.
На паяльнике, до той же температуры - секунд 30, показания - 299...300.

Цитата:
стабильно дежится а цифры скачут

Сильно скачут?

mr.nikon
Offline
Зарегистрирован: 20.05.2016

OlegK пишет:

mr.nikon пишет:
как быстро стабилизиуется температура на экране  до момента появления звездочки на экране?

Вот сейчас проверил -
На фене, от комнатной, до 300 град. примерно 25 сек. После стабилизации показания гуляют возле заданной на градус-два.
На паяльнике, до той же температуры - секунд 30, показания - 299...300.

Цитата:
стабильно дежится а цифры скачут

Сильно скачут?

Примерно в пределах  до 5 градусов. В предел 1-2 градуса не попадают

mr.nikon
Offline
Зарегистрирован: 20.05.2016

OlegK пишет:

mr.nikon пишет:
как быстро стабилизиуется температура на экране  до момента появления звездочки на экране?

Вот сейчас проверил -
На фене, от комнатной, до 300 град. примерно 25 сек. После стабилизации показания гуляют возле заданной на градус-два.
На паяльнике, до той же температуры - секунд 30, показания - 299...300.

Цитата:
стабильно дежится а цифры скачут

Сильно скачут?

Примерно в пределах  до 5 градусов. В предел 1-2 градуса не попадают

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Только фен колбасит? Или паяльник тоже? 5-вольтовое питание не с импульсника берётся?

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

SERG_K пишет:
Заменил регулирование на ПИД

Хочу испытать Ваш вариант для фена. Если не возражаете, конечно.
Какие величины коэффициентов получились?

mr.nikon
Offline
Зарегистрирован: 20.05.2016

OlegK пишет:

Только фен колбасит? Или паяльник тоже? 5-вольтовое питание не с импульсника берётся?

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

P.S. Самое интересное что удивило- это при выставлении 400 гр.  нагрев пошел можно сказать неконтролируемый нагрев т.к. реальная температура на выхлопе почти дошла до 800гр., хотя при 300 практически совпадала с термопарой с мультиметра.

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

mr.nikon пишет:
Попробую как вариант запитать линию 5 в через подходящий транс

ОК, было бы неплохо. Что бы уж точно исключить влияние импульсника ))
 

Цитата:
Самое интересное что удивило- это при выставлении 400 гр.  нагрев пошел можно сказать неконтролируемый нагрев

На всякий спрошу. У Вас же LM-ка? Этот дефайн раскомментирован?

/* if used not rail-to-rail OPA, then uncomment it */
//#define LM358

При отключении фена от разъёма, вместо измерернной температуры "---" появляется?
Какие номиналы конденсаторов в узле контроля 0?

mr.nikon
Offline
Зарегистрирован: 20.05.2016

 

На всякий спрошу. У Вас же LM-ка? Этот дефайн раскомментирован?

/* if used not rail-to-rail OPA, then uncomment it */
//#define LM358

При отключении фена от разъёма, вместо измерернной температуры "---" появляется?
Какие номиналы конденсаторов в узле контроля 0?

[/quote]Да у меня lm 358 - менял на вроде не китайскую. Скейч версии 1.5 как раскоментирована стока - не смотрел сказать пока не могу. При отключении фена t-  показывает не черточки а 374 градуса, паяльник аналогично(не чероточки а цифры)

P.S. посмотрел код -выглядит так:[code]

/* Options */
 
/* if you need to create themperature diagramm then uncomment it */
//#define NEED_GRAPH
 
/* if used not rail-to-rail OPA, then uncomment it */
//#define LM358
 
[/code]
OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

mr.nikon пишет:
//#define LM358

Вот это обязательно нужно раскомментировать и после провести настройку усилителя.
Поэтому и кочегарит фен, что 400 град. не в состоянии измерить.

mr.nikon
Offline
Зарегистрирован: 20.05.2016

OlegK пишет:

mr.nikon пишет:
//#define LM358

Вот это обязательно нужно раскомментировать и после провести настройку усилителя.
Поэтому и кочегарит фен, что 400 град. не в состоянии измерить.

[code]

 
/* * * * * * * * * * * * * * * * * * */
/*       Soldering Station v 1.5     */
/*           coded by OlegK          */
/*    arduino.ru/forumy/proekty      */
/* * * * * * * * * * * * * * * * * * */
 
#include <EEPROM.h>
#include <CyberLib.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Bounce2.h>
#include <avr/io.h>
#include <avr/interrupt.h>
 
/* it's fuckin' magic! */
#if 1
__asm volatile ("nop");
#endif
 
/* Options */
 
/* if you need to create themperature diagramm then uncomment it */
//#define NEED_GRAPH
 
/* if used not rail-to-rail OPA, then uncomment it */
//#define LM358
 
/* if used passive busser, then uncomment it */
//#define PASSIVE_BUZZER
 
/* if you want deactivate additional protection, then COMMENT it */
#define HA_ADV_PROT_ON
#define S_ADV_PROT_ON
 
/* if used LCD 1602, then uncomment it */
//#define LCD_1602
 
/* End options */
 
 
#define FIRMWARE_VERSION "1.5"
Кусок кода из скейча. Правильно сдесь ?
OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Ну да. Секция так и обозвана - Options (опции).
Надо бы расписать все опции в файлике и закинуть в основной архив. Ну и коды ошибок тоже.

mr.nikon
Offline
Зарегистрирован: 20.05.2016

OlegK пишет:

Ну да. Секция так и обозвана - Options (опции).
Надо бы расписать все опции в файлике и закинуть в основной архив. Ну и коды ошибок тоже.

На данный момент этот скейч действующий . Я соберу в кучу все и тогда что то можно пробовать и обсуждать

SERG_K
Offline
Зарегистрирован: 06.08.2017

OlegK пишет:

SERG_K пишет:
Заменил регулирование на ПИД

Хочу испытать Ваш вариант для фена. Если не возражаете, конечно.
Какие величины коэффициентов получились?

Доброе утро. Вот что поменял, пробуйте.
/* HA PID regulator */
#define Kp 1
#define Ki 0.003 
#define Kd 5
 int integral = 0;
 int dif = 0 ;
 
****
/* Фен считыавние и усреднение температуры */
uint16_t getOversampled_HA() {
    uint32_t tmp = 0;
    for (byte z = 0; z < 128; z++) {  /*сделал коичество измерений побольше , если питание чистое можно оставить как было*/
        tmp +=  A7_Read;
    }
    return tmp >> 7;
}
****
/* Zero cross INT1 */
 
void ZC() {
  if (hotair_state ==st_work) {HA_PID();   //запускаем PID
    StartTimer1(HeaterOn, ots);
    RestartTimer1();}
}
 
/* открывающий импульс для симистора  */
void HeaterOn() {
    if (HAPower > 0.0) { D8_High; delay_us(100);}
    D8_Low;
    StopTimer1();
}
 
/* Расчет задержки открытия симистора */
void CalctImpulseControl() { ots = (uint16_t)(acos(HAPower / 50.0 - 1.0 ) * 9900.0 / pi);} /*Можно 9900 уменьшить на время расчета PID, но поскольку мощность ограничена 60% импульс не выскакивает в другую полуволну*/
 
/* HotAir PID regulator */
void HA_PID() {    
     err = SetHotAirT - GetHotAirT;  
    float tmp_power = ((Kp * err) + (Ki * integral) + (Kd*(err - dif)));
    float max_power = map(SetHotAirT, min_hotair_temp, max_hotair_temp, 10.0, 60.0);
    if (tmp_power < max_power && tmp_power > 0.0) {integral += err; }
    dif = err;
    HAPower = constrain(tmp_power, 0.0, max_power);
    CalctImpulseControl();
}

***

и соотвеиственно

   /* Themperature PI regulator */

        //HA_PI();
 
 
mr.nikon
Offline
Зарегистрирован: 20.05.2016

 OlegK Воощем сообрал всю конструкцию предварительно в корпус. Запитал цифровую часть от 5 вольтового трансформаторного блока питания. По каналу фена на данный момент могу сказать следкуещее:

1. Температура более менее начинает стабилизироватся и выходить на рабочий режим со * от 250 градусов(до 250 частяком выскакивает ошибка 6)

2. Температуру держит можно сказать довольно стабильно (немного изменяется при изменении режима работы турбинки)

3. Работает стабильно от 250 градусов до предела 385 градусов

4 При включении 390 начинается неконтролируемый нагрев

Паяльник пока не подключался

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

mr.nikon пишет:
4 При включении 390 начинается неконтролируемый нагрев

Давайте пока с этим разберёмся. Нужно выяснить, способен ли усилитель измерить такую температуру.

Повторюсь с вопросами -
#define LM358 Вы раскоментировали?
При отключении фена от разъёма, вместо измеренной температуры "---" появляется?

 

mr.nikon
Offline
Зарегистрирован: 20.05.2016

В посте 1873 я копировал кусок кода из скейча который сейчас залит и работает- там не правильно ?

При отключении фена от разъема появляються цифры 387,  "---" не появляютя

alex1978
alex1978 аватар
Offline
Зарегистрирован: 09.09.2017

mr.nikon пишет:

В посте 1873 я копировал кусок кода из скейча который сейчас залит и работает- там не правильно ?

При отключении фена от разъема появляються цифры 387,  "---" не появляютя

Там не правильно.

Должно быть так:

/* if you need to create themperature diagramm then uncomment it */
//#define NEED_GRAPH
 
/* if used not rail-to-rail OPA, then uncomment it */
#define LM358
 
/* if used passive busser, then uncomment it */
//#define PASSIVE_BUZZER
 
Перед #define LM358 нужно убрать две косые.
OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

mr.nikon пишет:

В посте 1873 я копировал кусок кода из скейча который сейчас залит и работает- там не правильно ?

Раскомментируйте #define LM358 - уберите косые палки впереди.

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Теперь понял. Сейчас попробую

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Убрал косые палки- все стало как положено: при отключеном фене температура"---", сейчас как надо набирает 450 градусов. Осталось несколько корректировок произвести  холодный -горячий  и думаю с каналом фена будет все хорошо. Спасибо за помощь OlegK  и alex 1978

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

А до 250 град. вылеты в защиту прекратились, что ли? В режим стабилизации ("звёздочка") входит?

mr.nikon
Offline
Зарегистрирован: 20.05.2016

В основном в режим стабилизации входит. Сильно пока не мучал. Надо настроить более точнее. Попробую различные температуры и отпишусь как себя ведет

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Сейчас подстроил и немного погонял по различным температурам.Получился примерно следующий результат

 100 , 120, 150, 220 -вылет с ошибкой 6. Первый раз с большой задержкой стабилизировалась на 250гр. Далее 300 довольно таки быстро вошла в режим стабилизации. Еще заметил одну такую особенность - примерно за 30гр до заданной температуры текущая практически останавливается  и как раз в это момент и происходит вылет

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Напишу по опциям, которые можно выбрать перед компиляцией. Потом добавлю в основной архив.

/* Options */
/* if you need to create themperature diagramm then uncomment it */
//#define NEED_GRAPH
Этот дефайн определяет, будет ли активирована передача в последовательный порт измеренной температуры, для снятия графика
набора температуры. Будет передаваться температура одного включённого канала - либо паяльника, либо фена.
Для активации передачи нужно раскомментировать дефайн.

/* if used not rail-to-rail OPA, then uncomment it */
//#define LM358
Определяет, будут ли показания АЦП делиться на 2 при использовании разных типов ОУ.
Если ОУ обычный, не рэйл-ту-рэйл (к примеру LM358), то этот дефайн требуется раскомментировать.

/* if used passive busser, then uncomment it */
//#define PASSIVE_BUZZER
Буззеры бывают со встроенным генератором (активные) или без (пассивные).
Если используется пассивный, то нужно раскомментировать этот дефайн.

/* if you want deactivate additional protection, then COMMENT it */
#define HA_ADV_PROT_ON
#define S_ADV_PROT_ON

Эти два дефайна определяют, будут ли активны защиты дополнительной группы (номера > 2).
Раздельно, для канала фена и паяльника. Для отключения этих защит нужно закомментировать соответствующие
дефайны. Это может потребоваться на время первичной настройки, затем желательно их активировать.

/* if used LCD 1602, then uncomment it */
//#define LCD_1602
По умолчанию станция использует дисплей на 4 строки, 20 символов. Если используется дисплей 2 строки, 16 символов,
то этот дефайн нужно раскомментировать.

/* Soldering iron - if you want to remove the digit jumps, then uncomment it */
//#define SOLDER_DIGIT_JUMPS_REMOVE
Это, в общем-то костыль. По умолчанию неактивен.
Служит для того, что бы не "мельтешили" показания измеренной температуры.
Имеет "окно" в 2 градуса, т.е. столько же, сколько и признак стабильности температуры (символ *).
По сути, если то, что намеряли отличается от того, что задали на величину, не более 2 град., то
на дисплей выводится заданная, а не измеренная температура.
При выходе за границы двухградусного "окна", возобновляется индикация
измеренного значения.

/* Hot Air - if you want to remove the digit jumps, then uncomment it */
//#define HOTAIR_DIGIT_JUMPS_REMOVE
Тоже, что и предыдущее, но для фена.

/* if you want soldering iron soft start, then uncomment it */
//#define SOLDER_SOFT_START
Типа, мягкий старт при начальном разогреве паяльника.
Можно рекомендовать активировать, если при холодном старте паяльника (в основном керамических нагревателей),
применённый БП уходит в защиту. Для активации - раскомментировать.

/* if you want to activate soldering iron off-timer only on stand, then uncomment it */
//#define SOLDER_TIMER_ON_STAND
Это с версии прошивки 1.6 и выше. Дефайн определяет работу таймера отключения канала паяльника.
Если закомментирован, то всё работает, как изначально - при помещении паяльника на подставку или снятии
сбрасываем таймер.
Если раскомментрировать, то таймер запустится при нахождении паяльника на подставке и деактивируется при снятии.

/* End options */

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Скажите какие есть варианты для решения проблемы с вылетом? Если что извеняйте за назойливость,но просто никогда не имел дело с ардуино и для vtyz все это темный лес. Еще вопрос а прошивки 1.6 и выше насколько стабильнее работают и где их можно скачать?

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

mr.nikon, попробуйте увеличить константу
#define Ki 0.003
до 0.007

mr.nikon пишет:
Еще вопрос а прошивки 1.6 и выше

Выше 1.6 ещё не существует )) А 1.6 имеет незначительные модификации. Пока не выкладывал, пробую
ещё чуть регулирование улучшить.

mr.nikon
Offline
Зарегистрирован: 20.05.2016

#define Ki 0.003 //0.003 //0.005 //0.05 подскажите за что каждый коэфициент отвечает?

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

По коэффициентам и вообще, по регулированию, можете почитать в книжке, ссылка на которую выложена в "шапке" темы.
А пока сделайте #define Ki 0.007

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Сделал вместо 0.003  Ki 0.007  особо ничего не поменялось

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Фигня какая-то... Попробуйте залить этот скетч (только не забудьте раскомментить дефайн ЛМ358)

mr.nikon
Offline
Зарегистрирован: 20.05.2016

Завтра уже залью и отпишусь по результатам

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Лады. Только файл скачайте, ибо чуть позже удалю, что бы не было путаницы.

YURSA
YURSA аватар
Offline
Зарегистрирован: 28.09.2017

Доброго времени суток OlegK. Пеоебрав не мало вариантов ПС решил остановиться на Вашем. Ну,и сразу вопрос:возможно ли реализовать данный девайс на голом ATMega328,(просто имеются в наличии и в DIP и TQFP )и возможно ли будет осуществить передачу в последовательный порт измеренной температуры, для снятия графика ,прграмматор у меня AVRISP MKII и ещё китайский USBASP .
В программировании ч не очень разбираюсь,но с ARDUINO UNO баловался.
Тему изучил подробно с первого до последнего комментария аж почти две недели этому делу посвятил, и всё-таки думаю примерить энкодер
Думаю что разберуся

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

YURSA пишет:
Доброго времени суток OlegK.

Приветствую!

Цитата:
возможно ли реализовать данный девайс на голом ATMega328

Можно, почему нет?

Цитата:
возможно ли будет осуществить передачу в последовательный порт измеренной температуры

Тут придётся цеплять USB-serial адаптер, типа такого или такого. Можно предусмотреть на плате разъём для подключения к пинам D0, D1 и подтыкать адаптер для снятия графика. Хотя это и не обязательно (графики снимать).

Цитата:
и всё-таки думаю примерить энкодер

Тут, вроде, уже кто-то реализовал вариант с энкодером.

YURSA
YURSA аватар
Offline
Зарегистрирован: 28.09.2017

Приветствую Вас OlegK. Спасибо за ответ.
Придётся выписывать с ali
Я так понял что через этот адаптер можно и скетч в контроллер залить? Если да, то вещь полезная, или NANO заказать.
Платы всё равно буду под себя разводить на smd, даже скорее всего всё на одной плате кроме усилителя его модулем сделать.

Spinne
Spinne аватар
Offline
Зарегистрирован: 03.09.2017

YURSA пишет:
и всё-таки думаю примерить энкодер Думаю что разберуся

Приветствую! В посте #1721 - мой вариант версии 1.5 под энкодер

mr.nikon
Offline
Зарегистрирован: 20.05.2016

OlegK

Залил скейтч и могу сказать следущее: стабилизация на прошивке 1.5 происходила быстрее. По  температуре до 250 гр. вылетает в ошибку на двух версия скейтча. Может каким то образом симистор косячит?

P.S. Народ   отпишитесь  как у кого ведет себя станция до 250 гр?