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

Алдаа тэсвэртэй температур мэдрэгчийн сүлжээний хянагч: 8 алхам
Алдаа тэсвэртэй температур мэдрэгчийн сүлжээний хянагч: 8 алхам

Видео: Алдаа тэсвэртэй температур мэдрэгчийн сүлжээний хянагч: 8 алхам

Видео: Алдаа тэсвэртэй температур мэдрэгчийн сүлжээний хянагч: 8 алхам
Видео: BTT GTR v1.0/M5 v1.0 - Basics 2024, Долдугаар сарын
Anonim
Алдаа тэсвэртэй температур мэдрэгчийн сүлжээний хянагч
Алдаа тэсвэртэй температур мэдрэгчийн сүлжээний хянагч

Энэхүү зааварчилгаа нь алдаатай мэдрэгчийг автоматаар тусгаарлах чадвартай DS18B20 температур мэдрэгчийн Arduino Uno самбарыг нэг зориулалттай хянагч болгон хэрхэн хөрвүүлэхийг танд харуулав.

Хянагч нь Arduino Uno ашиглан 8 хүртэлх мэдрэгчийг удирдах боломжтой. (Мөн Arduino Mega -ийн тусламжтайгаар эсвэл програм хангамжийн бага зэрэг өөрчлөлтөөр илүү ихийг хийх боломжтой.)

Алхам 1: Цаана байгаа түүх …

Хэдэн жилийн өмнө би аавынхаа хүлэмжинд DS18B20 температур мэдрэгчийн сүлжээг пи дээр суурилсан халаалтын хянагчдаа зориулж суулгасан. Харамсалтай нь мэдрэгчийн байнгын тасалдалаас болж хянагчийн найдвартай байдал муу байсан. Би хэд хэдэн тохиргоог туршиж үзсэн - шимэгч хорхой, шууд хүч, сүлжээг pi -тэй холбох, түүнчлэн Атмегад суурилсан тусгай самбартай холбох (гол зорилго нь хавхлагын моторыг жолоодох байсан).

Хамгийн аймшигтай нь мэдрэгчийн сүлжээний найдвартай байдал өвлийн шөнө буурч, зуны улиралд бараг ямар ч асуудал гардаггүй байв! Энд ямар муухай юм бэ?

Аль мэдрэгч нь асуудал үүсгэж байгааг судлахын тулд тэдгээрийг нэг нэгээр нь асаах/унтраах эсвэл тэдгээрийн хослолыг идэвхжүүлэх шаардлагатай болсон.

Алхам 2: Энэ нь хэрхэн ажилладаг талаар

DS18B20 (температур мэдрэгч) нь 1 утас бүхий өмчлөлийн протоколыг ашигладаг бөгөөд энэ нь олон мэдрэгчтэй нийтлэг өгөгдлийн холбоосыг хуваалцах боломжийг олгодог. Энэхүү нийтлэг өгөгдлийн холбоос нь Arduino GPIO-ийн нэг зүү болон + 5 В-тэй татах эсэргүүцэлээр холбогдсон байдаг.

Заль мэх нь мэдрэгч бүрийн цахилгаан дамжуулагчийг өөрийн GPIO зүүгээр холбосон бөгөөд ингэснээр тэдгээрийг тусад нь асааж, унтраах боломжтой юм. Жишээлбэл, хэрэв мэдрэгч нь 3 -р зүү болон GND -ийг #2 -р зүү рүү холбосон Vcc хар тугалгатай бол 3 -р зүүг HIGH болгож тохируулах нь мэдрэгчийн хүчийг өгдөг (гайхах зүйлгүй) харин 2 -р зүүг LOW болгож тохируулах нь газар (маш гэнэтийн бэлэг) би). Хоёр тээглүүрийг оролтын горимд тохируулснаар мэдрэгч болон түүний утсыг (бараг) бүрэн тусгаарлах болно. Дотор нь ямар ч алдаа гарсан (жишээ нь, товчлол) бусад зүйлд саад болохгүй.

(Өгөгдлийн утсыг Arduino -тэй ямар нэгэн байдлаар холбогдсон өөр зүйлтэй холбох нь хөндлөнгөөс нөлөөлөх болно гэж хэлэх нь зүйтэй болов уу, гэхдээ энэ нь миний тохиргоонд бараг боломжгүй юм).

DS18B20 нь 1, 5 мА хүртэл зарцуулдаг бол нэг Arduino зүү нь 40 мА хүртэл эх үүсвэр / живэх чадвартай тул GPIO зүүгээр мэдрэгчийг шууд асаахад аюулгүй байдаг.

Алхам 3: Материал ба багаж хэрэгсэл

Материал

  • 1 Arduino UNO зөвлөл
  • 3 эмэгтэй зүү толгой: 1 × 4, 1 × 6 ба 1 × 6 (эсвэл түүнээс дээш - Би тэдгээрийг 1 × 40 толгойноос нэг таслав)
  • цавуу
  • нүцгэн утас (хамгийн багадаа 10 см)
  • тусгаарлагч соронзон хальс
  • гагнуурын материал (утас, урсгал …)

Багаж хэрэгсэл

  • гагнуурын төхөөрөмж (төмөр, эзэмшигч, …)
  • жижиг хайчлах бахө

Алхам 4: Аливаа зүйлийг хамтдаа засаарай

Аливаа зүйлийг хамтдаа засаарай
Аливаа зүйлийг хамтдаа засаарай

Эмэгтэй зүү толгойг Arduino самбарын толгой дээр нааж болно.

  1. "Аналог" зүү толгойны хажууд 1 × 4 толгой, A0-A4 тээглүүртэй хажуу тийш
  2. Эхний дижитал зүү толгойн хажууд 1-7 хэмжээтэй толгой, 2-7 тээглүүртэй хажуу тийш
  3. Хоёрдахь дижитал зүү толгойн хажууд 1 × 6 толгой, 8-13 тээглүүртэй хажуу тийш

Миний толгой арай урт байгааг анзаараарай … энэ нь ямар ч сул тал, давуу талгүй гэж бодож байна.

Алхам 5: Аливаа зүйлийг хамтдаа холбоно уу

Хамт зүйлийг утсаар холбоно уу
Хамт зүйлийг утсаар холбоно уу
Хамт зүйлийг утсаар холбоно уу
Хамт зүйлийг утсаар холбоно уу

1 утастай автобусны шугамыг холбох:

  1. Нүцгэн утсыг гагнах замаар "тоон" талд (2–13 -р зүүтэй зэргэлдээ) наасан толгойн бүх залгуурыг холбоно уу.
  2. Энэ утасны төгсгөлийг SCL зүү хар тугалга руу гагнана (дотооддоо A5 -тай холбогдсон)
  3. Нүцгэн утсыг гагнах замаар "аналог" талд (A0 -A3 зүү) наасан толгойн бүх залгуурыг холбоно уу.
  4. Энэ утасны төгсгөлийг A4 ба A5 залгуурт гагнах (би A5 ба A6 ашигладаг байсан, учир нь надад A6 & A7 самбар байдаг)
  5. Энэ утасны нөгөө үзүүр ба +5 В зүү тугалганы хоорондох 4k7 резисторыг гагнана

Тэмдэглэл:

  • A0 -A5 тээглүүрийг "аналог" гэж тэмдэглэсэн боловч GPIO дижитал тээглүүр болгон ашиглаж болно.
  • "Дижитал" тал дээрх SCL зүү нь "аналог" тал дахь A5 -тай дотооддоо холбогдсон; толгой руу холбогдсон нь 1 утастай автобусны шугамыг бүрдүүлдэг
  • А4 (аналог оролт болгон ашигладаг) нь оношлогооны зорилгоор автобусны хүчдэлийг хэмждэг. Энэ нь шууд автобусанд холбогдсон шалтгаан юм.
  • Би A6 & A7; Эхэндээ би A7-ийг 1 утастай автобусны мастер болгон ашиглахыг хүсч байсан боловч эдгээр хоёр тээглүүрийг дижитал GPIO болгож тохируулах боломжгүй байна.
  • Мэдрэгчийн холбогчийг буруу холбохоос урьдчилан сэргийлэхийн тулд та эрэгтэй холбогч бүрээс ашиглагдаагүй контактыг (ямар ч утсанд холбогдоогүй) орхиж / тасалж, наасан зүү толгой дээрх харгалзах нүхэнд оруулж болно.

Алхам 6: Мэдрэгчийг холбох

Мэдрэгчийг холбох
Мэдрэгчийг холбох

Та дөнгөж 2х2 хэмжээтэй 8 залгууртай массив үүсгэсэн. Та 2 × 2 Dupont холбогчийг мэдрэгч кабельд гагнах, угсрах, эдгээр залгуурт холбох боломжтой. Програм хангамж нь тээглүүрийг GND тээглүүр, сондгой тээглүүр нь Vcc зүү байхаар тохируулдаг. Мэдрэгч бүрийн хувьд Vcc зүү нь зөвхөн GND зүү + 1 юм. 2х2 хэмжээтэй залгуурын нөгөө хоёр тээглүүрийн нэг нь (наасан ба гагнасан толгой дээрх хоёрын нэг нь) мэдрэгчийн өгөгдлийн утсанд зориулагдсан болно. Та алийг нь ашиглах нь хамаагүй.

Алхам 7: Хянагчийн програм хангамж

Хянагчийн програм хангамж
Хянагчийн програм хангамж

SerialThermometer ноорог нь хянагчийг ажиллуулдаг. Та үүнийг github дээрээс олж болно. Arduino IDE ашиглан нээж, байршуулна уу.

Алхам алхамаар:

  1. Arduino IDE -ээ нээж, DallasTemperature номын сан болон түүний бүх хамаарлыг Sketch | ашиглан суулгаарай Номын сан оруулах | Номын санг удирдах.
  2. Гитийн репозиторыг клон хийх. Хэрэв git -ийг мэдэхгүй бол энэ зипийг компьютерынхаа аль ч хэсэгт татаж аваад задлаарай.
  3. Arduino IDE дээрээ SerialThermometer -ийн нүхийг нээнэ үү.
  4. Өөрчлөгдсөн Arduino самбарыг компьютерт USB кабелиар холбоно уу (стандарт арга)
  5. Arduino IDE ашиглан ноорогоо байршуулна уу
  6. Цуваа мониторыг багажаар нээх | Цуваа монитор
  7. Та хэд хэдэн физик хэмжилтийг багтаасан оношлогооны гаралтыг харах ёстой бөгөөд дараа нь температурын уншилт - мэдрэгч сокет бүрийг нэг шугам дээр байрлуулах ёстой. Хэрэв мэдрэгчийн тоо тус тусад нь асаахад, бүгд хамт асаахад өөр өөр байвал оношлогоо нь шийдэгдэх хүртэл үргэлжилнэ. Гэхдээ санаа зоволтгүй, оношлогоо нь температурыг хэмжих боломжийг олгодог.

Оношилгооны гаралтын талаар илүү дэлгэрэнгүйг тайлбартай зургаас үзнэ үү.

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

Мэдрэгч бүрт 10 м орчим LIYY 314 (3 × 0, 14 мм²) кабель суурилуулсан миний урт утас өндөр багтаамжаас болж миний мэдрэгчийн сүлжээний доголдол гарсан гэсэн хүчтэй мэдрэмж надад төрж байна. Миний туршилтууд нь 1 утастай автобус ба газардуулгын хооронд 0.01 μF орчим буюу түүнээс дээш багтаамж байгаа тохиолдолд харилцаа холбоо тасардаг болохыг би харлаа, учир нь 4k7 татах эсэргүүцэл нь автобусыг + 5 В хүртэл татах чадваргүй тул протоколын хязгаарыг дагаж мөрддөг..

Миний тохиргоонд 3 -аас дээш тооны мэдрэгчийг хооронд нь холбоход ийм зүйл тохиолддог. Дараа нь хянагч нь температур мэдрэгчийг мэдрэгчээр хэмжих оношлогооны мөчлөгт эргэлддэг (энэ нь бас гайхалтай юм …)

Гэхдээ 5 -р мэдрэгч (28: ff: f2: 41: 51: 17: 04: 31) нэлээд өвчтэй харагдаж байна (магадгүй буруу гагнах), тиймээс би цаашид судалж үзэх боломжтой!

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