Измерение температуры с помощью термопары, на примере MAX6675 для STM32.
В последнее время появилась необходимость в печке для пайки оплавлением. Для тех кто не знает, что это такое, в двух словах опишу, как она работает и для чего она нужна. Есть у меня десяток плат, которые надо собрать, элементы на плате в основном smd. Сейчас платы собираются по следующему алгоритму: сначала с помощью шприца наношу на контактные площадки паяльную пасту, затем раскладываю элементы. Далее паяльную пасту надо нагреть, чтобы шарики из которых она состоит слиплись между собой и с тонким слоем олова, которым залужены контактные площадки. Ничего хитрого, но нагрев с помощью фена требует времени и внимания, а хотелось, чтобы этот процесс проходил без моего участия. Для этих целей как раз-то и используют специальные печки, информация по которым можно найти, забив в гугле "reflow soldering".
Только что посмотрел на али самая дешевая печка стоит 400$ и ещё 160$ доставка. Немало, а если еще учесть растаможку порядка 25% получается около 700$, а это уже многовато. В общем, попробую сделать такую сам из печи для бутербродов.
Первое, что надо научиться — это измерять температуру.
Из графика выше видно, что максимальная температура в процессе оплавления может достигать 260 градусов, то есть для этих целей нам не подойдет популярный ds18b20, но точно подойдет термопара.
Термопара, показанная на рисунке 1, состоит из двух проводников разнородных металлов, соединённых вместе на одном конце, называемом измерительным («горячим») спаем. Другой конец, где проводники не соединены, подключен к дорожкам схемы обработки сигнала, обычно сделанным из меди. Это переход между металлами термопары и медными дорожками называется эталонным («холодным») спаем.
То есть получается при измерении температуры с помощью термопары мы получаем термо-ЭДС, состоящую из суммы термо-ЭДС горячего и холодного спая. (на самом деле разность так, как их потенциалы будут с разным знаком)
Один из вопросов, который может возникнуть, почему в месте соединения проводников термопары с медными дорожкам два соединения, а мы считаем их за один спай?
Для ответа на этот вопрос необходимо вспомнить закон промежуточных проводников:
То есть, по сути, можно считать, что удлинительных проводов нет!!! а точки подключения к ним соединены вместе и образуют между собой холодный спай!!!!.
Думаю, уже стало понятно, что при измерении температуры с помощью термопары необходимо учитывать влияние холодного спая и сделать это можно двумя способами.
После того как получено значение термо-ЭДС, измеренное с помощь термопары и состоящее по сути из суммы термо-ЭДС горячего и холодного спая, можно вычислить суммарную температуру двух спаев. Далее с помощью датчика, измеряющего абсолютную температуру, например ds18b20, измерить температуру холодного спая и вычесть её из суммарной температуры двух спаев. Этот процесс известен как компенсация эталонного спая (компенсация холодного спая).
Но ту же компенсацию холодного спая можно сделать проще: из суммарного значения термо-ЭДС вычесть термо-ЭДС холодного спая, затем вычислить температуру.
Вопрос в том как получить термо-ЭДС холодного спая?
Сделать это можно с помощью маломощного кремниевого диода, у которого падение напряжения на p-n переходе зависит от абсолютной температуры и составляет порядка 2мВ/градус. Далее, усилив падение напряжения на диоде в нужное количество раз(в зависимости от типа термопары) получим термо-ЭДС холодного спая. Вычитаем её из суммарного ЭДС, получив, таким образом, термо-ЭДС горячего спая, а затем его температуру.
С теорией закончили, перейдём к практике. Для этих целей был приобретен шилд в основе которого лежит MAX6675, с внутренней компенсацией холодного спая для термопары К-типа и SPI интерфейсом.
На выходе имеем 12 бит с разрешением 0.25 градуса, то есть с возможностью измерять температуру от 0 до 1024 градуса.
Процедура считывания очень проста, после того как ножка CS прижата к земле можно подавать тактовый сигнал и по спадающему фронту считывать температуру, проще некуда.
Формат посылки выглядит следующим образом.
Тут тоже всё просто, с 3 по 14 бит значение температуры. Если второй бит равен нулю, то термопара подключена, иначе отключена. Первый бит мне непонятно зачем нужен.
Как обещал код для stm32f103vet6.
Для того чтобы как на скрине выше в отдельном окошке выводилась температура, необходимо включить отладку по SWD, задействовав вывод SWO. Как это сделать можно почитать тут.
Шилд был куплен тут.
Только что посмотрел на али самая дешевая печка стоит 400$ и ещё 160$ доставка. Немало, а если еще учесть растаможку порядка 25% получается около 700$, а это уже многовато. В общем, попробую сделать такую сам из печи для бутербродов.
Первое, что надо научиться — это измерять температуру.
Из графика выше видно, что максимальная температура в процессе оплавления может достигать 260 градусов, то есть для этих целей нам не подойдет популярный ds18b20, но точно подойдет термопара.
Термопара, показанная на рисунке 1, состоит из двух проводников разнородных металлов, соединённых вместе на одном конце, называемом измерительным («горячим») спаем. Другой конец, где проводники не соединены, подключен к дорожкам схемы обработки сигнала, обычно сделанным из меди. Это переход между металлами термопары и медными дорожками называется эталонным («холодным») спаем.
То есть получается при измерении температуры с помощью термопары мы получаем термо-ЭДС, состоящую из суммы термо-ЭДС горячего и холодного спая. (на самом деле разность так, как их потенциалы будут с разным знаком)
Один из вопросов, который может возникнуть, почему в месте соединения проводников термопары с медными дорожкам два соединения, а мы считаем их за один спай?
Для ответа на этот вопрос необходимо вспомнить закон промежуточных проводников:
Проводник из любого металла, последовательно включенный в термопарную цепь и находящийся под одной температурой, не оказывает влияния на измеряемую термо-ЭДС. Этот закон позволяет удлинять провода от термопары однородным металлом методом пайки.
То есть, по сути, можно считать, что удлинительных проводов нет!!! а точки подключения к ним соединены вместе и образуют между собой холодный спай!!!!.
Думаю, уже стало понятно, что при измерении температуры с помощью термопары необходимо учитывать влияние холодного спая и сделать это можно двумя способами.
После того как получено значение термо-ЭДС, измеренное с помощь термопары и состоящее по сути из суммы термо-ЭДС горячего и холодного спая, можно вычислить суммарную температуру двух спаев. Далее с помощью датчика, измеряющего абсолютную температуру, например ds18b20, измерить температуру холодного спая и вычесть её из суммарной температуры двух спаев. Этот процесс известен как компенсация эталонного спая (компенсация холодного спая).
Но ту же компенсацию холодного спая можно сделать проще: из суммарного значения термо-ЭДС вычесть термо-ЭДС холодного спая, затем вычислить температуру.
Вопрос в том как получить термо-ЭДС холодного спая?
Сделать это можно с помощью маломощного кремниевого диода, у которого падение напряжения на p-n переходе зависит от абсолютной температуры и составляет порядка 2мВ/градус. Далее, усилив падение напряжения на диоде в нужное количество раз(в зависимости от типа термопары) получим термо-ЭДС холодного спая. Вычитаем её из суммарного ЭДС, получив, таким образом, термо-ЭДС горячего спая, а затем его температуру.
С теорией закончили, перейдём к практике. Для этих целей был приобретен шилд в основе которого лежит MAX6675, с внутренней компенсацией холодного спая для термопары К-типа и SPI интерфейсом.
На выходе имеем 12 бит с разрешением 0.25 градуса, то есть с возможностью измерять температуру от 0 до 1024 градуса.
Процедура считывания очень проста, после того как ножка CS прижата к земле можно подавать тактовый сигнал и по спадающему фронту считывать температуру, проще некуда.
Формат посылки выглядит следующим образом.
Тут тоже всё просто, с 3 по 14 бит значение температуры. Если второй бит равен нулю, то термопара подключена, иначе отключена. Первый бит мне непонятно зачем нужен.
Как обещал код для stm32f103vet6.
Для того чтобы как на скрине выше в отдельном окошке выводилась температура, необходимо включить отладку по SWD, задействовав вывод SWO. Как это сделать можно почитать тут.
Шилд был куплен тут.
Похожие статьи