ВНИМАНИЕ! На форуме начался конкурс - астрофотография месяца ИЮЛЬ!
0 Пользователей и 1 Гость просматривают эту тему.
Есть мысль - что термокомпенсацию вообще надо разрешать делать в промежутке между кадрами. По внешней команде, тогда мы точно не запорем ни одного кадра.
Цитата: Ivan7enych от 13 Дек 2007 [00:28:15]Есть мысль - что термокомпенсацию вообще надо разрешать делать в промежутке между кадрами. По внешней команде, тогда мы точно не запорем ни одного кадра.Вань, есть мысль, подарить тебе крейфорд. Завтра узнаю, есть ли они в Москве.
Потом, 1 пиксель = примерно 6 микрон, крейфорд выдерживает такую точность при проезде вперед и возвращении в ту же точку?
Цитата: lazyBSD от 13 Дек 2007 [00:30:40]Цитата: Ivan7enych от 13 Дек 2007 [00:28:15]Есть мысль - что термокомпенсацию вообще надо разрешать делать в промежутке между кадрами. По внешней команде, тогда мы точно не запорем ни одного кадра.Вань, есть мысль, подарить тебе крейфорд. Завтра узнаю, есть ли они в Москве.Придется пополам с Александром его распилить. А то нечестно будет - без его основы, я свою работу никогда-бы не сделал.Потом, 1 пиксель = примерно 6 микрон, крейфорд выдерживает такую точность при проезде вперед и возвращении в ту же точку?
Об алгоритме термокомпенсации - при написании микропрограммы рассматривалось несколько алгоритмов. Существующий был выбран за то, что он не дает накопления ошибки при расчете следующего положения фокусера, промоделируй свою ситуацию с учетом этого. При моем методе термокомпенсации нельзя просто менять положение фокусера командой извне, надо менять базовую температуру другой командой, т.е. менять ту температуру во флаш, при которой осуществлялся переход в режим автомат.
Плата. На конфе это шаблон или условный рисунок? Надо учитывать, то, что принтер, утюг и термопара тестера это не цех по производству печатных плат, т.е. проводники и контактные площадки должны быть максимально большими, а вот зазоры как раз могут быть маленькими. У меня так – площадки микросхем 60х80 мил, проводники 20 мил, зазоры 10 мил – как раз один проводник между ножками микросхем, контакные площадки под детали не менее 70х70 мил.
О термодатчике. Намудрили там не мало, помню отладка шла долго, особенное отношение было к участку 0-(-1) градус. Метод отладки был простой датчик в холодильник и наблюдение за температурой.
Больше температур наверно не вывести
Добавил автоматическое создание файла для прошивки eeprom (.eep) при компиляции.
Что-то я подумал-подумал, и прикупил в чип-дипе недорогой экранчик размером 20x2 (WH2002A-YYH-CT).
Поизучал, что выдают нам термометры DS1621. Результаты оказались не очень - изредка вылетает ошибка на 1-2 градуса, а при заметном изменении температуры число начинает скакать (см. график в углу)...В результате внутри прошивки я сделал осреднение. На графиках виден результат после осреднения и до. Величина осреднения - редактируется в настройках.
либо заниматься изучением временной диаграммы шины I2C, точнее ее микропрограммной реализации
Температура скакать не должна
По наблюдениям, но не по описанию, могу сказать, что после большого температурного удара датчик в тот момент времени, когда температурный градиент становиться близким к нулю датчик начинает мерить температуру по следующему алгоритму – от некоторой точки он начинает делать большие скачки в измерениях, постепенно уменьшая их. Например – пусть датчик остыл до температуры –10 градусов в морозильнике и именно такая температура там и есть. В этом случае мы увидим несколько измерений примерно таких -10.5, -9.5 ; -10.4, -9.6; -10.3, -9.7 ….. –10 . В реальных условиях такого не наблюдается, температура плывет себе потихоньку на 0.06 градуса на шаг, вот в пределах это величины могут наблюдаться колебания в показаниях.
void pause1(void) { static unsigned char p; for (p=30; p > 0; p--); // было 100, можно и 10 return; }
Еще одно место странное в функции readTemperature: temperature_start_ds1631(termometer); // delay_0dot1sec(1); int tempr = temperature_read(termometer);
Значение задержки находиться в диапазоне от 0.5 до 1 сек. Причем для DS1631 она больше чем для DS1621, поскольку надо сформировать большее значение битов, поэтому значение задержки надо брать именно для DS1631.