Teplomer nie je na Attiny2313 menší. Teplomer nemôže byť menší na Attiny2313 Popis činnosti okruhu teplomeru

Domov / Bývalý

Na internete je množstvo teplomerových diagramov pre AVR, ale ako vždy, chcete niečo vlastné... A tiež by ste si mali ponaťahovať mozog. Tento teplomer bol jedným z mojich prvých projektov.

Čo som chcel:

  • minimálne veľkosti (v rozumných medziach)
  • minimálne náklady
  • jednoduchosť dizajnu
  • vysoká opakovateľnosť
  • všestrannosť (viac o tom neskôr)

Čo sa stalo:

Po zhliadnutí podobných dizajnov a vyfajčení popisu plecháča, ktorý bol po ruke (ATtiny2313), som dospel k záveru, že je možné trochu zjednodušiť existujúce dizajny a mierne zlepšiť ich vlastnosti.

Diagram ukazuje druhú možnosť zapnutia snímača teploty, ak nechce pracovať cez jednovodičovú zbernicu (čo je veľmi zriedkavé). Upozorňujeme, že pull-up rezistor na kolíku 11 musí byť presne 4,7 kOhm. Zníženie alebo zvýšenie môže viesť k nestabilnej prevádzke snímača, ak je zapnutý v jednovodičovom obvode.

Ako vidíte, tento obvod sa líši od podobných v absencii tranzistorov na ovládanie segmentov. Obvod bol teda v porovnaní s podobnými obvodmi zjednodušený o 4 tranzistory a 4 odpory. Tu niektorí povedia: „to nie je možné – porty sú veľmi zaťažené!!!“ Čítali sme o tomto ovládači „ Jednosmerný prúd na I/O kolík - 40,0 mA". V každom symbole máme 8 segmentov, každý 5 mA - ukazuje sa 40 mA!!!.

Teraz sa pozrime na grafy z rovnakého popisu:

Z grafov je zrejmé, že prúd môže dosiahnuť 60 mA a dokonca aj 80 mA na pin. No, nenechajme sa uniesť - 5 mA na segment (40 mA na symbol) nám stačí! Obmedzovacie odpory sú zvolené tak, aby produkovali prúd približne 5 mA na segment. V mojom obvode je 470 ohmov. Svetelnosť segmentov je výborná!!! Nechal som sa teda uniesť teóriou.

Cvičte!!!

Dosku s plošnými spojmi som nakreslil na základe ich úvah „čo najmenší, ale čo najjednoduchší“. Preto to dopadlo s niekoľkými skokanmi...

Na obrázku je miesto pre kremeň - to je pre malú všestrannosť - mal som niekoľko kusov AT90S2313, ktoré nemajú vnútorný oscilátor. CRANK sa používa v kryte SOT-89. Ochranné zenerove diódy BZX79-C5V1 v kryte DO-35. Kondenzátory v napájacom filtri sú 10mkF * 16V tantalové (žiadne iné neboli nájdené), veľkosť 3528 (SMD-B). Zvyčajne ich neinštalujem, ale namiesto toho - 1 mkF * 50 V, veľkosť 1206. Neboli zaznamenané žiadne poruchy súvisiace s napájaním.

prázdna doska vyrobená "laserovou žehličkou"

zložená doska: pohľad zo strany na vodiče (chýba stabilizátor)

pohľad zo strany prvkov (indikátor nie je zapečatený)

Projekt bol zostavený po kúskoch, niektoré z hotových projektov z internetu, niektoré som pridal ja... Pôvodný nápad bol dynamický displej. Problémom bolo, že pri komunikácii s teplotným snímačom DS18B20 nastali momenty, kedy sa „snímanie“ indikácie zastavilo. Aktualizácia indikátora sa preto nerobila prerušeniami, ale v hlavnej programovej slučke a sem tam bola vložená aj do procedúry komunikácie so snímačom... Výhodou tohto spôsobu bola vysoká frekvencia aktualizácie, ktorá eliminovala tzv. problém s blikaním.

Skoro som zabudol - poistky pre normálnu prevádzku teplomera:

Tak sme to flashli, zapli... Hmm... funguje!!!

Ako teda vidíme, dostali sme pomerne jednoduché (o koľko jednoduchšie???) zariadenie, ktoré svojou veľkosťou nepresahuje veľkosť indikátora. Okrem toho je presnosť tiež vysoká: podľa popisu snímača „presnosť ±0,5 °C od –10 °C do +85 °C“. Ako ukázala prax, presnosť je oveľa vyššia – asi ±0,1°C. Skontroloval som 10 kópií laboratórnym teplomerom, ktorý prešiel metrologickou kontrolou...

Na rádiovom trhu som sa poobzeral po trojmiestne sedemsegmentové rádio. Kúpil som si mikrokontrolér Attiny2313 v balení SOIC, DS18B20, SMD odpor a SMD kondenzátor. Nakreslil som plošný spoj, nakreslil obvod podľa plošného spoja, napísal program, nahral do MK a:

A toto sa stalo:

Na indikátore je nalepená tónovacia fólia (bez nej nebolo možné indikátor správne nafotiť).

Veľkosť možno posúdiť aj podľa použitého indikátora:

schéma:

Niekoľko slov o schéme a programe. Kompaktnosť neprišla bez obetí. V obvode nie sú žiadne odpory obmedzujúce prúd, čo nie je úplne dobré. Na zvýšenie nosnosti sú indikačné katódy pripojené k dvom svorkám MK naraz.
V programe nie je nič originálne. Šablóna je pripravená pomocou sprievodcu od CVAVR, ostatné časti sú prevzaté z mojich teplomerových hodín. Použil som opravenú knižnicu DS18B20, respektíve je to súčet dvoch knižníc z CVAVR pre DS1820/DS18S20 a DS18B20, t.j. Ktorýkoľvek z vyššie uvedených snímačov možno použiť v teplomere. Presnejšie, nie viac ako 4 senzory v akejkoľvek kombinácii.
Poistky: MK je nakonfigurovaný na prevádzku z interného RC oscilátora na 4 MHz. CKSEL = 0010, SUT = 10, všetky ostatné = 1.

výsledok:
Nie som si istý, či je moja verzia teplomera so sedemsegmentovým ukazovateľom najmenšia.

Súbory:

- Doska plošných spojov vo formáte SL 5.0.

Nemáte prístup k sťahovaniu súborov z nášho servera - Firmvér MK.

Nemáte prístup k sťahovaniu súborov z nášho servera - Zdroje firmvéru.

Nemáte prístup k sťahovaniu súborov z nášho servera - Projekt pre Proteus.

V tomto článku preskúmame digitálny teplomer, postavený na mikrokontrolér Attiny2313, vybavené diaľkový digitálny senzor DS18B20. Rozsah merania teploty je od -55 do +125 stupňov Celzia, krok merania teploty je 0,1 stupňa. Obvod je veľmi jednoduchý, obsahuje minimum dielov a dá sa ľahko zostaviť vlastnými rukami.

Popis činnosti okruhu teplomeru

Domáci elektronický teplomer s diaľkovým senzorom postavené na všetkom známom. Mikroobvod DS18B20 od Dallasu funguje ako snímač teploty. V obvode teplomeru je možné použiť až 8 digitálnych snímačov. Mikrokontrolér komunikuje s DS18B20 prostredníctvom protokolu 1Wire.

Najprv sa vyhľadajú a inicializujú všetky pripojené snímače, následne sa z nich odčíta teplota a následne sa zobrazí na trojmiestnom sedemsegmentovom indikátore HL1. Indikátor je možné použiť so spoločnou katódou (CC) aj so spoločnou anódou (CA). Použil sa aj podobný ukazovateľ. Každý indikátor má svoj vlastný firmvér. Teplotu môžete merať doma aj vonku, na to musíte DS18B20 vytiahnuť von z okna.

Pre Attiny2313 musíte nastaviť poistky nasledovne (pre program

Okamžite sa zriekam všetkej zodpovednosti za vynaložený čas, peniaze, detaily atď.... Ak vám niečo nefunguje, zvaľte to na svoje krivé ruky.....

Nedávno som staval počítač s úplne pasívnym chladením. Aby bolo možné pohodlne sledovať teplotu procesora, bolo potrebné rýchlo zložiť teplomer. Všetky druhy programov ako „Everest“, „Aida“ a iné mi nevyhovovali z jednoduchého dôvodu: chcel som mať pod kontrolou teplotu aj pri vypnutom monitore. Alebo aj s úplne vypnutým monitorom. Bolo rozhodnuté zostaviť teplomer založený na digitálnom snímači DS18B20, lacnom mikrokontroléri AVR a sedemsegmentovom indikátore. Najprv som chcel zopakovať obvod teplomera podľa jednej z možností navrhovaných na internete. Ale po analýze diagramov zverejnených na internete som dospel k záveru, že si budem musieť vynájsť svoj vlastný „bicykel“.

Návrhy prezentované na internete mali niekoľko nevýhod, a to:
* nízka rýchlosť dynamického zobrazenia (50...100 hertzov), kvôli čomu je nepríjemné pozerať sa na indikátor; ak sa naň rýchlo pozriete, zdá sa, že čísla sa „pohybujú“;
* nie všetky návrhy dostatočne merali celý teplotný rozsah (od -55 do +125), boli napríklad také, ktoré nenamerali teploty pod nulou stupňov alebo nesprávne namerali teploty nad 100 stupňov;
* neprebehla kontrola kontrolného súčtu (CRC);
* spoločné kolíky segmentov boli pripojené k jednej nohe mikrokontroléra bez kľúčových tranzistorov, PREŤAŽUJÚCE PORTY MIKROKONTROLÉRA.

Ak sú porty MK preťažené, jas indikátora sa môže znížiť a nohy mikrokontroléra sa môžu tiež spáliť. Pred niekoľkými rokmi som zostavil teplomer pomocou ATtiny2313+DS18B20 pomocou schémy z internetu. Obvod bol bez kľúčových tranzistorov. Pri teplote 18 stupňov sa číslo „1“ jasne rozžiarilo a číslo „8“ svietilo výrazne slabšie, dúfam, že každý chápe, prečo sa všetko deje týmto spôsobom. Preto som si sľúbil, že v budúcnosti nebudem preťažovať nohy MK. Mimochodom, tu je fotka toho teplomera zostaveného podľa schémy z internetu; myslím, že nepotrebuje komentár:

Chcel som tiež urobiť niekoľko vylepšení:
* zobrazenie symbolu stupňa na ukazovateli (desatiny stupňa neboli pre mňa také kritické);
* hodiny mikrokontroléra z externého kremeňa, pretože protokol „1-Wire“, ktorý snímač používa, je rozhodujúci pre vytváranie časových intervalov (časových slotov), ​​takže som sa nechcel modliť za stabilitu vstavaných hodín generátor;
* zaviesť kontrolu kontrolného súčtu do programu, ak sa kontrolný súčet nezhoduje, zobrazí sa na indikátore: "Crc";
* pridať do obvodu diódu (na ochranu obvodu pred prepätím napájania);
* pri zapnutí napájania sa všetky segmenty rozsvietia na 1 sekundu (tzv. test segmentov);
* implementovať overenie kontrolného súčtu DS18B20.

Projekt som napísal v prostredí AVR Studio 5, funkcie pre prácu so snímačom som našiel niekde na internete a zvyšok som si prepísal po svojom, bohato komentoval zdrojový kód. Na konci článku je odkaz na stiahnutie firmvéru a zdrojového kódu.

Použil som sedemsegmentový indikátor pre 3 známe miesta, segmenty so spoločnou anódou. Aj v archíve (na konci článku) sú firmvéry pre indikátor so spoločnou katódou. Spoločné svorky segmentov som pripojil k dvom svorkám MK, zapojeným paralelne. Každý spoločný kolík segmentového indikátora teda využíva 2 kolíky MK na zvýšenie nosnosti kolíkov.

Použil som mikrokontrolér ATtiny2313A (môžete použiť aj ATtiny2313 alebo ATtiny2313L), s použitím takmer všetkých voľných nôh (okrem resetovacieho kolíka). Ak zostavíte teplomer na ATmega8, môžete pripojiť 3 alebo 4 nohy paralelne, aby ste zvýšili nosnosť portov.

Schéma zariadenia:

Prikladám fotky zloženého teplomera. Zatiaľ tu nie je žiadne puzdro, keďže teplomer bude zabudovaný v PC skrinke.

Indikácia.
Snímač teploty nie je pripojený alebo je na dátovom vedení skrat:

Chyba kontrolného súčtu (CRC):

Snímač teploty pripojený, teplota od -55 do -10 stupňov:

Snímač teploty pripojený, teplota od -9 do -1 stupňov:

Snímač teploty pripojený, teplota od 0 do 9 stupňov:

Snímač teploty pripojený, teplota od 10 do 99 stupňov:

Snímač teploty pripojený, teplota od 100 do 125 stupňov:

Dynamická frekvencia zobrazenia je niekoľko kilohertzov, takže blikanie nie je okom badateľné ani pri letmom pohľade na indikátor.
Pre tých, ktorí si chcú zopakovať dizajn, som zostavil niekoľko firmwarov pre rôzne quartz: 4 MHz, 8 MHz, 10 MHz, 12 MHz, 16 MHz.
Vyrobil som aj firmware pre indikátory so spoločnou anódou (OA) a spoločnou katódou (OC). Všetok firmvér je v archíve (pozri nižšie).

UPD
Aktualizovaný firmvér. Drobné opravy, drobné vychytávky. Hlavnými sú dátové typy stdint, flexibilná konfigurácia nôh pre segmenty. Všetky zmeny sú popísané v hlavičke zdroja.

Na internete je množstvo teplomerových diagramov pre AVR, ale ako vždy, chcete niečo vlastné... A tiež by ste si mali ponaťahovať mozog. Tento teplomer bol jedným z mojich prvých projektov.

Čo som chcel:

  • minimálne veľkosti (v rozumných medziach)
  • minimálne náklady
  • jednoduchosť dizajnu
  • vysoká opakovateľnosť
  • všestrannosť (viac o tom neskôr)

Čo sa stalo:

Po zhliadnutí podobných dizajnov a vyfajčení popisu plecháča, ktorý bol po ruke (ATtiny2313), som dospel k záveru, že je možné trochu zjednodušiť existujúce dizajny a mierne zlepšiť ich vlastnosti.

Diagram ukazuje druhú možnosť zapnutia snímača teploty, ak nechce pracovať cez jednovodičovú zbernicu (čo je veľmi zriedkavé). Upozorňujeme, že pull-up rezistor na kolíku 11 musí byť presne 4,7 kOhm. Zníženie alebo zvýšenie môže viesť k nestabilnej prevádzke snímača, ak je zapnutý v jednovodičovom obvode.

Ako vidíte, tento obvod sa líši od podobných v absencii tranzistorov na ovládanie segmentov. Obvod bol teda v porovnaní s podobnými obvodmi zjednodušený o 4 tranzistory a 4 odpory. Tu niektorí povedia: „to nie je možné – porty sú veľmi zaťažené!!!“. Prečítajte si o tomto ovládači " Jednosmerný prúd na I/O kolík - 40,0 mA V každom symbole máme 8 segmentov, každý 5 mA - ukazuje sa 40 mA !!!.

Teraz sa pozrime na grafy z rovnakého popisu:

Z grafov je zrejmé, že prúd môže dosiahnuť 60 mA a dokonca aj 80 mA na pin. No, nenechajme sa uniesť - 5 mA na segment (40 mA na symbol) nám stačí! Obmedzovacie odpory sú zvolené tak, aby produkovali prúd približne 5 mA na segment. V mojom obvode je 470 ohmov. Svetelnosť segmentov je výborná!!! Nechal som sa teda uniesť teóriou.

Cvičte!!!

Dosku s plošnými spojmi som nakreslil na základe ich úvah „čo najmenší, ale čo najjednoduchší“. Preto sa ukázalo, že má niekoľko skokanov...

Na obrázku je miesto pre kremeň - to je pre malú všestrannosť - mal som niekoľko kusov AT90S2313, ktoré nemajú vnútorný oscilátor. CRANK sa používa v kryte SOT-89. Ochranné zenerove diódy BZX79-C5V1 v kryte DO-35. Kondenzátory v napájacom filtri sú 10mkF * 16V tantalové (žiadne iné neboli nájdené), veľkosť 3528 (SMD-B). Zvyčajne ich neinštalujem, ale namiesto toho - 1 mkF * 50 V, veľkosť 1206. Neboli zaznamenané žiadne poruchy súvisiace s napájaním.

prázdna doska vyrobená "laserovou žehličkou"

zložená doska: pohľad zo strany na vodiče (chýba stabilizátor)

pohľad zo strany prvkov (indikátor nie je zapečatený)

Projekt bol zostavený po kúskoch, niektoré z hotových projektov z internetu, niektoré som pridal ja... Pôvodný nápad bol dynamický displej. Problémom bolo, že pri komunikácii s teplotným snímačom DS18B20 nastali momenty, kedy sa „snímanie“ indikácie zastavilo. Aktualizácia indikátora sa preto nerobila prerušeniami, ale v hlavnej programovej slučke a sem tam bola vložená aj do procedúry komunikácie so snímačom... Výhodou tohto spôsobu bola vysoká frekvencia aktualizácie, ktorá eliminovala tzv. problém s blikaním.

Skoro som zabudol - poistky pre normálnu prevádzku teplomera:

Tak sme to flashli, zapli... Hmm... funguje!!!

Ako teda vidíme, dostali sme pomerne jednoduché (o koľko jednoduchšie???) zariadenie, ktoré svojou veľkosťou nepresahuje veľkosť indikátora. Okrem toho je presnosť tiež vysoká: podľa popisu snímača - „presnosť ±0,5 °C od -10 °C do +85 °C“. Ako ukázala prax, presnosť je oveľa vyššia – asi ±0,1°C. Skontroloval som 10 kópií laboratórnym teplomerom, ktorý prešiel metrologickou kontrolou...


26.04.2014
sPlan je pohodlný nástroj na kreslenie elektronických obvodov. Má jednoduché a intuitívne rozhranie. Súčasťou programu je...

Veľmi pohodlný program na čítanie pdf Foxit Reader
26.04.2014
Foxit Reader - Kompaktný a rýchly program na čítanie súborov PDF. Môže slúžiť ako alternatíva k obľúbenému prehliadaču PDF - Adobe Reader....


22.04.2014
Proteus VSM je program na simuláciu mikrokontroléra. Podporuje MK: PIC, 8051, AVR, HC11, ARM7/LPC2000 a ďalšie bežné procesory....


01.04.2014
Stránka projektu, ktorá bola dlhodobo v zamrznutom stave, opäť začína pracovať s novým elánom, s novými článkami a...

Proteus 7.7 SP2 + Crack v1.0.2 + RUS
22.04.2014
Proteus VSM je program na simuláciu mikrokontroléra. Podporuje MK: PIC, 8051, AVR, HC11, ARM7/LPC2000 a ďalšie bežné procesory....

Splan 7.0.0.9 Rus + Portable + Viewer Final
26.04.2014
sPlan je pohodlný nástroj na kreslenie elektronických obvodov. Má jednoduché a intuitívne rozhranie. Súčasťou programu je...

Digitálna spájkovacia stanica pre domácich majstrov (ATmega8, C)
27.05.2012
Zloženie: ATmega8, LM358, IRFZ44, 7805, mostík, 13 rezistorov, jeden potenciometer, 2 elektrolyty, 4 kondenzátory, trojmiestne LED sedem segmentové...

© 2023 skudelnica.ru -- Láska, zrada, psychológia, rozvod, city, hádky