Sisällysluettelo:

Vikasietoinen lämpötila-anturin verkko-ohjain: 8 vaihetta
Vikasietoinen lämpötila-anturin verkko-ohjain: 8 vaihetta

Video: Vikasietoinen lämpötila-anturin verkko-ohjain: 8 vaihetta

Video: Vikasietoinen lämpötila-anturin verkko-ohjain: 8 vaihetta
Video: Oy Herrfors Ab - Vikasietoinen Oracle ajoalusta ODA- ja Dbvisit teknologioiden avulla 2024, Heinäkuu
Anonim
Vikasietoinen lämpötila-anturin verkko-ohjain
Vikasietoinen lämpötila-anturin verkko-ohjain

Tämä opas näyttää, kuinka Arduino Uno -kortti voidaan muuntaa yksikäyttöiseksi ohjaimeksi DS18B20-lämpötila-anturisarjalle, joka kykenee automaattisesti eristämään vialliset anturit.

Ohjain voi hallita jopa 8 anturia Arduino Unolla. (Ja paljon muuta Arduino Megan tai pienen ohjelmistomuutoksen avulla.)

Vaihe 1: Tarina takana…

Pari vuotta sitten perustin isäni kasvihuoneeseen DS18B20-lämpötila-anturiverkon pi-pohjaiselle lämmityslaitteelleni. Valitettavasti ohjaimen luotettavuus oli heikko lähinnä anturien usein tapahtuvien katkosten vuoksi. Kokeilin useita asetuksia - loisvoimaa, suoravirtaa, verkon yhdistämistä pi: hen sekä yhdistämistä Atmega -pohjaiseen mukautettuun korttiin (jonka ensisijainen tarkoitus oli käyttää venttiilimoottoreita).

Mikä pahempaa, anturiverkoston luotettavuus laski pääasiassa talvi -iltaisin, kun kesällä ei ollut lainkaan ongelmia! Mitä ihmettä täällä tapahtuu?

Jotta voitaisiin tutkia, mikä anturi aiheuttaa ongelman, ilmeni tarve kytkeä ne päälle/pois yksitellen tai ottaa käyttöön mikä tahansa niiden yhdistelmä.

Vaihe 2: Näin se toimii

DS18B20 (lämpötila-anturi) käyttää omaa 1-johtimista protokollaa, jonka avulla useat anturit voivat jakaa yhteisen datayhteyden (yhden johdon). Tämä yleinen datalinkki on kytketty yhteen Arduinon GPIO-nastoista ja + 5 V: n vetovastusvastuksen kautta-ei mitään harvinaista, monet ohjeet sisältävät tämän asetuksen.

Temppu on, että kunkin anturin virtajohdot on kytketty omiin (omiin) GPIO -nastoihinsa, jotta ne voidaan kytkeä päälle ja pois erikseen. Jos esimerkiksi anturissa on Vcc -johto kytketty nastaan 3 ja GND nastaan #2, nastan #3 asettaminen HIGH -tilaan antaa virran anturille (ei yllätys), kun taas nastan 2 asettaminen LOW -tilaan antaa maan (pieni yllätys minä). Molempien nastojen asettaminen tulotilaan eristää (melkein) täysin anturin ja sen johdot - riippumatta siitä, mikä vika (esimerkiksi pikakuvake) tapahtuu sen sisällä, se ei häiritse muita.

(Oikein sanoa, että datakaapelin liittäminen johonkin muuhun, joka on jotenkin kytketty Arduinoon, aiheuttaa todellakin häiriöitä, mutta se on melkein mahdotonta asennuksessani).

Huomaa, että DS18B20 kuluttaa jopa 1,5 mA, kun taas yksi Arduino -nasta voi syöttää / upottaa jopa 40 mA, joten se on täysin turvallista käyttää antureita suoraan GPIO -nastoilla.

Vaihe 3: Materiaali ja työkalut

Materiaali

  • 1 Arduino UNO -levy
  • 3 naaraspuolista otsikkoa: 1 × 4, 1 × 6 ja 1 × 6 (tai pidempi - leikkaan ne yhdestä 1 × 40 otsikosta)
  • liimaa
  • pala paljaa cooper -lankaa (vähintään 10 cm)
  • eristysnauha
  • juottotarvikkeet (lanka, virtaus …)

Työkalut

  • juotoslaitteet (rauta, pidikkeet jne.)
  • pienet leikkuupihdit

Vaihe 4: Korjaa asiat yhdessä

Korjaa asiat yhdessä
Korjaa asiat yhdessä

Liimaa naaraspuoliset otsikot Arduino -levyn otsikoihin:

  1. 1 × 4 otsikko "analogisen" tapin otsikon vieressä, sivulta toiselle nastoilla A0 – A4
  2. 1 × 6-otsikko ensimmäisen digitaalisen nastaotsikon vieressä, sivulta toiselle nastoilla 2–7
  3. 1 × 6-otsikko toisen digitaalisen tapin otsikon vieressä, sivulta toiselle nastat 8–13

Huomaa, että otsikot ovat hieman pidempiä … sillä ei ole haittoja eikä etuja.

Vaihe 5: Yhdistä asiat yhdessä

Yhdistä asiat yhdessä
Yhdistä asiat yhdessä
Yhdistä asiat yhdessä
Yhdistä asiat yhdessä

1-johdinväylän johdotus:

  1. Liitä kaikki liimattujen otsikoiden johdot "digitaaliselle" puolelle (nastojen 2-13 viereen) juottamalla niihin paljaat langat
  2. Juotos tämän johdon pää SCL -nastajohtoon (sisäisesti kytketty A5: een)
  3. Liitä kaikki liimatun otsikon johdot "analogisella" puolella (nastat A0 - A3) juottamalla niihin paljaan langan pala
  4. Juotos tämän langan pää A4- ja A5 -johtoihin (käytin A5: tä ja A6: ta, koska minulla on levy, jossa on A6 & A7)
  5. Juotos 4k7 -vastus tämän johdon toisen pään ja +5 V -nastaisen johtimen väliin

Huomautuksia:

  • Nastat A0 - A5, vaikka ne on merkitty "analogisiksi", voidaan käyttää myös digitaalisina GPIO -nastoina.
  • SCL -nasta "digitaalisella" puolella on sisäisesti kytketty A5: hen "analogisella" puolella; kytkettyinä otsikoihin, tämä muodostaa 1-johtimisen väylälinjan
  • A4 (käytetään analogisena tulona) mittaa väylän jännitettä diagnostisiin tarkoituksiin. Siksi se on kytketty suoraan väylään.
  • Käytin A6: ta A4: n sijasta, koska minulla on levy, jossa on A6 & A7; alunperin halusin käyttää A7: tä 1-johdinväylän isäntänä, mutta näitä kahta nastaa ei voida määrittää digitaaliseksi GPIO: ksi.
  • Voit estää anturiliittimien väärän liitännän jättämällä pois / katkaisemalla käyttämättömän kontaktin (ei kytketty mihinkään johtoon) kustakin urosliittimestä ja työntämällä sen liimattuun liittimeen.

Vaihe 6: Anturien liittäminen

Anturien liittäminen
Anturien liittäminen

Loit juuri kahdeksan 2 × 2 -pistorasian sarjan. Voit juottaa ja koota 2 × 2 Dupont -liitintä anturikaapeleihin ja liittää ne näihin pistorasioihin. Ohjelmisto määrittää nastat siten, että parilliset nastat ovat GND -tappeja ja parittomat nastat ovat Vcc -nastoja. Jokaiselle anturille Vcc -nasta on vain GND -nasta + 1. Toinen 2 × 2 -pistorasian kahdesta muusta nastasta (yksi niistä kahdesta liimatussa ja juotetussa otsikossa) on anturin datajohtoa varten. Ei ole väliä mitä käytät.

Vaihe 7: Ohjainohjelmisto

Ohjainohjelmisto
Ohjainohjelmisto

SerialThermometer -luonnos ohjaa ohjainta. Löydät sen githubista. Avaa ja lataa Arduino IDE: llä.

Askel askeleelta:

  1. Avaa Arduino IDE ja asenna DallasTemperature -kirjasto ja kaikki sen riippuvuudet Sketchin kautta | Sisällytä kirjasto | Hallitse kirjastoja.
  2. Clone git -varasto. Jos et tunne gitiä, lataa ja pura tämä zip missä tahansa tietokoneellasi.
  3. Avaa SerialThermometer -luonnos Arduino IDE -laitteessasi.
  4. Liitä modifioitu Arduino -korttisi tietokoneeseen USB -kaapelilla (vakio)
  5. Lataa luonnos Arduino IDE -laitteella
  6. Avaa Sarjamonitori Työkalut | Sarjamonitori
  7. Sinun pitäisi nähdä diagnostiikkatulos, joka sisältää useita fyysisiä mittauksia ja lämpötilalukemia - jokainen anturiliitäntä yhdellä rivillä. Jos anturien lukumäärä vaihtelee, kun ne kytketään päälle erikseen ja kun kaikki kytketään päälle), vianmäärityssilmukat, kunnes ne on ratkaistu. Mutta ei hätää, myös diagnostiikka tarjoaa lämpötilan mittauksia!

Katso selitetystä kuvasta lisätietoja diagnostiikkatuloksesta.

Vaihe 8: Johtopäätös

Minulla on vahva tunne, että anturiverkkohäiriöni johtuivat pitkän johdotukseni suuresta kapasitanssista - noin 10 m LIYY 314 (3 × 0, 14 mm²) kaapelia jokaiselle anturille. Kokeiluni osoittivat, että tiedonsiirto katkeaa, jos 1-johdinväylän ja maan välillä on kapasitanssi noin tai yli 0,01 μF, luulen, että koska 4k7-vetovastus ei pysty vetämään väylää + 5 V: iin riittävän nopeasti noudattamaan protokollarajoja.

Asetuksessani se tapahtuu, kun enemmän kuin 3 anturia on kytketty yhteen. Sitten ohjain kiertää diagnostiikkasyklin mittaakseen lämpötila-anturin kerrallaan (mikä on myös viileää …)

Mutta myös viides anturi (28: ff: f2: 41: 51: 17: 04: 31) näyttää melko pahalta (ehkä väärin juotettuna), joten voin tutkia tarkemmin!

Suositeltava: