Кодты іздеу

MAX6675 K-типіндегі термопара датчигін Arduino-мен қалай пайдалану керек

MAX6675 K-типіндегі термопара датчигін Arduino-мен қалай пайдалану керек

Кіріспе

Температураны дәл өлшеу - көптеген электроника жобаларындағы негізгі талап, PCB дәнекерлеуге арналған рефлоу пешін жасаудан бастап 3D принтердің ыстық ұшын немесе BBQ ыстаушысының температурасын бақылауға дейін. Стандартты термисторлар мен DS18B20 сияқты цифрлық сенсорлар қалыпты температураларда жақсы жұмыс істегенімен, олар шынымен ыстық болған кезде сәтсіздікке ұшырайды. Дәл осы жерде K-типті термопара ойнайды. Бұл өте жоғары температураны өлшеуге қабілетті берік, арзан сенсор, бірақ оның кішкентай кернеу сигналын оқылатын цифрлық мәнге айналдыру үшін арнайы интерфейс чипі қажет.

Бұл нұсқаулық MAX6675 breakout тақтасын K-типті термопара сенсорымен және Arduino-мен қалай пайдалану керектігін көрсетеді, температураны Цельсий мен Фаренгейтте сериялық мониторда оқу және көрсету үшін (бейнеде 00:00). MAX6675 модулі күрделі сигналды кондициялауды және суық түйіспе компенсациясын өзіңізге қалдырады, SPI протоколы арқылы таза цифрлық деректерді шығарады. Бұл қондырғы жоғары температураны сезінуді қажет ететін жобалар үшін өте қолайлы, мысалы:

  • 3D принтердің ыстық ұшының немесе қыздырылған төсегінің температурасын бақылау.
  • BBQ грилі немесе ас үй пеші үшін цифрлық термометр жасау.
  • DIY рефлоу пеші немесе дәнекерлеу станциясы үшін температура контроллерін жасау.
  • Автомобиль немесе робототехника жобаларында шығарынды газ температурасын өлшеу.

Аппараттық құрамдас бөліктер

Осы оқулықты орындау үшін сізге келесі құрамдас бөліктер қажет болады. Сым қосылымы қарапайым, ал код Arduino тақтасының барлық нұсқаларымен үйлесімді (бейнеде 00:47).

  • Arduino тақтасы (Uno, Mega, Nano, т.б.)
  • MAX6675 модулі (breakout тақтасы)
  • K-типті термопара сенсоры (кез келген зонд стилі)
  • Ажыратқыш сымдар

MAX6675 модулінің өзі өте кішкентай. Бейнеде көрсетілгендей, оның өлшемдері ұзындығы 32,1 мм, ені 15,6 мм және тереңдігі 16,3 мм (бейнеде 02:35). Модульде термопараны қосуға арналған шағын терминал блогы және қуат пен SPI байланысы үшін істіктер қатары бар. K-типті термопара модульге дұрыс полярлықпен қосылады; қызыл (оң) сым '+' терминалына, ал сары (теріс) сым '-' терминалына барады (бейнеде 01:27).

Техникалық сипаттамалар

Сым қосылымына кіріспес бұрын, MAX6675 чипінің мүмкіндіктерін түсіну пайдалы. Maxim Integrated компаниясының деректер парағына сәйкес, модуль температураның кең диапазонын өлшей алады, бұл оны өнеркәсіптік және әуесқой қолданбаларға жарамды етеді (бейнеде 01:44).

  • Өлшеу диапазоны: 0°C - +1024°C
  • Ажыратымдылық: 12-бит (0,25°C)
  • Байланыс: SPI (Serial Peripheral Interface)
  • Жұмыс кернеуі: 3,0 В - 5,5 В

Сым қосылымы бойынша нұсқаулық

MAX6675 үшін сым қосылымы қарапайым, тек қуат қосылымын және SPI байланысы үшін үш цифрлық істікті қажет етеді. Бұл мысалда біз деректер желілері үшін Arduino істіктерін 4, 5 және 6 қолданамыз (бейнеде 03:28). Қосылымдар келесідей:

  • VCC (Қызғылт сары сым): Arduino-ның 5V істігіне қосылады (бейнеде 02:56).
  • GND (Сары сым): Arduino-ның GND істігіне қосылады (бейнеде 02:51).
  • SO - Serial Out (Жасыл сым): Arduino цифрлық істігіне 4 қосылады (бейнеде 03:01).
  • CS - Chip Select (Сұр сым): Arduino цифрлық істігіне 5 қосылады (бейнеде 03:08).
  • SCK - Serial Clock (Ақ сым): Arduino цифрлық істігіне 6 қосылады (бейнеде 03:14).

Кодты түсіндіру

Осы оқулықта берілген код қарапайым және өзгертуге оңай болу үшін жасалған. Ол max6675.h деп аталатын кітапханаға сүйенеді, оны алдымен орнату қажет. Кітапхананы ZIP файлы ретінде жүктеп алып, Arduino IDE-ге Sketch -> Include Library -> Add .ZIP Library арқылы қосуға болады. Орнатқаннан кейін кітапхана танылуы үшін Arduino IDE-ді жауып, қайта ашу керек (бейнеде 04:14).

Кітапхана орнатылғаннан кейін, берілген кодты өз эскизіңізге көшіруге болады. Бірінші қадам - кітапхана файлын қосу, бұл Arduino-ға MAX6675 чипімен байланысу үшін қажетті функцияларға қол жеткізуді береді (бейнеде 03:55). Әрі қарай, модуль қосылған істіктерді анықтайсыз. Бұл Arduino-да әртүрлі істіктерді қолдануды шешсеңіз, өзгерту қажет жалғыз код жолдары (бейнеде 04:52).


int soPin = 4;// SO=Serial Out
int csPin = 5;// CS = chip select CS pin
int sckPin = 6;// SCK = Serial Clock pin

Істіктерді анықтағаннан кейін, MAX6675 класының данасын жасаймыз. Бұл жолдағы аргументтердің реті өте маңызды; олар sckPin, csPin және soPin ретімен болуы керек. Оларды ауыстыру сенсордың дұрыс жұмыс істеуіне кедергі келтіреді (бейнеде 05:21).


MAX6675 robojax(sckPin, csPin, soPin);// create instance object of MAX6675

setup() функциясында біз сериялық мониторды 9600 бод жылдамдығымен іске қосамыз, осылайша температура көрсеткіштерін компьютерімізде көре аламыз (бейнеде 05:41). Негізгі логика loop() функциясында орналасқан. Мұнда біз robojax объектісінің readCelsius() және readFahrenheit() әдістерін шақырып, температураны алып, оны сериялық мониторға басып шығарамыз. Циклдің соңында жаңарту жылдамдығын орнату үшін 1000 миллисекунд (1 секунд) кідіріс қосылады (бейнеде 05:54). Жылдамырақ жаңарту қажет болса, бұл кідірісті 100 миллисекундқа немесе одан да азға азайтуға болады (бейнеде 08:44).


Serial.print("C = "); 
Serial.print(robojax.readCelsius());
Serial.print(" F = ");
Serial.println(robojax.readFahrenheit());
delay(1000);

Бұл код қарапайым оқу сынағы болып табылады. Оны температура шектеріне негізделген әрекеттерді іске қосу үшін оңай кеңейтуге болады. Мысалы, температура белгілі бір мәннен асып кеткенін тексеру үшін if операторын қолданып, жүйені салқындату үшін желдеткішті қосуға немесе температура тым төмендесе, жылытқышты қосуға болады (бейнеде 06:42).

Тірі жоба демонстрациясы

Сенсордың мүмкіндіктерін көрсету үшін бейнеде термопара жылу пистолетімен қыздырылады. Жылу берілген сайын сериялық монитордағы температура көрсеткіші тез артады. Демонстрация температураның 125 градус Цельсийден асқанын көрсетеді, қасында сәйкес Фаренгейт мәні де көрсетіледі (бейнеде 08:25). Жылу пистолеті алынғаннан кейін температураның біртіндеп салқындағанын көруге болады, бұл сенсордың дәлдігі мен жауап беру қабілетін растайды. Бұл нақты уақыттағы кері байланыс MAX6675 модулін дәл, жоғары температураны бақылауды қажет ететін кез келген жоба үшін тамаша таңдау етеді.

Бейне бөлімдері

  • [00:00] Кіріспе және жобаға шолу
  • [01:15] Аппараттық құрал түсіндірілді
  • [02:41] Сымдар түсіндірілді
  • [03:28] Код түсіндірілді
  • [07:26] Температураны өлшеу демонстрациясы

Суреттер

MAX6675 Thermocoupler module
MAX6675 Thermocoupler module
K-Type Thermocoupler module with wire
K-Type Thermocoupler module with wire
K-Type thermocoupler connector
K-Type thermocoupler connector
Arduino wiring for MAX6675 Thermocoupler module
Arduino wiring for MAX6675 Thermocoupler module
MAX6675 Thermocoupler module
MAX6675 Thermocoupler module
171-How to use a MAX6675 thermocouple K-type sensor with Arduino
Тіл: C++
// Original library source:
// www.ladyada.net/learn/sensors/thermocouple
 /*
 * Arduino code to read temperature using MAX6675 chip and K-type thermocouple
 * and display it on the serial monitor
 * 
 * Watch video instructions for this code: https://youtu.be/VGqONmUinqA
 * Download this code from Robojax.com
 *  
 * Updated by Ahmad Shamshiri for Robojax.com on Saturday, November 23, 2018 
 * at 21:25 in Ajax, Ontario, Canada
 * 
 
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 * This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

 
#include "max6675.h" // max6675.h file is part of the library that you should download from Robojax.com

int soPin = 4;// SO=Serial Out
int csPin = 5;// CS = chip select CS pin
int sckPin = 6;// SCK = Serial Clock pin

MAX6675 robojax(sckPin, csPin, soPin);// create instance object of MAX6675


void setup() {

          
  Serial.begin(9600);// initialize serial monitor with 9600 baud
  Serial.println("Robojax MAX6675"); 

}

void loop() {
  // Basic readout test, just print the current temperature
  // Robojax.com MAX6675 temperature reading on serial monitor
   Serial.print("C = "); 
   Serial.print(robojax.readCelsius());
   Serial.print(" F = ");
   Serial.println(robojax.readFahrenheit());

             
   delay(1000);
}

Сізге қажет болуы мүмкін нәрселер

Ресурстар мен сілтемелер

Файлдар📁

Басқа файлдар