Агуулгын хүснэгт:

XinaBox ба Thermistor ашиглан температурын хэмжилт: 8 алхам
XinaBox ба Thermistor ашиглан температурын хэмжилт: 8 алхам

Видео: XinaBox ба Thermistor ашиглан температурын хэмжилт: 8 алхам

Видео: XinaBox ба Thermistor ашиглан температурын хэмжилт: 8 алхам
Видео: Пример использования Слишком низкая температура батареи Батарея слишком горячая 2024, Долдугаар сарын
Anonim
XinaBox ба Thermistor ашиглан температурыг хэмжих
XinaBox ба Thermistor ашиглан температурыг хэмжих

XinaBox -ийн xChip аналог оролт ба термистор датчик ашиглан шингэний температурыг хэмжинэ.

Алхам 1: Энэхүү төсөлд ашигласан зүйлс

Тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүд

  • XinaBox SX02 x 1 xChip аналог оролтын мэдрэгч нь ADC -тэй
  • ATmega328P дээр суурилсан Arduino Uno -ийн XinaBox CC01 x 1 xChip хувилбар
  • Хүчдэл хуваагч сүлжээнд зориулсан резистор 10к ом x 1 10к эсэргүүцэл
  • Thermistor Probe x 1 10k 25 ° C температурт NTC ус нэвтэрдэггүй термистор датчик
  • XinaBox IP01 x 1 xChip USB програмист, FTDI Limited -ээс FT232R дээр суурилсан.
  • XinaBox OD01 x 1 xChip 128x64 пиксел OLED дэлгэц
  • XinaBox XC10 x 4 xChip автобусны холбогч
  • XinaBox PU01 x 1 xChip USB (А хэлбэрийн) цахилгаан хангамж
  • 5V USB тэжээлийн хангамж x 1 Цахилгаан банк эсвэл үүнтэй төстэй

Програм хангамж, онлайн үйлчилгээ

Arduino IDE

Гар багаж хэрэгсэл, үйлдвэрлэх машин

Хавтгай халив шураг хавчаарын хавчаарыг чангалах буюу суллах зориулалттай

Алхам 2: Түүх

Танилцуулга

Би энгийн термометр ашиглан шингэний температурыг хэмжихийг хүссэн. XinaBox xChips -ийг ашигласнаар би үүнийг харьцангуй энгийн байдлаар хийж чадна. Би температурын үр дүнг харахын тулд 0 - 3.3V хүлээн авдаг SX02 аналог оролт xChip, ATmega328P дээр суурилсан CC01 xChip болон OD01 OLED дэлгэц xChip -ийг ашигласан.

Шилэн усны температурыг хэмжих термистор

Алхам 3: Шаардлагатай файлуудыг татаж авах

Танд дараах номын сан, програм хангамж хэрэгтэй болно.

  • xSX0X- Аналог оролтын мэдрэгчийн номын сан
  • xOD01 - OLED дэлгэцийн номын сан
  • Arduino IDE - Хөгжлийн орчин

Номын санг хэрхэн суулгах талаар энд дарж үзнэ үү.

Arduino IDE -ийг суулгасны дараа үүнийг нээгээд програмаа байршуулах самбар болгон "Arduino Pro эсвэл Pro Mini" -ийг сонгоно уу. Мөн ATmega328P (5V, 16MHz) процессор сонгогдсон эсэхийг шалгаарай. Доорх зургийг үзнэ үү.

Arduino Pro эсвэл Pro Mini самбар болон ATmega328P (5V, 16MHz) процессорыг сонгоно уу

Алхам 4: угсрах

Доор үзүүлсэн шиг XC10 автобусны холбогчийг ашиглан xChip, IP01, ATmega328P дээр суурилсан CC01 xChip програмист дээр дарна уу. CC01 -д байршуулахын тулд та унтраалгуудыг 'A' ба 'DCE' байрлалд байрлуулах шаардлагатай болно.

IP01 ба CC01 хамт дарсан

Дараа нь 10 кОм эсэргүүцэл авч, нэг үзүүрийг "IN" гэж тэмдэглэсэн терминал руу, нөгөө үзүүрийг SX02 дээрх "GND" газардуулгын терминал руу шургуулна. Термисторын датчик дээрх утсыг аваад нэг үзүүрийг Vcc, "3.3V", нөгөө үзүүрийг "IN" терминал руу шургуул. Доорх графикийг үзнэ үү.

SX02 холболт

Одоо OD01 ба SX02 -ийг CC01 -тэй хослуулаад XC10 автобусны холболтыг ашиглана уу. Доороос үзнэ үү. Зураг дээрх мөнгөн элемент бол термистор датчик юм.

Програмчлалын иж бүрэн нэгж

Алхам 5: Хөтөлбөр

Төхөөрөмжийг компьютер дээрх USB порт руу оруулна уу. Доорх кодыг татаж аваад хуулж аваад Arduino IDE дээрээ оруулна уу. Кодыг эмхэтгэн самбар дээрээ байршуулна уу. Байршуулсны дараа таны програм ажиллаж эхлэх ёстой. Хэрэв та датчикийг өрөөний температурын нөхцөлд байгаа бол доор үзүүлсэн шиг OLED дэлгэц дээр ± 25 ° C хэмийг ажиглах хэрэгтэй.

Байршуулсны дараа OLED дэлгэц дээрх өрөөний температурыг ажиглаарай

Алхам 6: Зөөврийн термометр

Төхөөрөмжийг компьютерээсээ салга. Төхөөрөмжийг задалж, IP01 -ийн оронд PU01 ашиглан дахин угсарна уу. Цахилгаан банк эсвэл үүнтэй төстэй 5V USB зөөврийн тэжээлийн эх үүсвэрээ аваад шинэ угсралтыг оруулна уу. Та одоо сайн нарийвчлалтай өөрийн сэрүүн зөөврийн термометртэй боллоо. Үүнийг ажиллуулахын тулд хавтасны зургийг үзнэ үү. Би шилэн аяганд халуун ус хэмжиж үзсэн. Доорх зургууд нь таны бүрэн нэгжийг харуулж байна.

CC01, OD01, SX02, PU02 -ээс бүрдсэн иж бүрэн нэгж.

Алхам 7: Дүгнэлт

Энэ төслийг угсрахад 10 минутаас бага хугацаа зарцуулж, програмчлахад 20 минут зарцуулсан. Шаардлагатай цорын ганц идэвхгүй бүрэлдэхүүн хэсэг бол резистор юм. XChips зүгээр л хамт дарахад маш тохиромжтой.

Алхам 8: Код

ThermTemp_Display.ino Arduino Код дээрх тооцооллыг ойлгохын тулд термисторыг судлаарай.

#include // xCHIP -ийн үндсэн номын санг оруулах

#оруулах // аналог оролтын мэдрэгчийн номын санг оруулах #оруулах // OLED дэлгэцийн санг оруулах #оруулах // математикийн функцуудыг оруулах #C_Kelvin 273.15 // келвинээс цельсийн хооронд хөрвүүлэх зорилгоор тодорхойлно B 3950 // термисторын B параметр #өрөөний температурыг тодорхойлох 298.15 // өрөөний температурыг келвинээр тодорхойлох #өрөөний температурыг тодорхойлох 10000 // өрөөний температур дахь ом дахь эсэргүүцэл #define vcc 3.3 // тэжээлийн хүчдэл xSX01 SX01 (0x55); // i2c хаягийн хөвөх хүчдэлийг тохируулах; // хэмжсэн хүчдэлийг агуулсан хувьсагч (0 - 3.3V) float therm_res; // термисторын эсэргүүцэл хөвөх act_tempK; // бодит температур kelvin float act_tempC; // celsius дахь бодит температур void setup () {// нэг удаа ажиллуулахын тулд тохиргооны кодоо энд оруулна уу: // хувьсагчдыг 0 хүчдэл = 0 болгож эхлүүлнэ; therm_res = 0; act_tempK = 0; act_tempC = 0; // цуваа холболтыг эхлүүлэх Serial.begin (115200); // i2c харилцаа холбоог эхлүүлэх Wire.begin (); // аналог оролтын мэдрэгчийг эхлүүлэх SX01.begin (); // эхлэх OLED дэлгэц OLED.begin (); // тодорхой дэлгэц OD01.clear (); // хойшлуулалтыг хэвийн болгохын тулд хойшлуулах (1000); } void loop () {// давтан ажиллуулахын тулд үндсэн кодоо энд оруулна уу: // SX01.poll () хүчдэлийг уншина уу; // volatge хүчдэлийг хадгалах = SX01.getVoltage (); // термисторын эсэргүүцлийг тооцоолох therm_res = ((vcc * series_res) / хүчдэл) - series_res; // бодит температурыг kelvin act_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)) тооцоолох; // келвиныг цельсийн хэмд хөрвүүлэх act_tempC = act_tempK - C_Kelvin; // OLED дэлгэц дээр хэвлэх температур // гарын форматаар OD01.set2X төвд харуулах (); OD01.println (""); OD01.println (""); OD01. хэвлэх (""); OD01.хэвлэх (act_tempC); OD01.хэвлэх ("C"); OD01.println (""); саатал (2000); // дэлгэцийг 2 секунд тутамд шинэчлэх}

Зөвлөмж болгож буй: