Спасибо!
У меня на плате есть место под ТЛ431, я ее впаял(получилось 2,5В), поставил в скетче analogReference (EXTERNAL);, а теперь не могу найти где внести корректировки в измерении температуры, - подскажите, пожалуйста.
И еще, - кварц стоит на 16МГц, я поставил для шим 4, как у Вас. Нужно еще что-то менять в скетче?
Я уже перешел на печатку, начинаю настраиваться, но, как я понимаю, при включении на дисплее я должен увидеть комнатную температуру, а у меня - "000". если прогреваю жало другим паяльником - появляется какая-то температура. Но прежде чем идти дальше нужно разобраться с операционником(у меня МСР6001)и задать ему необходимый коэфициент усиления... А для начала нужно знать что заложено в скетче...
, а я как Вы поняли
. Хелп плз.
Ну и по порядку калибровки, если можно, поподробнее, - что за чем...
Найди в скетче вот этот кусок кода:
/////////////////////////////////////////////////////////////////////////
/// использую медианный фильтр с большим числом измерений /////
/// точность в железе хорошая (на данный момент исп. этот фильтр) /////
/////////////////////////////////////////////////////////////////////////
analogWrite(3,0); // остановить ШИМ перед чтением АЦП
soldt = Filter (); // считать отфильтрованное значение температуры нагревателя
// soldd = map(soldt, 7, 888, 0, 420); // Еще один вариант определения температуры, считывается переменная soldt, ее диапазон 7 - 888,
// переменной soldd присваивается значение в диапазоне 0-420,
// в этом случае надо точно знать значение переменной soldt. Можно узнать только одним способом
// подключать ардуину к компорту и при наладке схемы выводить в порт это значение. Или сначала выводить
// на дисплей значения переменной soldt, записать значения при разных температурах, а после ввести их в программу
// и пршить заново.
// Для повышения точности можно сделать три и более диапазона.
// Этот вариант хорош тем, что можно сделать большой коэффициент усиления усилителя термопары,
// тем самым повысить точность измерения.
// Например:
if (soldt >= 200 && soldt <= 286) // при темпеатуре от 13 градусов до 100 (200 и 286 - это значения на выходе усилителя термопары), температура замеряна градусником
{soldd = map(soldt, cor_ir_1, cor_ir_2, 13, 100);
ASM=1; }
if (soldt >= 287 && soldt <= 500) // при темпеатуре от 101 градусов до 260 (287 и 500 - это значения на выходе усилителя термопары), температура замеряна тестером
{soldd = map(soldt, cor_ir_2+1, cor_ir_3, 101, 260);
ASM=2; }
if (soldt >= 501 && soldt <= 650) // при темпеатуре от 261 градусов до 380 (501 и 650 - это значения на выходе усилителя термопары), температура замеряна градусником
{soldd = map(soldt, cor_ir_3+1, cor_ir_4, 261, 380);
ASM=3;}
if (soldt <= 182) // короткое замыкание или замерз
soldd = 0;
if (soldt >= 670) // перегрев или обрыв
soldd = 888;
закоментируй или состри все , оставь только
analogWrite(3,0); // остановить ШИМ перед чтением АЦП
soldt = Filter (); // считать отфильтрованное значение температуры нагревателя
и допиши
soldd =soldt; //
После этих манипуляций увидишь реальные значения АЦП, которые нужно будет подогнать под показания температуры.
Надо будет измерять реальную температуру и записывать показания АЦП.
Вначале скетча есть такие строки:
int cor_ir_1 = 200; // переменная 1 корректировки жал 1-2-3-4 (хранится в еепром по адр.30,38,46,54)
int cor_ir_2 = 286; // переменная 2 корректировки жал 1-2-3-4 (хранится в еепром по адр.32,40,48,56)
int cor_ir_3 = 500; // переменная 3 корректировки жал 1-2-3-4 (хранится в еепром по адр.34,42,50,58)
int cor_ir_4 = 650; // переменная 4 корректировки жал 1-2-3-4 (хранится в еепром по адр.36,44,52,60)
где:
200 - это значение АЦП при температуре примерно 13 градусов (я выставлял жало за окно осенью)
286 - это значение АЦП при температуре 100 градусов (я погружал жало в кипящую воду)
500 - это значение АЦП при температуре 260 градусов (температуру мерил термопарой от тестера в капле расплавленного припоя)
650 - это значение АЦП при температуре 380 градусов (температуру мерил термопарой от тестера в капле расплавленного припоя)
И еще возможно нужно будет для возможности выставлять уставку более 400 градусов найти строки
else{
if (set<400)
set++; // увеличиваем перем set
и заменить на нужное значение , например 700.
После этих манипуляций вернуть скетч в исходный вид, кроме значения переменных int cor_ir, которые скорее всего будут уже другими (твои измерения)