/////////////////////////////////////////////////////////////////////////
/// использую медианный фильтр с большим числом измерений /////
/// точность в железе хорошая (на данный момент исп. этот фильтр) /////
/////////////////////////////////////////////////////////////////////////
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; //
После этих манипуляций на дисплее вместо реальной температуры будет значение АЦП. Тогда ты поймешь где что править. Посмотришь значение ацп при комнатной температуре. Нагреешь другим паяльником или горелкой и т.д. То есть надо определить минимальное значение АЦП и максимально возможное. Отрицательных значений не должно быть.


