Ang thermometer ay hindi mas maliit sa Attiny2313. Hindi maaaring mas maliit ang thermometer sa Attiny2313 Paglalarawan ng pagpapatakbo ng circuit ng thermometer

bahay / dating

Mayroong maraming mga diagram ng thermometer para sa AVR sa Internet, ngunit gaya ng dati, gusto mo ng sarili mong bagay... At dapat mo ring i-stretch ang iyong mga utak. Ang thermometer na ito ay isa sa aking mga unang proyekto.

Ang gusto ko:

  • pinakamababang laki (sa loob ng makatwirang limitasyon)
  • pinakamababang gastos
  • pagiging simple ng disenyo
  • mataas na repeatability
  • versatility (higit pa sa na mamaya)

Anong nangyari:

Matapos tingnan ang mga katulad na disenyo at paninigarilyo ng isang paglalarawan ng tinny na nasa kamay (ATtiny2313), dumating ako sa konklusyon na posible na medyo gawing simple ang mga umiiral na disenyo at bahagyang mapabuti ang kanilang mga katangian.

Ipinapakita ng diagram ang pangalawang opsyon para sa pag-on ng sensor ng temperatura kung ayaw nitong gumana sa pamamagitan ng single-wire bus (na napakabihirang). Mangyaring tandaan na ang pull-up na risistor sa pin 11 ay dapat na eksaktong 4.7 kOhm. Ang pagbaba o pagtaas ay maaaring humantong sa hindi matatag na operasyon ng sensor kung naka-on sa isang single-wire circuit.

Tulad ng nakikita mo, ang circuit na ito ay naiiba sa mga katulad sa kawalan ng mga transistor para sa pagkontrol sa mga segment. Kaya, ang circuit ay pinasimple ng 4 transistors at 4 resistors, kumpara sa mga katulad na circuits. Dito sasabihin ng ilan: "hindi ito posible - may malaking kargada sa mga port!!!" Nabasa namin sa controller na ito " DC Current bawat I/O Pin - 40.0 mA". Mayroon kaming 8 mga segment sa bawat simbolo, 5 mA bawat isa - lumalabas na 40 mA!!!.

Ngayon tingnan natin ang mga graph mula sa parehong paglalarawan:

Ito ay malinaw mula sa mga graph na ang kasalukuyang ay maaaring umabot sa 60 mA at kahit na 80 mA bawat pin. Buweno, huwag tayong madala - 5 mA bawat segment (40 mA bawat simbolo) ay sapat na para sa atin! Ang mga naglilimita sa resistors ay pinili upang makabuo ng isang kasalukuyang ng humigit-kumulang 5 mA bawat segment. Sa aking circuit mayroong 470 Ohms. Ang liwanag ng mga segment ay napakahusay!!! Kaya, nadala ako sa teorya.

Magsanay!!!

Iginuhit ko ang naka-print na circuit board batay sa kanilang mga pagsasaalang-alang na "maliit hangga't maaari, ngunit kasing simple hangga't maaari." Samakatuwid, ito ay may ilang mga jumper...

Sa larawan mayroong isang lugar para sa kuwarts - ito ay para sa isang maliit na kagalingan sa maraming bagay - Mayroon akong ilang mga piraso ng AT90S2313 na walang panloob na oscillator. Ang CRANK ay ginagamit sa SOT-89 housing. Mga proteksiyon na zener diode BZX79-C5V1 sa DO-35 housing. Ang mga capacitor sa power filter ay 10mkF * 16V tantalum (walang nahanap na iba), laki 3528 (SMD-B). Karaniwang hindi ko ini-install ang mga ito, ngunit sa halip - 1mkF * 50V size 1206. Walang napansing mga aberya na nauugnay sa kuryente.

blangkong board na ginawa ng "laser iron"

assembled board: tingnan mula sa gilid ng mga conductor (wala ang stabilizer)

tingnan mula sa gilid ng mga elemento (hindi selyado ang indicator)

Ang proyekto ay pinagsama-sama, ang ilan ay mula sa mga yari na proyekto mula sa Internet, ang ilan ay idinagdag ko... Ang orihinal na ideya ay isang dynamic na display. Ang problema ay habang nakikipag-usap sa sensor ng temperatura ng DS18B20, lumitaw ang mga sandali nang huminto ang "pag-scan" ng indikasyon. Samakatuwid, ang pag-update ng tagapagpahiwatig ay ginawa hindi sa pamamagitan ng mga pagkagambala, ngunit sa pangunahing loop ng programa, at ipinasok din dito at doon sa pamamaraan para sa pakikipag-usap sa sensor... Ang bentahe ng pamamaraang ito ay ang mataas na dalas ng pag-update, na nag-alis ng pagkutitap na problema.

Halos nakalimutan ko - mga piyus para sa normal na operasyon ng thermometer:

So, pina-flash namin, binuksan... Hmm... it works!!!

Kaya, tulad ng nakikita natin, nakakuha kami ng isang medyo simple (gaano mas simple???) na aparato, na sa laki ay hindi lalampas sa laki ng tagapagpahiwatig. Bilang karagdagan, ang katumpakan ay mataas din: ayon sa paglalarawan ng sensor, "± 0.5°C katumpakan mula -10°C hanggang +85°C." Tulad ng ipinakita ng pagsasanay, ang katumpakan ay mas mataas - mga ±0.1°C. Sinuri ko ang 10 kopya gamit ang isang thermometer ng laboratoryo na pumasa sa metrological control...

Sa radio market, tumingin ako sa isang three-digit seven-segment na radyo. Bumili ako ng Attiny2313 microcontroller sa isang SOIC package, DS18B20, isang SMD risistor at isang SMD capacitor. Gumuhit ako ng isang naka-print na circuit board, gumuhit ng isang circuit batay sa naka-print na circuit board, nagsulat ng isang programa, na-upload ito sa MK at:

At ito ang nangyari:

Ang isang tint film ay nakadikit sa indicator (hindi posible na kunan ng larawan ang indicator nang maayos kung wala ito).

Ang laki ay maaari ding hatulan ng indicator na ginamit:

Scheme:

Ilang salita tungkol sa diagram at sa programa. Ang pagiging compact ay hindi dumating nang walang sakripisyo. Walang mga kasalukuyang naglilimita sa mga resistensya sa circuit, na hindi lubos na mabuti. Upang madagdagan ang kapasidad ng pag-load, ang mga cathode ng indicator ay konektado sa dalawang terminal ng MK nang sabay-sabay.
Walang orihinal sa programa. Ang template ay inihanda gamit ang wizard mula sa CVAVR, ang iba pang bahagi ay kinuha mula sa aking thermometer clock. Ginamit ko ang naitama na library ng DS18B20, o sa halip ito ay ang kabuuan ng dalawang aklatan mula sa CVAVR para sa DS1820/DS18S20 at DS18B20, i.e. Ang alinman sa mga sensor sa itaas ay maaaring gamitin sa isang thermometer. Mas tiyak, hindi hihigit sa 4 na sensor sa anumang kumbinasyon.
Mga Piyus: Ang MK ay naka-configure upang gumana mula sa isang panloob na RC oscillator sa 4 MHz. CKSEL = 0010, SUT = 10, lahat ng iba pa = 1.

Resulta:
Hindi ako sigurado kung ang bersyon ko ng thermometer na gumagamit ng seven-segment indicator ang pinakamaliit.

Mga file:

- Naka-print na circuit board sa SL 5.0 na format.

Wala kang access upang mag-download ng mga file mula sa aming server - MK firmware.

Wala kang access upang mag-download ng mga file mula sa aming server - Mga mapagkukunan ng firmware.

Wala kang access upang mag-download ng mga file mula sa aming server - Proyekto para sa Proteus.

Sa artikulong ito susuriin natin digital na thermometer, binuo sa microcontroller Attiny2313, may gamit remote digital sensor DS18B20. Ang hanay ng pagsukat ng temperatura ay mula -55 hanggang +125 degrees Celsius, ang hakbang sa pagsukat ng temperatura ay 0.1 degree. Ang circuit ay napaka-simple, naglalaman ng isang minimum na bahagi at madaling tipunin gamit ang iyong sariling mga kamay.

Paglalarawan ng pagpapatakbo ng thermometer circuit

Gawang bahay na electronic thermometer na may remote sensor binuo sa lahat ng nalalaman. Ang DS18B20 microcircuit mula sa Dallas ay gumaganap bilang isang sensor ng temperatura. Hanggang 8 digital sensor ang maaaring gamitin sa isang thermometer circuit. Nakikipag-ugnayan ang microcontroller sa DS18B20 sa pamamagitan ng 1Wire protocol.

Una, lahat ng nakakonektang sensor ay hinanap at pinasimulan, pagkatapos ay binabasa ang temperatura mula sa kanila at pagkatapos ay ipinapakita sa tatlong-digit na pitong-segment na indicator na HL1. Ang indicator ay maaaring gamitin sa parehong common cathode (CC) at common anode (CA). Ang isang katulad na tagapagpahiwatig ay ginamit din. Ang bawat tagapagpahiwatig ay may sariling firmware. Maaari mong sukatin ang temperatura sa bahay at sa labas; upang gawin ito, kailangan mong kunin ang DS18B20 sa labas ng bintana.

Para sa Attiny2313 kailangan mong itakda ang mga piyus bilang mga sumusunod (para sa programa

Agad kong itinatakwil ang lahat ng pananagutan para sa oras, pera, detalye, atbp. na iyong ginugol... Kung ang isang bagay ay hindi gumagana para sa iyo, pagkatapos ay sisihin ito sa iyong mga baluktot na kamay.....

Kamakailan ay gumagawa ako ng isang computer na may ganap na passive cooling. Upang maginhawang masubaybayan ang temperatura ng processor, kinakailangan upang mabilis na mag-ipon ng isang thermometer. Ang lahat ng uri ng mga programa tulad ng "Everest", "Aida", at iba pa ay hindi angkop para sa akin para sa isang simpleng dahilan: Gusto kong kontrolin ang temperatura kahit na ang monitor ay naka-off. O kahit na ang monitor ay ganap na naka-off. Napagpasyahan na mag-assemble ng thermometer batay sa isang DS18B20 digital sensor, isang murang AVR microcontroller, at isang seven-segment indicator. Sa una gusto kong ulitin ang circuit ng thermometer ayon sa isa sa mga opsyon na iminungkahi sa Internet. Ngunit pagkatapos pag-aralan ang mga diagram na nai-post sa Internet, dumating ako sa konklusyon na kailangan kong mag-imbento ng sarili kong "bisikleta."

Ang mga disenyo na ipinakita sa Internet ay may ilang mga kawalan, katulad:
* mababang bilis ng dynamic na pagpapakita (50...100 hertz), dahil sa kung saan nagiging hindi komportable na tingnan ang tagapagpahiwatig; kung mabilis mong sumulyap dito, tila ang mga numero ay "gumagalaw";
* hindi lahat ng disenyo ay sapat na nasukat ang buong hanay ng temperatura (mula -55 hanggang +125); halimbawa, may mga disenyo na hindi sumusukat sa temperatura sa ibaba ng zero degrees, o hindi tama ang pagsukat ng mga temperatura sa itaas ng 100 degrees;
* walang checksum check (CRC);
* ang mga karaniwang pin ng mga segment ay konektado sa isang binti ng microcontroller na walang key transistors, SOBRA ANG MGA MICROCONTROLLER PORTS.

Kung ang mga MK port ay na-overload, ang liwanag ng indicator ay maaaring bumaba, at ang mga binti ng microcontroller ay maaari ring masunog. Ilang taon na ang nakararaan nag-assemble ako ng thermometer gamit ang ATtiny2313+DS18B20 gamit ang diagram mula sa Internet. Ang circuit ay walang key transistors. Sa temperatura na 18 degrees, ang numerong "1" ay kumikinang nang maliwanag, at ang numerong "8" ay kumikinang na kapansin-pansing lumabo, inaasahan kong maunawaan ng lahat kung bakit nangyayari ang lahat sa ganitong paraan. Samakatuwid, ipinangako ko sa aking sarili na hindi mag-overload ang mga binti ng MK sa hinaharap. Sa pamamagitan ng paraan, narito ang isang larawan ng thermometer na iyon, na binuo ayon sa isang diagram mula sa internet; Sa palagay ko hindi nito kailangan ng anumang mga komento:

Nais ko ring gumawa ng ilang mga pagpapabuti:
* ipakita ang simbolo ng degree sa indicator (sampu ng isang degree ay hindi masyadong kritikal sa akin);
* orasan ang microcontroller mula sa isang panlabas na kuwarts, dahil ang "1-Wire" protocol na ginagamit ng sensor ay kritikal sa pagbuo ng mga agwat ng oras (mga puwang ng oras), kaya hindi ko nais na manalangin para sa katatagan ng built-in na orasan generator;
* Magpakilala ng checksum check sa programa, kung hindi tumugma ang checksum, ipakita sa indicator: "Crc";
* magdagdag ng diode sa circuit (upang protektahan ang circuit mula sa power reversal);
* kapag ang kapangyarihan ay inilapat, ang lahat ng mga segment ay iluminado para sa 1 segundo (ang tinatawag na segment test);
* ipatupad ang DS18B20 checksum verification.

Isinulat ko ang proyekto sa kapaligiran ng AVR Studio 5, natagpuan ang mga pag-andar para sa pagtatrabaho sa sensor sa isang lugar sa Internet, at muling isinulat ang natitira sa aking sariling paraan, sagana na nagkomento sa source code. Sa dulo ng artikulo mayroong isang link upang i-download ang firmware at source code.

Gumamit ako ng pitong-segment na indicator para sa 3 pamilyar na lokasyon, mga segment na may karaniwang anode. Gayundin sa archive (sa dulo ng artikulo) mayroong mga firmware para sa isang tagapagpahiwatig na may isang karaniwang katod. Ikinonekta ko ang mga karaniwang terminal ng mga segment sa dalawang terminal ng MK, konektado nang magkatulad. Kaya, ang bawat karaniwang pin ng indicator ng segment ay gumagamit ng 2 MK pin upang madagdagan ang kapasidad ng pagkarga ng mga pin.

Ginamit ko ang ATtiny2313A microcontroller (maaari mo ring gamitin ang ATtiny2313 o ATtiny2313L), gamit ang halos lahat ng libreng binti (maliban sa reset pin). Kung mag-assemble ka ng thermometer sa ATmega8, maaari mong ikonekta ang 3 o 4 na paa nang magkatulad upang madagdagan ang kapasidad ng pagkarga ng mga port.

Diagram ng device:

Nag-a-attach ako ng mga larawan ng naka-assemble na thermometer. Wala pang kaso, dahil ang thermometer ay ilalagay sa PC case.

Indikasyon.
Ang sensor ng temperatura ay hindi konektado, o mayroong isang maikling circuit sa linya ng data:

Checksum error (CRC):

Nakakonekta ang sensor ng temperatura, temperatura mula -55 hanggang -10 degrees:

Nakakonekta ang sensor ng temperatura, temperatura mula -9 hanggang -1 degrees:

Nakakonekta ang sensor ng temperatura, temperatura mula 0 hanggang 9 degrees:

Nakakonekta ang sensor ng temperatura, temperatura mula 10 hanggang 99 degrees:

Nakakonekta ang sensor ng temperatura, temperatura mula 100 hanggang 125 degrees:

Ang dynamic na dalas ng pagpapakita ay ilang kilohertz, kaya ang pagkutitap ay hindi kapansin-pansin sa mata kahit na sa isang mabilis na sulyap sa indicator.
Para sa mga gustong ulitin ang disenyo, nag-compile ako ng ilang firmware para sa iba't ibang quartz: 4 MHz, 8 MHz, 10 MHz, 12 MHz, 16 MHz.
Gumawa din ako ng firmware para sa mga indicator na may common anode (OA) at common cathode (OC). Ang lahat ng firmware ay nasa archive (tingnan sa ibaba).

UPD
Na-update ang firmware. Maliit na pag-aayos, menor de edad na goodies. Ang mga pangunahing ay mga uri ng data ng stdint, nababaluktot na pagsasaayos ng mga binti para sa mga segment. Ang lahat ng mga pagbabago ay inilarawan sa source header.

Mayroong maraming mga diagram ng thermometer para sa AVR sa Internet, ngunit gaya ng dati, gusto mo ng sarili mong bagay... At dapat mo ring i-stretch ang iyong mga utak. Ang thermometer na ito ay isa sa aking mga unang proyekto.

Ang gusto ko:

  • pinakamababang laki (sa loob ng makatwirang limitasyon)
  • pinakamababang gastos
  • pagiging simple ng disenyo
  • mataas na repeatability
  • versatility (higit pa sa na mamaya)

Anong nangyari:

Matapos tingnan ang mga katulad na disenyo at paninigarilyo ng isang paglalarawan ng tinny na nasa kamay (ATtiny2313), dumating ako sa konklusyon na posible na medyo gawing simple ang mga umiiral na disenyo at bahagyang mapabuti ang kanilang mga katangian.

Ipinapakita ng diagram ang pangalawang opsyon para sa pag-on ng sensor ng temperatura kung ayaw nitong gumana sa pamamagitan ng single-wire bus (na napakabihirang). Mangyaring tandaan na ang pull-up na risistor sa pin 11 ay dapat na eksaktong 4.7 kOhm. Ang pagbaba o pagtaas ay maaaring humantong sa hindi matatag na operasyon ng sensor kung naka-on sa isang single-wire circuit.

Tulad ng nakikita mo, ang circuit na ito ay naiiba sa mga katulad sa kawalan ng mga transistor para sa pagkontrol sa mga segment. Kaya, ang circuit ay pinasimple ng 4 transistors at 4 resistors, kumpara sa mga katulad na circuits. Dito sasabihin ng ilan: "hindi ito posible - maraming load sa mga port!!!". Basahin ang controller na ito " DC Current bawat I/O Pin - 40.0 mA". Mayroon kaming 8 mga segment sa bawat simbolo, 5 mA bawat isa - lumalabas na 40 mA !!!.

Ngayon tingnan natin ang mga graph mula sa parehong paglalarawan:

Ito ay malinaw mula sa mga graph na ang kasalukuyang ay maaaring umabot sa 60 mA at kahit na 80 mA bawat pin. Buweno, huwag tayong madala - 5 mA bawat segment (40 mA bawat simbolo) ay sapat na para sa atin! Ang mga naglilimita sa resistors ay pinili upang makabuo ng isang kasalukuyang ng humigit-kumulang 5 mA bawat segment. Sa aking circuit mayroong 470 Ohms. Ang liwanag ng mga segment ay napakahusay!!! Kaya, nadala ako sa teorya.

Magsanay!!!

Iginuhit ko ang naka-print na circuit board batay sa kanilang mga pagsasaalang-alang na "maliit hangga't maaari, ngunit kasing simple hangga't maaari." Kaya pala nagkaroon ito ng ilang jumper...

Sa larawan mayroong isang lugar para sa kuwarts - ito ay para sa isang maliit na kagalingan sa maraming bagay - Mayroon akong ilang mga piraso ng AT90S2313 na walang panloob na oscillator. Ang CRANK ay ginagamit sa SOT-89 housing. Mga proteksiyon na zener diode BZX79-C5V1 sa DO-35 housing. Ang mga capacitor sa power filter ay 10mkF * 16V tantalum (walang nahanap na iba), laki 3528 (SMD-B). Karaniwang hindi ko ini-install ang mga ito, ngunit sa halip - 1mkF * 50V size 1206. Walang napansing mga aberya na nauugnay sa kuryente.

blangkong board na ginawa ng "laser iron"

assembled board: tingnan mula sa gilid ng mga conductor (wala ang stabilizer)

tingnan mula sa gilid ng mga elemento (hindi selyado ang indicator)

Ang proyekto ay pinagsama-sama, ang ilan ay mula sa mga yari na proyekto mula sa Internet, ang ilan ay idinagdag ko... Ang orihinal na ideya ay isang dynamic na display. Ang problema ay habang nakikipag-usap sa sensor ng temperatura ng DS18B20, lumitaw ang mga sandali nang huminto ang "pag-scan" ng indikasyon. Samakatuwid, ang pag-update ng tagapagpahiwatig ay ginawa hindi sa pamamagitan ng mga pagkagambala, ngunit sa pangunahing loop ng programa, at ipinasok din dito at doon sa pamamaraan para sa pakikipag-usap sa sensor... Ang bentahe ng pamamaraang ito ay ang mataas na dalas ng pag-update, na nag-alis ng pagkutitap na problema.

Halos nakalimutan ko - mga piyus para sa normal na operasyon ng thermometer:

So, pina-flash namin, binuksan... Hmm... it works!!!

Kaya, tulad ng nakikita natin, nakakuha kami ng isang medyo simple (gaano mas simple???) na aparato, na sa laki ay hindi lalampas sa laki ng tagapagpahiwatig. Bilang karagdagan, ang katumpakan ay mataas din: ayon sa paglalarawan ng sensor - "± 0.5°C katumpakan mula -10°C hanggang +85°C". Tulad ng ipinakita ng pagsasanay, ang katumpakan ay mas mataas - mga ±0.1°C. Sinuri ko ang 10 kopya gamit ang isang thermometer ng laboratoryo na pumasa sa metrological control...


26.04.2014
Ang sPlan ay isang maginhawang tool para sa pagguhit ng mga electronic circuit. Mayroon itong simple at intuitive na interface. Kasama sa programa ang...

Isang napaka-maginhawang programa para sa pagbabasa ng pdf Foxit Reader
26.04.2014
Foxit Reader - Compact at mabilis na programa para sa pagbabasa ng mga PDF file. Maaaring magsilbi bilang alternatibo sa sikat na PDF viewer - Adobe Reader....


22.04.2014
Ang Proteus VSM ay isang microcontroller device simulator program. Sinusuportahan ang MK: PIC, 8051, AVR, HC11, ARM7/LPC2000 at iba pang mga karaniwang processor....


01.04.2014
Ang site ng proyekto, na nasa isang frozen na estado sa loob ng mahabang panahon, ay muling nagsisimulang gumana nang may panibagong lakas, na may mga bagong artikulo at...

Proteus 7.7 SP2 + Crack v1.0.2 + RUS
22.04.2014
Ang Proteus VSM ay isang microcontroller device simulator program. Sinusuportahan ang MK: PIC, 8051, AVR, HC11, ARM7/LPC2000 at iba pang mga karaniwang processor....

Splan 7.0.0.9 Rus + Portable + Viewer Final
26.04.2014
Ang sPlan ay isang maginhawang tool para sa pagguhit ng mga electronic circuit. Mayroon itong simple at intuitive na interface. Kasama sa programa ang...

DIY digital soldering station (ATmega8, C)
27.05.2012
Komposisyon: ATmega8, LM358, IRFZ44, 7805, tulay, 13 resistors, isang potentiometer, 2 electrolytes, 4 na capacitor, tatlong-digit na LED na pitong-segment...

© 2023 skudelnica.ru -- Pag-ibig, pagtataksil, sikolohiya, diborsyo, damdamin, pag-aaway