Месяц эксплуатации не выявил проблем. Единственная проблема - паяльник Т12 - легкий и выключатель в подставке не всегда срабатывает. Но это не важно - все равно буду ставить датчик вибрации.
Пришла недорогая пластиковая ручка-держатель жал Т12 (300 руб). Буду её собирать. С ней пришли датчики вибрации (шариковый и ртутный) - проверю какой удобнее или оба поставлю.
Код сырой, выкладываю часть измерения и включения нагрева. Посмотрите если интересно.
Если кратко: каждые 100мСек выключаю нагрев, жду 10 мСек (не менее 5 мСек переходные процессы) считываю значение АЦП с операционника с термопарой. Сравниваю с заданой температурой (счтываю АЦП с переменного резистора которым задаю температуру -> перевожу в градусы -> пересчитываю в АЦП для термопары) По результатам сравнения принимаю решение включать ли нагрев на следующие 100 мСек.
Проект получил интересное дальнейшее развитие.Буквально недавно автор опубликовал новую статью с более совершенным устройством.
Станция стала профессиональной. Добавился графический дисплей. Предусмотрены различные настройки в многоуровневом меню. Помимо паяльника на жалах Т-12, в контроллере теперь предусмотрено управление паяльным феном. К сожалению мощностей Ардуино под такие задачи не достаточно, поэтому автор воспользовался МК серии STM32.
Надеюсь русскоязычная версия появится и на страницах этого форума.
Месяц эксплуатации не выявил проблем. Единственная проблема - паяльник Т12 - легкий и выключатель в подставке не всегда срабатывает. Но это не важно - все равно буду ставить датчик вибрации.
Пришла недорогая пластиковая ручка-держатель жал Т12 (300 руб). Буду её собирать. С ней пришли датчики вибрации (шариковый и ртутный) - проверю какой удобнее или оба поставлю.
KSGER шарик ставит - слышно, что в ручке что-то трясется.
день добрый, а как вы реализовали измерение температуры в паузы между нагревами? можно где на вашу прошивочку глянуть?
Код сырой, выкладываю часть измерения и включения нагрева. Посмотрите если интересно.
Если кратко: каждые 100мСек выключаю нагрев, жду 10 мСек (не менее 5 мСек переходные процессы) считываю значение АЦП с операционника с термопарой. Сравниваю с заданой температурой (счтываю АЦП с переменного резистора которым задаю температуру -> перевожу в градусы -> пересчитываю в АЦП для термопары) По результатам сравнения принимаю решение включать ли нагрев на следующие 100 мСек.
01
case
2:
// работа
02
case
3:
// сон150
03
//--- измерение температуры и включение нагрева интервал 100 мСек
04
if
(millis()-ulTimeGetTemp>TIME_IZM_TEMP)
// контроль периода
05
{ ulTimeGetTemp=millis();
06
//Serial.print(" DAT_POKOIA = "); Serial.print(digitalRead(PIN_DAT_POKOIA));
07
// измеряем ток через шунт
08
//i=analogRead(PIN_TOK); Serial.print(" A4= "); Serial.print(i);
09
// выключаем нагрев и ждем 10 мСек
10
digitalWrite(PIN_VKL_T12, LOW);
11
delay(10);
12
// измеряем температуру
13
iACP_T12=analogRead(PIN_IZM_TEMP);
14
ACPSred5(iACP_T12);
// наскапливаем среднее
15
// проверяем на обрыв термопары и нагревателя
16
if
(iACP_T12>ACP_PEREGRUZKA) { digitalWrite(PIN_VKL_T12, LOW);iErrorKod=31;RegimSet(9);
break
;}
17
// получаем темапературу из значений АЦП
18
iTempTek=TempGradFromAcp(iACP_T12);
19
if
(iPrintSerial!=0) {
Serial
.print(
" A0= "
);
Serial
.print(iACP_T12); }
// какая темп задана
20
iTempZadGr=TempZadGrGet(10);
// получаем значение заданой температуры с резистора с округлением до десятков
21
if
(iTekRegim==2&&iTempZadGr<TEMPER_REG_MIN) {RegimSet(7);
break
;}
// 7 сон по резистору установки темп
22
// темп паузы (полусна) при разной заданой температуре
23
if
(iTekRegim==3)
24
{
if
(iTempZadGr<300) iTempZadGr=iTempPauzaDo300;
25
else
iTempZadGr=iTempPauzaBolee300;
26
}
27
// получаем значение АЦП из заданой темературы
28
iACP_Zad=ACPZadFromTemp(iTempZadGr);
29
if
(iPrintSerial!=0)
30
{
Serial
.print(
" A2= "
);
Serial
.print(iACP_Zad);
Serial
.print(
" RAZ= "
);
Serial
.print(iACP_T12-iACP_Zad);
31
Serial
.print(
" tek temp = "
);
Serial
.print(iTempTek);
32
}
33
// сравнение температур
34
if
(iACP_T12<iACP_Zad)
// надо нагревать
35
{
36
if
(iACP_T12<iACP_Zad-15)
37
{
if
(iPowerPoln==100) iT12_PWM=100;
// если установлена полная мощность
38
else
iT12_PWM=iPowerPoln;
39
}
40
else
41
{
if
(iACP_T12<iACP_Zad-5)
42
{
if
(iPowerPoln>=70) iT12_PWM=70;
43
else
iT12_PWM=iPowerPoln;
44
}
45
else
iT12_PWM=35;
46
}
47
if
(iPrintSerial!=0) {
Serial
.print(
" iT12_PWM = "
);
Serial
.print(iT12_PWM); }
48
// включение нагрева в процентах
49
if
(iT12_PWM==100) digitalWrite(PIN_VKL_T12, HIGH);
50
else
51
{ i=255*iT12_PWM/100;
52
analogWrite(PIN_VKL_T12,i);
53
}
54
}
55
56
}
57
//--- отображение информации
58
if
(millis()-ulTimePokazInfo>TIME_POKAZ_INFO)
59
{ ulTimePokazInfo=millis();
60
led8.clearDisplay(0);
// очистить дисплей
61
// надпись РАБ/СОН в левой части
62
if
(iTekRegim==2) PrintText(KOD_TEXT_RAB,1);
63
if
(iTekRegim==3) PrintText(KOD_TEXT_SON,1);
64
65
LED8Print4Poz(iTempZadGr,0,0,0);
// заданая темпеература
66
// текущая темп
67
// iTempTek=TempGradFromAcp(iACP_T12);
68
// if(iTekRegim==3) {led8.setRow(0,7,0x01); led8.setRow(0,6,0x01); led8.setRow(0,5,0x01); led8.setRow(0,4,0x01);}
69
// if(iTekRegim==2) LED8Print4Poz(iTempTek,0,4,0);
70
// текущая темп выше или ниже установленой в правом индикаторе
71
if
(iACP_T12<iACP_Zad-10)
// ниже заданой на 15 гр
72
{ led8.setRow(0,3,B00011100);
73
}
74
if
(iACP_T12>iACP_Zad+10)
// выше заданой на 15 гр
75
{ led8.setRow(0,3,B01100010);
76
}
77
//Serial.print("T ZAD= "); Serial.print(iTempZadGr); Serial.print(" T TEK= "); Serial.print(iTempTek); Serial.println("");
78
}
79
break
;
Ни схемы, ни прошивки, ни исходников - это как понимать?
В первом сообщении ссылка Оригинальная версия опубликована тут - https://www.instructables.com/id/The-Hakko-T12/ - битая.
ТС умер?
https://drive.google.com/file/d/1qfwJWDeVZYq_2_95aE6dTEDWamlLVUMu/view?u...
Живой. Код на https://github.com/sfrwmaker/hakko_t12
Друзья!
Проект получил интересное дальнейшее развитие.Буквально недавно автор опубликовал новую статью с более совершенным устройством.
Станция стала профессиональной. Добавился графический дисплей. Предусмотрены различные настройки в многоуровневом меню. Помимо паяльника на жалах Т-12, в контроллере теперь предусмотрено управление паяльным феном. К сожалению мощностей Ардуино под такие задачи не достаточно, поэтому автор воспользовался МК серии STM32.
Надеюсь русскоязычная версия появится и на страницах этого форума.
А пока можно воспользоваться автопереводчиком.