Sadržaj:

Mrežni regulator osjetnika temperature tolerantan na greške: 8 koraka
Mrežni regulator osjetnika temperature tolerantan na greške: 8 koraka

Video: Mrežni regulator osjetnika temperature tolerantan na greške: 8 koraka

Video: Mrežni regulator osjetnika temperature tolerantan na greške: 8 koraka
Video: Podešavanje temperature je na vama uz Bosch regulator CT100 - Postavke sobne temperature 2024, Prosinac
Anonim
Mrežni regulator osjetnika temperature tolerantan na greške
Mrežni regulator osjetnika temperature tolerantan na greške

Ovaj Instructable pokazuje vam kako pretvoriti Arduino Uno ploču u jednonamjenski regulator za skup temperaturnih senzora DS18B20 koji mogu automatizirati izolaciju neispravnih senzora.

Upravljač može upravljati s 8 senzora s Arduino Uno. (I još mnogo toga s Arduino Mega ili s malom izmjenom softvera.)

Korak 1: Priča iza …

Prije nekoliko godina postavio sam mrežu senzora temperature DS18B20 u očevom stakleniku za svoj regulator grijanja na bazi pi. Nažalost, pouzdanost regulatora bila je loša uglavnom zbog čestih prekida u radu senzora. Pokušao sam s više postavki - napajanje parazita, izravno napajanje, povezivanje mreže na pi, kao i povezivanje s prilagođenom pločom zasnovanom na Atmegi (čija je primarna svrha bila pogon motora ventila).

Što je još gore, pouzdanost senzorske mreže pala je uglavnom tijekom zimskih noći, dok ljeti gotovo da nije bilo problema! Što se dovraga ovdje događa?

Kako bi se istražilo koji senzor uzrokuje problem, pojavila se potreba za uključivanjem/isključivanjem jednog po jednog ili omogućavanjem bilo koje njihove kombinacije.

Korak 2: Kako to radi

DS18B20 (temperaturni senzor) koristi vlasnički 1-žični protokol koji omogućuje više senzora da dijele zajedničku podatkovnu vezu (tu jednu žicu). Ova uobičajena podatkovna veza povezana je s jednim od Arduinovih GPIO pinova i na + 5 V preko pull-up otpornika-ništa neuobičajeno, mnoge upute pokrivaju ovu postavku.

Trik je u tome što su kabeli za napajanje svakog senzora spojeni na vlastite (namjenske) GPIO pinove, tako da se mogu zasebno uključivati i isključivati. Na primjer, ako senzor ima Vcc kabel spojen na pin #3 i GND na pin #2, postavljanje pina #3 na HIGH daje snagu senzoru (ne čudi) dok postavljanje pina #2 na LOW daje uzemljenje (malo iznenađenje za mi). Postavljanje oba pina na način unosa (gotovo) će potpuno izolirati senzor i njegovo ožičenje - bez obzira na to koji se kvar (npr. Prečac) dogodi unutar njega, neće ometati ostale.

(Pošteno je reći da će povezivanje podatkovne žice s nečim drugim povezanim nekako na Arduino doista izazvati smetnje, ali to je u mojim postavkama gotovo nemoguće).

Imajte na umu da DS18B20 troši do 1,5 mA, dok jedan Arduino pin može izvor / potonuti do 40 mA, pa je savršeno sigurno napajati senzore izravno putem GPIO pinova.

Korak 3: Materijal i alati

Materijal

  • 1 Arduino UNO ploča
  • 3 ženska pin zaglavlja: 1 × 4, 1 × 6 i 1 × 6 (ili duže - izrežem ih iz jednog zaglavlja 1 × 40)
  • ljepilo
  • komad gole bakrene žice (najmanje 10 cm)
  • izolacijsku traku
  • potrošni materijal za lemljenje (žica, fluks …)

Alati

  • oprema za lemljenje (glačalo, držači, …)
  • mala kliješta za rezanje

Korak 4: Popravite stvari zajedno

Popravite stvari zajedno
Popravite stvari zajedno

Zalijepite zaglavlja ženskih pinova na zaglavlja Arduino ploče:

  1. 1 × 4 zaglavlja pored "analognog" zaglavlja pinova, bočno s pinovima A0 – A4
  2. 1 × 6 zaglavlja pored prvog digitalnog zaglavlja pinova, bočno s pinovima 2–7
  3. 1 × 6 zaglavlja pored drugog digitalnog zaglavlja pinova, bočno s pinovima 8–13

Primijetite da su moja zaglavlja malo duža … pretpostavljam da nema nedostataka i prednosti.

Korak 5: Povežite stvari zajedno

Ožičite stvari zajedno
Ožičite stvari zajedno
Ožičite stvari zajedno
Ožičite stvari zajedno

Ožičenje 1-žične sabirničke linije:

  1. Spojite sve vodiče zalijepljenih zaglavlja na "digitalnoj" strani (uz pinove 2–13) lemljenjem komada gole žice na njih
  2. Lemite kraj ove žice na SCL pin kabel (interno spojen na A5)
  3. Spojite sve vodiče zalijepljenog zaglavlja na "analognoj" strani (pinovi A0 -A3) lemljenjem komada gole žice na njih
  4. Lemite kraj ove žice na vodiče A4 i A5 (koristio sam A5 i A6 jer imam ploču koja ima A6 i A7)
  5. Lemite otpornik 4k7 između drugog kraja ove žice i +5 V kontakta

Bilješke:

  • Pinovi A0 -A5, iako su označeni kao "analogni", mogu se koristiti i kao GPIO digitalni pinovi.
  • SCL pin na "digitalnoj" strani interno je spojen na A5 na "analognoj" strani; spojen na zaglavlja, to čini 1-žičnu sabirničku liniju
  • A4 (koristi se kao analogni ulaz) mjeri napon sabirnice u dijagnostičke svrhe. To je razlog zašto je izravno povezan s autobusom.
  • Koristio sam A6 umjesto A4 jer imam ploču koja ima A6 & A7; izvorno sam želio koristiti A7 kao 1-žični sabirnički master, ali ova dva pina ne mogu se konfigurirati kao digitalni GPIO.
  • Kako biste spriječili pogrešno spajanje priključaka senzora, možete izostaviti / izrezati neiskorišteni kontakt (nije spojen ni na jednu žicu) iz svakog muškog priključka i umetnuti ga u odgovarajući otvor u zalijepljenom zaglavlju pinova.

Korak 6: Spajanje senzora

Spajanje senzora
Spajanje senzora

Upravo ste stvorili niz od osam utičnica 2 × 2. Možete lemiti i sastaviti 2 × 2 Dupont konektore na kabele senzora i spojiti ih na ove utičnice. Softver konfigurira pinove tako da su parni pinovi GND pinovi, a neparni pinovi Vcc pinovi. Za svaki senzor, Vcc pin je samo GND pin + 1. Jedan od druga dva pina utičnice 2 × 2 (jedan od ta dva u zalijepljenom i lemljenom zaglavlju) služi za podatkovnu žicu senzora. Nije važno koju koristite.

Korak 7: Softver kontrolera

Softver kontrolera
Softver kontrolera

Na skici serijskog termometra nalazi se kontroler. Možete ga pronaći na githubu. Otvorite i prenesite pomoću Arduino IDE -a.

Korak po korak:

  1. Otvorite svoj Arduino IDE i instalirajte biblioteku DallasTemperature i sve njezine ovisnosti putem programa Sketch | Uključi knjižnicu | Upravljanje knjižnicama.
  2. Kloniraj git spremište. Ako niste upoznati s gitom, preuzmite i raspakirajte ovaj zip bilo gdje na svom računalu.
  3. Otvorite skicu serijskog termometra u svom Arduino IDE -u.
  4. Spojite svoju izmijenjenu Arduino ploču na računalo putem USB kabela (standardni način)
  5. Prenesite skicu koristeći svoj Arduino IDE
  6. Otvorite Serijski monitor putem Alata | Serijski monitor
  7. Trebali biste vidjeti dijagnostički izlaz koji sadrži nekoliko fizičkih mjerenja nakon čega slijede očitanja temperature - svaka utičnica senzora na jednoj liniji. Ako se broj senzora razlikuje kada se zasebno uključi i kad se svi zajedno uključe), dijagnostičke petlje se rješavaju. Ali bez brige, dijagnostika također omogućuje mjerenje temperature!

Za više detalja o dijagnostičkim rezultatima pogledajte označenu sliku.

Korak 8: Zaključak

Imam snažan osjećaj da su kvarovi na mreži senzora uzrokovani visokim kapacitetom mog dugog ožičenja - oko 10 m kabela LIYY 314 (3 × 0, 14 mm²) za svaki senzor. Moji su pokusi pokazali da se komunikacija prekida ako postoji kapacitet oko ili veći od 0,01 μF između 1-žilne sabirnice i mase, mislim da 4k7 pull-up otpornik ne može povući sabirnicu na + 5 V dovoljno brzo da se pridržava ograničenja protokola.

U mom postavljanju to se događa kada je više od 3 senzora spojeno zajedno. Zatim se regulator petlja u dijagnostičkom ciklusu, mjereći temperaturu senzor po senzor (što je i kul …)

Ali i 5. senzor (28: ff: f2: 41: 51: 17: 04: 31) izgleda prilično loše (možda pogrešno lemljenje), pa mogu dalje istražiti!

Preporučeni: