Termometri nuk është më i vogël në attiny2313.

Gjeni Në këtë artikull do të shqyrtojmë termometër dixhital , ndërtuar mbi mikrokontrolluesi Attiny2313 , i pajisur sensor dixhital në distancë DS18B20

. Gama e matjes së temperaturës është nga -55 në +125 gradë Celsius, hapi i matjes së temperaturës është 0.1 gradë. Qarku është shumë i thjeshtë, përmban një minimum pjesësh dhe mund të montohet lehtësisht me duart tuaja.

Përshkrimi i funksionimit të qarkut të termometrit Termometër elektronik shtëpiak me sensor telekomandë

ndërtuar mbi gjithçka që dihet. Mikroqarku DS18B20 nga Dallas vepron si sensor i temperaturës. Deri në 8 sensorë dixhitalë mund të përdoren në një qark termometri. Mikrokontrolluesi komunikon me DS18B20 nëpërmjet protokollit 1Wire.

Së pari, të gjithë sensorët e lidhur kërkohen dhe inicializohen, më pas lexohet temperatura prej tyre dhe më pas shfaqet në treguesin treshifror me shtatë segmente HL1. Treguesi mund të përdoret si me një katodë të përbashkët (CC) dhe një anodë të përbashkët (CA). Një tregues i ngjashëm është përdorur gjithashtu. Çdo tregues ka firmware-in e vet. Ju mund të matni temperaturën si në shtëpi ashtu edhe jashtë për ta bërë këtë, duhet të merrni DS18B20 jashtë dritares.

Për Attiny2313 ju duhet të vendosni siguresat si më poshtë (për programin Më duhej një termometër për inkubatorin dhe duke qenë se tashmë kam një termostat, do ta bëj vetëm termometrin vetë. Në rastin tim, unë do të përdor një tregues 3-shifror në vend të një treguesi 4-shifror. Le të flasim pak për vetë treguesit dixhitalë. Treguesi me shtatë segmente përbëhet nga shtatë elementë tregues (segmente), të cilët ndizen dhe fiken individualisht nga furnizimi me energji elektrike. Duke i përfshirë në kombinime të ndryshme, mund të krijoni imazhe numrash prej tyre. Në treguesit modernë, LED-të bëhen në formën e segmenteve, kështu që treguesit LED kanë një formë jashtëzakonisht të thjeshtë - sa më pak LED të ndryshëm, aq më e lirë është pajisja. Segmentet përcaktohen me shkronja nga A te G

  • . Segmenti i tetë është një pikë. Këtu janë parametrat e treguesit që përdoret në termometër:
  • Tensioni maksimal përpara (në rrymë 20 mA):.....2,5 V
  • Rryma maksimale përpara: .....25-30 mA
  • Tensioni maksimal i kundërt: .....5 V
  • Rryma e kundërt (në 5V): .....10 µA
  • Shpërndarja e fuqisë: .....150 mW
  • Rryma maksimale e impulsit përpara: .....140-160 mA

Tani le të fillojmë të bëjmë vetë termometrin. Le të studiojmë diagramin e qarkut.

Për ta bërë atë do të na duhen:

>>> Treguesi 4-shifror me shtatë segmente 1 copë
>>> Kondensator qeramik 0,1 mikrofarad 1 pc.
>>> Kondensator elektrolitik 100 uF 16V (10 është i mundur)
>>> Rezistenca 100-200 ohm 0,125 W 8 copë.
>>> Mikrokontrolluesi AtTiny2313 1 pc.
>>> Paneli 20 këmbë 1 pc.
>>> Sensori DS18B20 1 pc.
>>> Tela, hekur saldimi, duar të arta))

Pasi të kemi mbledhur të gjithë përbërësit e nevojshëm të radios, ne do të fillojmë prodhimin e një termometri mikrokontrollues. Ngjitni rezistorët në tregues.

Ne furnizojmë me energji elektrike - dhe ju keni mbaruar! Gjithçka që mbetet është të ndezni mikrokontrolluesin. Firmware është i mundur. Arkivi përmban dy firmware, për një katodë të përbashkët dhe për një anodë të përbashkët.

Për të ndezur këtë MK na duhet. Si ta bëni, shihni lidhjen. Hapni PonyProg (nëse keni programuesin nga artikulli i mësipërm) dhe ngarkoni firmuerin. Kur ngarkoni firmuerin, mos harroni të shtypni butonin " LEXO“Sigurat i vendosëm si në foton më poshtë:

Gjithashtu një nga faktorët e rëndësishëm: kur vendosni siguresat, mos harroni të shtypni " LEXO" (Lexo). Dhe ruani firmuerin, hiqni mikrokontrolluesin nga programuesi dhe futeni në pajisje.

Ne furnizojmë qarkun me energji - dhe voila! Gjithçka funksionon. Nuk ka tabelë të qarkut të shtypur për qarkun, pasi për shkak të thjeshtësisë së tij nuk ka kuptim ta vizatoni atë, përafërsisht, nga pesë komponentë radio; Duke mos llogaritur rezistorët, sepse në përgjithësi është më e lehtë t'i bashkoni ato atje. Një video e këtij sensori të temperaturës në funksion mund të shihet më poshtë:

Si funksionon termometri ATTINY

Pajisja është vërtet aq e thjeshtë sa është e përkryer për kontrollorët fillestarë, si projekti i parë praktik në AtTiny. isha me ty Vlim.

Diskutoni artikullin TERMOMETER MBI ATTINY

Unë heq dorë menjëherë nga çdo përgjegjësi për kohën, paratë, detajet, etj. që keni shpenzuar... Nëse diçka nuk ju shkon, atëherë fajësojeni duart tuaja të shtrembër ...

Kohët e fundit po ndërtoj një kompjuter me ftohje plotësisht pasive. Për të monitoruar me lehtësi temperaturën e procesorit, ishte e nevojshme të montoni shpejt një termometër. Të gjitha llojet e programeve si "Everest", "Aida" dhe të tjera nuk ishin të përshtatshme për mua për një arsye të thjeshtë: doja të kontrolloja temperaturën edhe kur monitori ishte i fikur. Ose edhe me monitorin plotësisht të fikur. U vendos që të mblidhej një termometër i bazuar në një sensor dixhital DS18B20, një mikrokontrollues të lirë AVR dhe një tregues me shtatë segmente. Në fillim doja të përsërisja qarkun e termometrit sipas një prej opsioneve të propozuara në internet. Por pasi analizova diagramet e postuara në internet, arrita në përfundimin se do të duhej të shpikja "biçikletën" timen.

Modelet e paraqitura në internet kishin një sërë disavantazhesh, përkatësisht:
* shpejtësia e ulët e shfaqjes dinamike (50 ... 100 hertz), për shkak të së cilës bëhet e pakëndshme të shikosh treguesin nëse e shikon shpejt, duket se numrat "lëvizin";
* jo të gjitha modelet matën në mënyrë adekuate të gjithë gamën e temperaturës (nga -55 në +125 për shembull, kishte modele që nuk matën temperaturat nën zero gradë, ose temperaturat e matura gabimisht mbi 100 gradë);
* nuk kishte kontroll të shumës së kontrollit (CRC);
* kunjat e zakonshme të segmenteve u lidhën me njërën këmbë të mikrokontrolluesit pa tranzistorë kyç, duke mbingarkuar PORTET E MIKROKONTROLLISIT.

Nëse portat MK janë të mbingarkuara, shkëlqimi i treguesit mund të ulet dhe këmbët e mikrokontrolluesit gjithashtu mund të digjen. Disa vjet më parë mblodha një termometër duke përdorur një ATtiny2313+DS18B20 duke përdorur një diagram nga Interneti. Qarku ishte pa tranzistorë kyç. Në një temperaturë prej 18 gradë, numri "1" shkëlqeu me shkëlqim, dhe numri "8" shkëlqeu dukshëm më i zbehtë, shpresoj se të gjithë e kuptojnë pse gjithçka ndodh në këtë mënyrë. Prandaj, i premtova vetes që të mos mbingarkoj këmbët MK në të ardhmen. Meqë ra fjala, këtu është një foto e atij termometri të montuar sipas një diagrami nga interneti, mendoj se nuk ka nevojë për komente:

Unë gjithashtu doja të bëja disa përmirësime:
* shfaqni simbolin e shkallës në tregues (të dhjetat e shkallës nuk ishin aq kritike për mua);
* ora e mikrokontrolluesit nga një kuarc i jashtëm, pasi protokolli "1-Wire" që përdor sensori është kritik për formimin e intervaleve kohore (sferat kohore), kështu që nuk doja të lutem për stabilitetin e integruar gjenerator i orës;
* futni një kontroll të kontrollit në program, nëse shuma e kontrollit nuk përputhet, shfaqet në treguesin: "Crc";
* shtoni një diodë në qark (për të mbrojtur qarkun nga ndryshimi i energjisë);
* kur aplikohet energjia, të gjithë segmentet ndriçohen për 1 sekondë (i ashtuquajturi test i segmentit);
* Zbatoni verifikimin e shumës së kontrollit DS18B20.

E shkrova projektin në mjedisin AVR Studio 5, gjeta funksione për të punuar me sensorin diku në internet dhe e rishkrova pjesën tjetër në mënyrën time, duke komentuar me bollëk kodin burimor. Në fund të artikullit ka një lidhje për të shkarkuar firmuerin dhe kodin burimor.

Kam përdorur një tregues me shtatë segmente për 3 vendndodhje të njohura, segmente me një anodë të përbashkët. Gjithashtu në arkiv (në fund të artikullit) ka firmware për një tregues me një katodë të përbashkët. I lidha terminalet e përbashkëta të segmenteve me dy terminale të MK, të lidhur paralelisht. Kështu, çdo kunj i zakonshëm i treguesit të segmentit përdor 2 kunja MK për të rritur kapacitetin e ngarkesës së kunjave.

Kam përdorur mikrokontrolluesin ATtiny2313A (mund të përdorni gjithashtu ATtiny2313 ose ATtiny2313L), duke përdorur pothuajse të gjitha këmbët e lira (përveç kunjit të rivendosjes). Nëse montoni një termometër në ATmega8, mund të lidhni 3 ose 4 këmbë paralelisht për të rritur kapacitetin e ngarkesës së portave.

Diagrami i pajisjes:

Po bashkangjit fotot e termometrit të montuar. Ende nuk ka asnjë rast, pasi termometri do të futet në kutinë e PC-së.

Indikacion.
Sensori i temperaturës nuk është i lidhur ose ka një qark të shkurtër në linjën e të dhënave:

Gabimi i shumës së kontrollit (CRC):

Sensori i temperaturës i lidhur, temperatura nga -55 në -10 gradë:

Sensori i temperaturës i lidhur, temperatura nga -9 në -1 gradë:

Sensori i temperaturës i lidhur, temperatura nga 0 në 9 gradë:

Sensori i temperaturës i lidhur, temperatura nga 10 në 99 gradë:

Sensori i temperaturës i lidhur, temperatura nga 100 në 125 gradë:

Frekuenca dinamike e ekranit është disa kilohertz, kështu që dridhja nuk është e dukshme për syrin edhe me një vështrim të shpejtë në tregues.
Për ata që duan të përsërisin dizajnin, kam përpiluar disa firmware për kuarc të ndryshëm: 4 MHz, 8 MHz, 10 MHz, 12 MHz, 16 MHz.
Kam bërë gjithashtu firmware për treguesit me një anodë të përbashkët (OA) dhe një katodë të përbashkët (OC). I gjithë firmware është në arkiv (shih më poshtë).

UPD
Përditësuar firmware. Rregullime të vogla, të mira të vogla. Ato kryesore janë llojet e të dhënave stdint, konfigurimi fleksibël i këmbëve për segmentet. Të gjitha ndryshimet përshkruhen në kokën e burimit.

Më duhej një termometër për inkubatorin dhe duke qenë se tashmë kam një termostat, do ta bëj vetëm termometrin vetë. Në rastin tim, unë do të përdor një tregues 3-shifror në vend të një treguesi 4-shifror. Le të flasim pak për vetë treguesit dixhitalë. Treguesi me shtatë segmente përbëhet nga shtatë elementë tregues (segmente), të cilët ndizen dhe fiken individualisht nga furnizimi me energji elektrike. Duke i përfshirë në kombinime të ndryshme, mund të krijoni imazhe numrash prej tyre. Në treguesit modernë, LED-të bëhen në formën e segmenteve, kështu që treguesit LED kanë një formë jashtëzakonisht të thjeshtë - sa më pak LED të ndryshëm, aq më e lirë është pajisja. Segmentet përcaktohen me shkronja nga Më duhej një termometër për inkubatorin dhe duke qenë se tashmë kam një termostat, do ta bëj vetëm termometrin vetë. Në rastin tim, unë do të përdor një tregues 3-shifror në vend të një treguesi 4-shifror. Le të flasim pak për vetë treguesit dixhitalë. Treguesi me shtatë segmente përbëhet nga shtatë elementë tregues (segmente), të cilët ndizen dhe fiken individualisht nga furnizimi me energji elektrike. Duke i përfshirë në kombinime të ndryshme, mund të krijoni imazhe numrash prej tyre. Në treguesit modernë, LED-të bëhen në formën e segmenteve, kështu që treguesit LED kanë një formë jashtëzakonisht të thjeshtë - sa më pak LED të ndryshëm, aq më e lirë është pajisja. Segmentet përcaktohen me shkronja nga A te. Segmenti i tetë është një pikë. Këtu janë parametrat e treguesit që përdoret në termometër:
  • . Segmenti i tetë është një pikë. Këtu janë parametrat e treguesit që përdoret në termometër:
  • Tensioni maksimal përpara (në rrymë 20 mA):.....2,5 V
  • Rryma maksimale përpara: .....25-30 mA
  • Tensioni maksimal i kundërt: .....5 V
  • Rryma e kundërt (në 5V): .....10 µA
  • Shpërndarja e fuqisë: .....150 mW
  • Rryma maksimale e impulsit përpara: .....140-160 mA

Tani le të fillojmë të bëjmë vetë termometrin. Le të studiojmë diagramin e qarkut.

Për ta bërë atë do të na duhen:

>>> Treguesi 4-shifror me shtatë segmente 1 copë
>>> Kondensator qeramik 0,1 mikrofarad 1 pc.
>>> Kondensator elektrolitik 100 uF 16V (10 është i mundur)
>>> Rezistenca 100-200 ohm 0,125 W 8 copë.
>>> Mikrokontrolluesi AtTiny2313 1 pc.
>>> Paneli 20 këmbë 1 pc.
>>> Sensori DS18B20 1 pc.
>>> Tela, hekur saldimi, duar të arta))

Pasi të kemi mbledhur të gjithë përbërësit e nevojshëm të radios, ne do të fillojmë prodhimin e një termometri mikrokontrollues. Ngjitni rezistorët në tregues.

Ne furnizojmë me energji elektrike - dhe ju keni mbaruar! Gjithçka që mbetet është të ndezni mikrokontrolluesin. Firmware është i mundur. Arkivi përmban dy firmware, për një katodë të përbashkët dhe për një anodë të përbashkët.

Për të ndezur këtë MK ne kemi nevojë për një programues AVR. LEXO“Sigurat i vendosëm si në foton më poshtë:

Gjithashtu një nga faktorët e rëndësishëm: kur vendosni siguresat, mos harroni të shtypni " LEXO" (Lexo). Dhe ruani firmuerin, hiqni mikrokontrolluesin nga programuesi dhe futeni në pajisje.

Si ta bëni, shihni lidhjen. Hapni PonyProg (nëse keni programuesin nga artikulli i mësipërm) dhe ngarkoni firmuerin. Kur ngarkoni firmuerin, mos harroni të shtypni butonin "

Si funksionon termometri ATTINY

Ne furnizojmë qarkun me energji - dhe voila! Gjithçka funksionon. Nuk ka tabelë të qarkut të shtypur për qarkun, pasi për shkak të thjeshtësisë së tij nuk ka kuptim ta vizatoni atë, përafërsisht, nga pesë komponentë radio; Duke mos llogaritur rezistorët, sepse në përgjithësi është më e lehtë t'i bashkoni ato atje. Një video e këtij sensori të temperaturës në funksion mund të shihet më poshtë: Vlim.

Pajisja është vërtet aq e thjeshtë sa është e përkryer për kontrollorët fillestarë, si projekti i parë praktik në AtTiny. isha me ty
“Termometer: nuk mund të jetë më i vogël” është titulli i artikullit në faqen e internetit arv.radioliga.com. E pashë diagramin e vendosur në faqen e treguar shumë kohë më parë, por u interesova për të kur një nga bashkëqytetarët e forumit kishte pyetje me këtë termometër "të vogël". Për të qenë më i saktë, u interesova jo aq shumë për diagramin sa për dimensionet e termometrit. Autori ka një termometër të montuar në një tabelë me përmasa 50*22 mm.

A nuk ka vërtet gjë të tillë si më pak?

Disa fjalë për diagramin dhe programin. Kompaktësia nuk ka ardhur pa sakrifica. Nuk ka rezistenca kufizuese të rrymës në qark, gjë që nuk është plotësisht e mirë. Për të rritur kapacitetin e ngarkesës, katoda treguese lidhen me dy terminale të MK menjëherë.
Nuk ka asgjë origjinale në program. Shablloni është përgatitur duke përdorur magjistarin nga CVAVR, pjesa tjetër e pjesëve janë marrë nga ora ime e termometrit. Kam përdorur bibliotekën e korrigjuar DS18B20, ose më saktë është shuma e dy bibliotekave nga CVAVR për DS1820/DS18S20 dhe DS18B20, d.m.th. Çdo nga sensorët e mësipërm mund të përdoret në një termometër. Më saktësisht, jo më shumë se 4 sensorë në çdo kombinim.
Siguresat: MK është konfiguruar të funksionojë nga një oshilator i brendshëm RC në 4 MHz. CKSEL = 0010, SUT = 10, të gjitha të tjerat = 1.



Artikuj të ngjashëm: