Obsah:

Senzor teploty odolný voči poruchám Sieťový ovládač: 8 krokov
Senzor teploty odolný voči poruchám Sieťový ovládač: 8 krokov

Video: Senzor teploty odolný voči poruchám Sieťový ovládač: 8 krokov

Video: Senzor teploty odolný voči poruchám Sieťový ovládač: 8 krokov
Video: 🥳 Peugeot 308 II (T9) – народная б/ушка из Европы? Много ли головной боли доставляет этот "Пыжик"? 2024, November
Anonim
Senzor teploty odolný voči poruchám Sieťový ovládač
Senzor teploty odolný voči poruchám Sieťový ovládač

Tento návod vám ukáže, ako previesť dosku Arduino Uno na jednoúčelový regulátor pre sadu snímačov teploty DS18B20 schopných automatizovanej izolácie chybných snímačov.

S Arduino Uno môže regulátor ovládať až 8 senzorov. (A oveľa viac s Arduino Mega alebo s malou softvérovou úpravou.)

Krok 1: Príbeh za …

Pred niekoľkými rokmi som v otcovom skleníku nastavil sieť snímačov teploty DS18B20 pre môj regulátor vykurovania založený na pi. Spoľahlivosť ovládača bola bohužiaľ nízka hlavne kvôli častým výpadkom senzorov. Vyskúšal som niekoľko nastavení - parazitný výkon, priame napájanie, pripojenie siete k pí a tiež pripojenie k vlastnej doske založenej na Atmega (ktorej primárnym účelom bolo poháňať ventilové motory).

Čo je horšie, spoľahlivosť senzorickej siete klesla hlavne počas zimných nocí, zatiaľ čo v lete neboli takmer žiadne problémy! Čo sa to tu sakra deje?

Aby sa zistilo, ktorý senzor spôsobuje problém, vyvstala potreba zapnúť/vypnúť ich jeden po druhom alebo povoliť ich ľubovoľnú kombináciu.

Krok 2: Ako to funguje

DS18B20 (snímač teploty) používa patentovaný 1-vodičový protokol, ktorý umožňuje viacerým senzorom zdieľať spoločné dátové spojenie (jeden vodič). Toto spoločné dátové prepojenie je pripojené k jednému z GPIO pinov Arduina a k + 5 V pomocou výsuvného odporu-nič neobvyklé, mnoho inštrukcií pokrýva toto nastavenie.

Ide o to, že napájacie vodiče každého senzora sú prepojené s vlastnými (vyhradenými) kolíkmi GPIO, takže ich je možné samostatne zapínať a vypínať. Napríklad, ak má snímač zapojený kábel Vcc na kolík č. 3 a GND na kolík č. 2, nastavovací kolík č. 3 na VYSOKÝ zaisťuje napájanie snímača (žiadne prekvapenie), zatiaľ čo nastavenie kolíka č. 2 na NÍZKU poskytuje uzemnenie (malé prekvapenie pre ja). Nastavením oboch pinov na vstupný režim (takmer) úplne izolujete snímač a jeho zapojenie - bez ohľadu na to, aké zlyhanie (napríklad skratka) sa v jeho vnútri vyskytne, nebude rušiť ostatné.

(Spravodlivé povedať, že pripojenie dátového vodiča k niečomu inému, čo je nejakým spôsobom spojené s Arduinom, skutočne spôsobí rušenie, ale v mojom nastavení je to takmer nemožné).

Všimnite si, že DS18B20 spotrebuje až 1, 5 mA, zatiaľ čo jeden pin Arduino môže napájať / potopiť až 40 mA, takže je úplne bezpečné napájať senzory priamo pomocou pinov GPIO.

Krok 3: Materiál a nástroje

Materiál

  • 1 doska Arduino UNO
  • 3 zásuvkové kolíky: 1 × 4, 1 × 6 a 1 × 6 (alebo dlhšie - vystrihol som ich z jednej hlavičky 1 × 40)
  • lepidlo
  • kus holého medeného drôtu (najmenej 10 cm)
  • izolačná páska
  • spotrebný materiál na spájkovanie (drôt, tavidlo …)

Nástroje

  • spájkovacie zariadenie (žehlička, držiaky, …)
  • malé rezacie kliešte

Krok 4: Opravte veci spoločne

Opravte veci spoločne
Opravte veci spoločne

Prilepte ženské kolíkové hlavičky k hlavičkám dosky Arduino:

  1. 1 × 4 záhlavie vedľa „analógového“kolíkového konektora, strana na stranu s kolíkmi A0 – A4
  2. 1 × 6 záhlavie vedľa prvého digitálneho konektora, zo strany na stranu s kolíkmi 2–7
  3. 1 × 6 záhlavie vedľa druhého digitálneho kolíkového konektora, strana na stranu s kolíkmi 8–13

Všimnite si, že moje záhlavia sú trochu dlhšie … myslím, že to nemá žiadne nevýhody a žiadne výhody.

Krok 5: Spojte veci dohromady

Spojte veci dohromady
Spojte veci dohromady
Spojte veci dohromady
Spojte veci dohromady

Zapojenie 1-vodičového zbernicového vedenia:

  1. Pripojte všetky vodiče lepených hlavičiek na „digitálnej“strane (susediace s kolíkmi 2–13) tak, že k nim spájkujete kus holého drôtu
  2. Spájkujte koniec tohto vodiča na pinový kábel SCL (vnútorne spojený s A5)
  3. Pripojte všetky vodiče lepeného konektora na „analógovej“strane (piny A0 – A3) tak, že k nim spájkujete kus holého drôtu
  4. Spájkujte koniec tohto drôtu na vodiče A4 a A5 (použil som A5 a A6, pretože mám dosku, ktorá má A6 a A7)
  5. Medzi druhým koncom tohto drôtu a +5 V pinovým vodičom spájkujte odpor 4k7

Poznámky:

  • Piny A0 – A5, aj keď sú označené ako „analógové“, je možné použiť aj ako digitálne piny GPIO.
  • Pin SCL na „digitálnej“strane je vnútorne spojený s A5 na „analógovej“strane; pripojený k hlavičkám, tvorí 1-vodičové zbernicové vedenie
  • A4 (používa sa ako analógový vstup) meria napätie zbernice na diagnostické účely. To je dôvod, prečo je priamo prepojený s autobusom.
  • Použil som A6 namiesto A4, pretože mám dosku, ktorá má A6 & A7; pôvodne som chcel použiť A7 ako 1-vodičový master zbernice, ale tieto dva piny nie je možné nakonfigurovať ako digitálne GPIO.
  • Aby ste zabránili nesprávnemu pripojeniu konektorov senzorov, môžete vynechať / vystrihnúť nepoužitý kontakt (nepripojený k žiadnemu vodiču) z každého konektora a zapojiť ho do zodpovedajúceho otvoru v prilepenom záhlaví kolíka.

Krok 6: Pripojenie senzorov

Pripojenie senzorov
Pripojenie senzorov

Práve ste vytvorili pole ôsmich zásuviek 2 × 2. Na káble snímačov môžete spájkovať a zostavovať 2 × 2 konektory Dupont a pripojiť ich k týmto zásuvkám. Softvér konfiguruje piny tak, že párne piny sú piny GND a nepárne piny sú piny Vcc. Pre každý senzor je kolík Vcc iba GND pin + 1. Jeden z ďalších dvoch kolíkov zásuvky 2 × 2 (jeden z týchto dvoch v lepenej a spájkovanej hlavičke) je pre dátový vodič snímača. Nezáleží na tom, ktorý použijete.

Krok 7: Softvér ovládača

Softvér ovládača
Softvér ovládača

Skica SerialThermometer spustí ovládač. Nájdete ho na github. Otvorte a nahrajte pomocou Arduino IDE.

Krok za krokom:

  1. Otvorte svoje Arduino IDE a nainštalujte si knižnicu DallasTemperature a všetky jej závislosti prostredníctvom Sketch | Zahrnúť knižnicu | Spravujte knižnice.
  2. Klonovanie úložiska git. Ak nie ste oboznámení s git, stiahnite si a rozbaľte tento zip kdekoľvek na počítači.
  3. Otvorte skicu SerialThermometer vo svojom Arduino IDE.
  4. Pripojte upravenú dosku Arduino k počítaču káblom USB (štandardným spôsobom)
  5. Nahrajte skicu pomocou svojho Arduino IDE
  6. Otvorte Sériový monitor pomocou Nástroje | Sériový monitor
  7. Mali by ste vidieť diagnostický výstup obsahujúci niekoľko fyzických meraní, po ktorých nasledujú údaje o teplote - každá zásuvka senzora na jednom riadku. Ak sa počet senzorov líši, keď sú zapnuté samostatne a keď sú zapnuté všetky spoločne), diagnostické slučky sa vyriešia. Ale nebojte sa, aj diagnostika poskytuje meranie teploty!

Podrobnejšie informácie o diagnostickom výstupe nájdete na komentovanom obrázku.

Krok 8: Záver

Mám silný pocit, že moje poruchy siete senzorov boli spôsobené vysokou kapacitou môjho dlhého vedenia - asi 10 m kábla LIYY 314 (3 × 0, 14 mm²) pre každý senzor. Moje experimenty ukázali, že komunikácia sa preruší, ak je medzi 1-vodičovou zbernicou a zemou kapacita približne 0,01 μF alebo vyššia, myslím si, že pretože vyťahovací odpor 4k7 nie je schopný vytiahnuť zbernicu na + 5 V dostatočne rýchlo, aby vyhovoval limitom protokolu..

V mojom nastavení sa to stane, keď sú dohromady prepojené viac ako 3 snímače. Potom sa regulátor zapojí do diagnostického cyklu a meria teplotu snímač po senzore (čo je tiež chladné …)

Ale aj 5. snímač (28: ff: f2: 41: 51: 17: 04: 31) vyzerá dosť zle (možno nesprávne spájkovanie), takže môžem skúmať ďalej!

Odporúča: