Инфракрасная паяльная станция своими руками на ARDUINO
|
|
Alexandr_ | Дата: Среда, 08.02.2017, 19:55 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 814
Статус: Offline
| Форумчане, куплю-продажу и личные сделки выяснять в личке, либо в новом форуме, этот форум для вопросов по электронной части станции.
Архив по станции от hominidae с проектом efimsu ->здесь Проект Леонида, Leonid0071 "UNO-MAX6675-PC" и его доработки на форуме Амперки -> скачать
Люби грешников, ненавидь сам грех!
|
|
|
Пользователи поблагодарившие Alexandr_ за этот пост: |
|
|
Cinema | Дата: Среда, 27.03.2019, 08:22 | Сообщение # 511 |
Генерал-майор
Группа: Проверенные
Сообщений: 618
Статус: Offline
| Цитата DIM ( ) может у чипа LGE 35230 те-па оплавления шаров выше? А низом до какой температуры плату разогреваете? IMHO, когда низом маловато, то верху туго приходится, т.к. плата отбирает активно. Когда разница температур между чипом, греемым верхом, и платой, за счет достаточно высокой температуры платы, невелика, - верху значительно легче расплавить шарики. Кстати, и вероятность оторвать пятаки снижается, когда плата нагрета согласно рекомендаций производителей чипов. В связи с этим, представляется новый тип профиля - такой, при котором оба нагревателя начинают работать сразу при старте профиля и ведут профиль с заданными скоростями, но и опираясь на сохранение разницы температур между датчиками НИ и ВИ, примерно, в 50- 70*С.
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
|
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
DIM | Дата: Среда, 27.03.2019, 11:51 | Сообщение # 512 |
Подполковник
Группа: Пользователи
Сообщений: 172
Статус: Offline
| Cinema, низ на 160С но по факту до 170С, а верх два шага на 190С и 230С по факту 238С. мне подумалось, а то что чип накрыт железной крышкой, это не влияет?
|
|
|
Пользователи поблагодарившие DIM за этот пост: |
|
|
Cinema | Дата: Четверг, 28.03.2019, 21:59 | Сообщение # 513 |
Генерал-майор
Группа: Проверенные
Сообщений: 618
Статус: Offline
| Цитата DIM ( ) а то что чип накрыт железной крышкой, это не влияет? Конечно же влияет. Я даже наслышан о хитрой технологии, которую применяли в СССР при запайке огромных чипов... А вообще, гляньте файлик - там vavan, он, кстати участник этого форума в ветке про LDZ, поднимал вопрос о большом чипе.
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
|
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
DIM | Дата: Пятница, 29.03.2019, 15:56 | Сообщение # 514 |
Подполковник
Группа: Пользователи
Сообщений: 172
Статус: Offline
| Цитата Cinema ( ) Конечно же влияет. в таком случае самое простое это не жечь плату,а сдернуть крышку с чипа и снимать его на нормальном (щадящем) профиле. так?Добавлено (05.04.2019, 09:29) --------------------------------------------- ...? Добавлено (05.04.2019, 09:30) --------------------------------------------- ну можно еще подождать с месяц....
|
|
|
Пользователи поблагодарившие DIM за этот пост: |
|
|
Alexandr_ | Дата: Пятница, 05.04.2019, 23:15 | Сообщение # 515 |
Генералиссимус
Группа: Администраторы
Сообщений: 814
Статус: Offline
| Цитата DIM ( ) Добавлено (05.04.2019, 09:30)--------------------------------------------- ну можно еще подождать с месяц....
Чего именно месяц ждать то нужно?
Люби грешников, ненавидь сам грех!
|
|
|
Пользователи поблагодарившие Alexandr_ за этот пост: |
|
|
DIM | Дата: Воскресенье, 07.04.2019, 04:44 | Сообщение # 516 |
Подполковник
Группа: Пользователи
Сообщений: 172
Статус: Offline
| как сделать чтобы профиль запоминался, т.е. после выключения\включения оставался тот на котором происходила пайка, а не первый (по умолчанию)? и еще, где в коде поменять чтобы профили были не под цифрами (или не только), а еще и могли быть подписаны? ну как пример: RoHS и Pb, Unsolder, у меня дисплей позволяет, мелочь но удобно было бы.
|
|
|
Пользователи поблагодарившие DIM за этот пост: |
|
|
mon | Дата: Воскресенье, 07.04.2019, 17:40 | Сообщение # 517 |
Подполковник
Группа: Модераторы
Сообщений: 191
Статус: Offline
| Цитата DIM ( ) чтобы профили были не под цифрами (или не только), а еще и могли быть подписаны? ну как пример: RoHS и Pb, Unsolder,
Удобно объявить строки во флешь и указатель в виде массива:
Код __flash char startDN[]= "1 Start Dn"; __flash char faza2[]= "2 faza Dn"; __flash char faza3[]= "3 faza Dn"; __flash char startUP[]= "4 Start Up"; __flash char aktivFlus[]= "5 Aktiv Flux"; char __flash * __flash ShagPr[] = {startDN,faza2,faza3, startUP,aktivFlus,Tplav,Tmax,TimeSt};
Ну а потом напимер использовать в функции Код void NastorikaProfil(u8 shag,u8 rejim) { LCD_SendStrFl(ShagPr[shag]); LCD_Goto(0,1);
if(!xFlag.zap) { v.corTPR = v.TProfil[rejim][shag]; v.corTSPR = v.TSProfil[rejim][shag]; v.corTM = v.TMaxt[rejim]; xFlag.zap = 1; };
Цитата DIM ( ) как сделать чтобы профиль запоминался, т.е. после выключения\включения оставался тот на котором происходила пайка, а не первый (по умолчанию)?
Очень просто,записывать перед началом выполнения вашей основной функции,номер текущего профиля в eeprom,а при включении/перезагрузки в коде инициализации периферии загружать из eeprom в озу.Также можно проверять сигнатуру,то есть была ли запись при первой перепрошики МК проверять была ли запись по дефолт в eeprom :Код __no_init __eeprom u16 EEpSign[2] @ 0x00; //сигнатура EEPROM
//начальные установки default #define POWER 100 #define REJIM 0
#define ESIGN 0xABCE //сигнатура EEPROM для проверки на наличие записи в еепром
//настройки меню #define MaxMass 2 #define MAXAUTO 20 //длитильность удержания кнопки для автоматического декремента/инкремента числа #define LONG_MIG 20 //Длитильность мигания #define MAXPWR 1000
void signEEprom (void)//copy eeprom to ram { if(EEpSign[1] == ESIGN) //если сигнатура верна, чтение EEPROM { G.Power = EEPower; G.Rejim = EERejim; Heater_SetMode(G.Rejim); } else {
EEpSign[1] = ESIGN; //signatura EEPROM
EEPower = POWER; EERejim = REJIM;
G.Power = EEPower; G.Rejim = EERejim; Heater_SetMode(G.Rejim);
};
}
Сообщение отредактировал mon - Воскресенье, 07.04.2019, 17:56 |
|
|
Пользователи поблагодарившие mon за этот пост: |
|
|
DIM | Дата: Понедельник, 08.04.2019, 02:58 | Сообщение # 518 |
Подполковник
Группа: Пользователи
Сообщений: 172
Статус: Offline
| mon, спасибо конечно, но сам коды не пишу, правлю лишь то что понимаю и по аналогии. так что сам вписать вашу подсказку вряд ли смогу. если что то вот мой код, покажите как поправить буду признателен. а сам увы...
|
|
|
Пользователи поблагодарившие DIM за этот пост: |
|
|
mon | Дата: Понедельник, 08.04.2019, 19:53 | Сообщение # 519 |
Подполковник
Группа: Модераторы
Сообщений: 191
Статус: Offline
| DIM, ставить среду ардуино на свой комп я не стану,мне с головой хватает кейла и iar,но подскажу,как вам надо сделать,для начала подключить хидер #include <avr/pgmspace.h> и прописать ваши строки например:
Код const char str_0[] PROGMEM = "RoHS"; const char str_1[] PROGMEM = "Pb"; const char str_2[] PROGMEM = "Unsolder"
и.т.д.
потом масив указателей на ваши строки Код const char * const CurProfil[] PROGMEM = {str_0, str_1, str_2};
Сейчас ваша переменная выводится так lcd.print(currentProfile),а вам нужно поправить на lcd.print(CurProfil[currentProfile]) ,ну и возможно переопределить место куда выводить строку.
|
|
|
Пользователи поблагодарившие mon за этот пост: |
|
|
DIM | Дата: Вторник, 09.04.2019, 03:05 | Сообщение # 520 |
Подполковник
Группа: Пользователи
Сообщений: 172
Статус: Offline
| monЦитата mon ( ) потом масив указателей на ваши строки знать бы еще куда вставить, в этом не силен.
Цитата mon ( ) переопределить место куда выводить строку. а вот с этим как раз разберусь.
|
|
|
Пользователи поблагодарившие DIM за этот пост: |
|
|
mon | Дата: Вторник, 09.04.2019, 05:42 | Сообщение # 521 |
Подполковник
Группа: Модераторы
Сообщений: 191
Статус: Offline
| Цитата DIM ( ) знать бы еще куда вставить, в этом не силен. Я же написал,поиском найдите функцию в коде lcd.print(currentProfile) и везде где она есть заменить на lcd.print(CurProfil[currentProfile]),если есть в среде ардуино функция автозамена replace,то используйте её.
|
|
|
Пользователи поблагодарившие mon за этот пост: |
|
|
DIM | Дата: Вторник, 09.04.2019, 07:43 | Сообщение # 522 |
Подполковник
Группа: Пользователи
Сообщений: 172
Статус: Offline
| Цитата mon ( ) Я же написал,поиском найдите функцию в коде lcd.print(currentProfile) и везде где она есть заменить на lcd.print(CurProfil[currentProfile]),если есть в среде ардуино функция автозамена replace,то используйте её. я это сделал, я же писал что по аналогии могу кое что править. а куда это вставлять не пойму?
Цитата mon ( ) const char str_0[] PROGMEM = "RoHS"; const char str_1[] PROGMEM = "Pb"; const char str_2[] PROGMEM = "Unsolder" и.т.д.
Цитата mon ( ) const char * const CurProfil[] PROGMEM = {str_0, str_1, str_2};
|
|
|
Пользователи поблагодарившие DIM за этот пост: |
|
|
mon | Дата: Вторник, 09.04.2019, 11:20 | Сообщение # 523 |
Подполковник
Группа: Модераторы
Сообщений: 191
Статус: Offline
| Цитата mon ( ) я это сделал, я же писал что по аналогии могу кое что править.а куда это вставлять не пойму? в шапке кода,где переменные объявляются
|
|
|
Пользователи поблагодарившие mon за этот пост: |
|
|
DIM | Дата: Вторник, 09.04.2019, 11:44 | Сообщение # 524 |
Подполковник
Группа: Пользователи
Сообщений: 172
Статус: Offline
| Цитата mon ( ) где переменные объявляются вот как то так
|
|
|
Пользователи поблагодарившие DIM за этот пост: |
|
|
mon | Дата: Вторник, 09.04.2019, 11:54 | Сообщение # 525 |
Подполковник
Группа: Модераторы
Сообщений: 191
Статус: Offline
| DIM, Вы засунули в функцию,а надо сделать глобальными.
|
|
|
Пользователи поблагодарившие mon за этот пост: |
|
|