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, Novembar
Anonim
Mrežni regulator senzora temperature tolerantan na greške
Mrežni regulator senzora temperature tolerantan na greške

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

Kontroler može upravljati do 8 senzora pomoću Arduino Uno. (I još mnogo toga s Arduino Mega -om ili uz malu softversku izmjenu.)

Korak 1: Priča iza …

Prije nekoliko godina postavio sam mrežu senzora temperature DS18B20 u stakleniku moga oca za moj regulator grijanja na bazi pi. Nažalost, pouzdanost kontrolera je bila 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! Šta se dovraga dešava ovdje?

Da 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 funkcionira

DS18B20 (temperaturni senzor) koristi vlasnički 1-žični protokol koji omogućava više senzora da dijele zajedničku podatkovnu vezu (tu jednu žicu). Ova uobičajena veza za prijenos podataka povezana je s jednim od Arduino 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 kablovi 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 vodič spojen na pin #3 i GND na pin #2, postavljanje pina #3 na HIGH daje napajanje senzoru (ne čudi) dok postavljanje pina #2 na LOW daje uzemljenje (malo iznenađenje za ja). 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čica) dogodi unutar njega, neće ometati ostale.

(Treba reći da će povezivanje žice za prijenos podataka na nešto drugo povezano nekako na Arduino doista uzrokovati smetnje, ali to je gotovo nemoguće u mojim postavkama).

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 (pegla, držači, …)
  • mala kliješta za rezanje

Korak 4: Zajedno popravite stvari

Popravite stvari zajedno
Popravite stvari zajedno

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

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

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

Korak 5: Povežite stvari zajedno

Povežite stvari zajedno
Povežite stvari zajedno
Povežite stvari zajedno
Povež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 pin (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

Napomene:

  • Igle A0 -A5, iako su označene kao "analogne", mogu se koristiti i kao GPIO digitalne pinove.
  • SCL pin na "digitalnoj" strani je interno povezan sa A5 na "analognoj" strani; spojen na zaglavlja, ovo č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 direktno 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.
  • Da biste spriječili pogrešno spajanje konektora senzora, možete izostaviti / izrezati nekoriš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

Priključivanje senzora
Priključivanje senzora

Upravo ste stvorili niz od osam utičnica 2 × 2. Možete lemiti i sastaviti 2 × 2 Dupont konektore na senzorske kabele 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

Skica serijskog termometra pokreće kontroler. Možete ga pronaći na githubu. Otvorite i otpremite pomoću Arduino IDE -a.

Korak po korak:

  1. Otvorite svoj Arduino IDE i instalirajte biblioteku DallasTemperature i sve njene ovisnosti putem Sketch | -a Uključi biblioteku | Upravljanje bibliotekama.
  2. Klonirajte git spremište. Ako niste upoznati s gitom, preuzmite i raspakirajte ovaj zip bilo gdje na računaru.
  3. Otvorite skicu serijskog termometra u svom Arduino IDE -u.
  4. Povežite svoju izmijenjenu Arduino ploču s računarom 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 kada 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 velikim kapacitetom mog dugog ožičenja - oko 10 m kabela LIYY 314 (3 × 0, 14 mm²) za svaki senzor. Moji su eksperimenti 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 mojim postavkama to se događa kada je više od 3 senzora spojeno zajedno. Zatim se kontroler 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čuje se: