Përmbajtje:

Kontrolluesi i Rrjetit të Sensorit të Temperaturës me Gabim Tolerant: 8 Hapa
Kontrolluesi i Rrjetit të Sensorit të Temperaturës me Gabim Tolerant: 8 Hapa

Video: Kontrolluesi i Rrjetit të Sensorit të Temperaturës me Gabim Tolerant: 8 Hapa

Video: Kontrolluesi i Rrjetit të Sensorit të Temperaturës me Gabim Tolerant: 8 Hapa
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Korrik
Anonim
Kontrollues i rrjetit të sensorit të temperaturës me defekt
Kontrollues i rrjetit të sensorit të temperaturës me defekt

Ky udhëzues ju tregon se si të shndërroni një bord Arduino Uno në një kontrollues me një qëllim të vetëm për një sërë sensorë të temperaturës DS18B20 të aftë për izolimin e automatizuar të sensorëve të dëmtuar.

Kontrolluesi mund të menaxhojë deri në 8 sensorë me Arduino Uno. (Dhe shumë më tepër me Arduino Mega ose me një modifikim të lehtë të softuerit.)

Hapi 1: Historia prapa…

Nja dy vjet më parë krijova një rrjet të sensorëve të temperaturës DS18B20 në serën e babait tim për kontrolluesin tim të ngrohjes me bazë pi. Fatkeqësisht, besueshmëria e kontrolluesit ishte e dobët kryesisht për shkak të ndërprerjeve të shpeshta të sensorit. Provova konfigurime të shumta - fuqi parazitare, fuqi direkte, lidhjen e rrjetit me pi si dhe lidhjen me bordin e personalizuar të bazuar në Atmega (qëllimi kryesor i të cilit ishte të drejtonte motorët e valvulave).

Për më keq, besueshmëria e rrjetit të sensorëve ra kryesisht gjatë netëve të dimrit, ndërsa në verë pothuajse nuk kishte probleme! Çfarë dreqin po ndodh këtu?

Për të hetuar se cili sensor shkakton problemin, u shfaq nevoja për t'i aktivizuar/fikur ato një nga një ose për të mundësuar ndonjë kombinim të tyre.

Hapi 2: Si funksionon

DS18B20 (sensori i temperaturës) përdor protokoll pronësor me 1 tela që lejon sensorë të shumtë të ndajnë lidhjen e përbashkët të të dhënave (atë një tel). Kjo lidhje e zakonshme e të dhënave është e lidhur me një nga kunjat GPIO të Arduino dhe me + 5 V nëpërmjet një rezistori tërheqës-asgjë e pazakontë, shumë udhëzime mbulojnë këtë konfigurim.

Truku qëndron në faktin se prizat e energjisë të secilit sensor janë të lidhura me kunjat e veta (të dedikuar) GPIO, në mënyrë që ato të mund të ndizen dhe fiken veç e veç. Për shembull, nëse një sensor ka një prizë Vcc të lidhur me kunjin #3 dhe GND në pinin #2, vendosja e kunjit #3 në LART HIGH siguron energji për sensorin (nuk është befasi) ndërsa vendosja e kunjit #2 në LOW siguron terren (një surprizë e vogël për une). Vendosja e të dy kunjave në modalitetin e hyrjes do të (pothuajse) izolojë plotësisht sensorin dhe telat e tij - pavarësisht se çfarë dështimi (p.sh. një shkurtore) ndodh brenda tij, nuk do të ndërhyjë me të tjerët.

(E drejtë të thuhet se lidhja e telit të të dhënave me diçka tjetër të lidhur disi me Arduino do të shkaktojë me të vërtetë ndërhyrje, por është pothuajse e pamundur në konfigurimin tim).

Vini re se DS18B20 konsumon deri në 1, 5 mA ndërsa një kunj Arduino mund të burojë / fundoset deri në 40 mA, kështu që është krejtësisht e sigurt për të ndezur sensorët drejtpërdrejt nga kunjat GPIO.

Hapi 3: Materiali dhe Mjetet

Materiale

  • 1 bord Arduino UNO
  • 3 kokë femrash me kunja: 1 × 4, 1 × 6 dhe 1 × 6 (ose më gjatë - i kam prerë nga një kokë 1 × 40)
  • një zam
  • një copë teli të zhveshur të cooper (të paktën 10 cm)
  • një shirit izolues
  • materialet e saldimit (tela, fluks …)

Mjetet

  • pajisje për saldim (hekur, mbajtëse,…)
  • pincë të vogla prerëse

Hapi 4: Rregulloni gjërat së bashku

Rregullo gjërat së bashku
Rregullo gjërat së bashku

Ngjitni titujt e femrave me kokë në titujt e bordit Arduino:

  1. Koka 1 × 4 pranë kokës së pinit "analog", krah për krah me kunjat A0 – A4
  2. Koka 1 × 6 pranë kokës së parë dixhitale të kunjit, krah për krah me kunjat 2-7
  3. Koka 1 × 6 pranë kokës së dytë dixhitale të kunjit, krah për krah me kunjat 8-13

Vini re se titujt e mi janë pak më të gjatë … supozoj se nuk ka të këqija dhe asnjë të mirë.

Hapi 5: Gjërat me tela së bashku

Gjërat me tela së bashku
Gjërat me tela së bashku
Gjërat me tela së bashku
Gjërat me tela së bashku

Instalimi i linjës së autobusit me 1 tela:

  1. Lidhni të gjitha lidhjet e titujve të ngjitur në anën "dixhitale" (ngjitur me kunjat 2-13) duke ngjitur një copë teli të zhveshur në to
  2. Ngjiteni fundin e këtij teli në prizën e kunjit SCL (e lidhur brenda me A5)
  3. Lidhni të gjitha lidhjet e kokës së ngjitur në anën "analoge" (kunjat A0 – A3) duke ngjitur një copë teli të zhveshur në to
  4. Ngjiteni fundin e këtij teli në prizat A4 dhe A5 (kam përdorur A5 dhe A6 sepse kam një tabelë që ka A6 & A7)
  5. Lidhni një rezistencë 4k7 midis skajit tjetër të këtij teli dhe plumbit të kunjave +5 V.

Shënime:

  • Kunjat A0 – A5, megjithëse shënohen "analoge", mund të përdoren gjithashtu si kunja dixhitale GPIO.
  • Kunja SCL në anën "dixhitale" është e lidhur brenda me A5 në anën "analoge"; i lidhur me titujt, kjo formon linjën e autobusit me 1 tela
  • A4 (përdoret si hyrje analoge) mat tensionin e autobusit për qëllime diagnostikuese. Kjo është arsyeja pse lidhet drejtpërdrejt me autobusin.
  • Kam përdorur A6 në vend të A4 sepse kam një tabelë që ka A6 & A7; fillimisht doja të përdorja A7 si master autobusi me 1 tela, por këto dy kunja nuk mund të konfigurohen të jenë GPIO dixhitale.
  • Për të parandaluar lidhjen e gabuar të lidhësve të sensorit, mund të hiqni / prerë kontaktin e papërdorur (jo i lidhur me asnjë tel) nga secili lidhës mashkull dhe ta futni në vrimën përkatëse në kokën e kunjës së ngjitur.

Hapi 6: Lidhja e sensorëve

Lidhja e sensorëve
Lidhja e sensorëve

Ju sapo krijuat një grup prej tetë bazash 2 × 2. Ju mund të lidhni dhe montoni lidhës 2 × 2 Dupont në kabllot e sensorit dhe t'i lidhni ato në këto priza. Softueri konfiguron kunjat në mënyrë që kunjat e barabarta të jenë kunja GND dhe kunjat e çuditshëm janë kunjat Vcc. Për secilin sensor, kunja Vcc është vetëm kunj GND + 1. Një nga dy kunjat e tjerë të prizës 2 × 2 (një nga ato dy në kokën e ngjitur dhe ngjitur) është për telin e të dhënave të sensorit. Nuk ka rëndësi se cilën përdorni.

Hapi 7: Softueri i kontrolluesit

Softueri i kontrolluesit
Softueri i kontrolluesit

Skica SerialThermometer drejton kontrolluesin. Mund ta gjeni në github. Hapni dhe ngarkoni duke përdorur Arduino IDE.

Hap pas hapi:

  1. Hapni Arduino IDE tuaj dhe instaloni bibliotekën DallasTemperature dhe të gjitha varësitë e saj përmes Sketch | Përfshi Bibliotekën | Menaxhoni Bibliotekat.
  2. Klononi depo git. Nëse nuk jeni njohur me git, shkarkoni dhe shpaketoni këtë zip kudo në kompjuterin tuaj.
  3. Hapni skicën SerialThermometer në IDE tuaj Arduino.
  4. Lidhni bordin tuaj të modifikuar Arduino me kompjuterin tuaj me kabllo USB (mënyra standarde)
  5. Ngarko skicën duke përdorur Arduino IDE
  6. Hapni Monitorin Serial përmes Mjeteve | Monitor Serial
  7. Duhet të shihni daljen diagnostike që përmban disa matje fizike të ndjekura nga leximet e temperaturës - secila prizë sensori në një linjë të vetme. Nëse numri i sensorëve ndryshon kur ndizet veçmas dhe kur të gjithë ndizen së bashku), bëni sythe diagnostikues derisa të zgjidhen. Por mos u shqetësoni, gjithashtu diagnostikimi siguron matje të temperaturës!

Shihni foton e shënuar për më shumë detaje në lidhje me daljen diagnostike.

Hapi 8: Përfundimi

Kam një ndjenjë të fortë se dështimet e rrjetit tim të sensorit janë shkaktuar nga kapaciteti i lartë i instalimeve të mia të gjata - rreth 10 m kabllo LIYY 314 (3 × 0, 14 mm²) për secilin sensor. Eksperimentet e mia treguan se komunikimi prishet nëse ka kapacitet rreth ose më të lartë se 0.01 μF midis autobusit me 1 tela dhe tokës, mendoj se rezistenca tërheqëse 4k7 nuk është në gjendje të tërheqë autobusin në + 5 V aq shpejt sa të përputhet me limitet e protokollit Me

Në konfigurimin tim ndodh kur më shumë se 3 sensorë janë të lidhur së bashku. Pastaj, kontrolluesi lakon në ciklin diagnostikues, duke matur sensorin e temperaturës sipas sensorit (ajo që është gjithashtu e ftohtë …)

Por edhe sensori i 5 -të (28: ff: f2: 41: 51: 17: 04: 31) duket mjaft keq (ndoshta bashkim i gabuar), kështu që mund të hetoj më tej!

Recommended: