Sisukord:

PIC16F877 Multimeeter: 6 sammu
PIC16F877 Multimeeter: 6 sammu

Video: PIC16F877 Multimeeter: 6 sammu

Video: PIC16F877 Multimeeter: 6 sammu
Video: Digital Multimeter Half-Digits Explained - Workbench Wednesdays 2024, November
Anonim
Multimeeter PIC16F877
Multimeeter PIC16F877

PICMETER Sissejuhatus

Sellest PICMETER projektist on saanud kasulik ja usaldusväärne tööriist igale elektroonikahuvilisele.

  • See töötab PIC16F877 / 877A mikrokontrolleriga.
  • See on PIC arendussüsteem
  • See on 19 funktsiooniga multimeeter (voltmeeter, sagedusmõõtur, signaaligeneraator, termomeeter …)
  • See on komponentide kontrollija (R, L, C, diood…), millel on kuni 5 vahemikku igal funktsioonil.
  • Sellel on 433MHz sagedusala ASK raadio, mis ootab mingit rakendust.
  • See on kaughaldussüsteem, kus teine arvuti (PC) saab graafilise kuvamise jaoks jadaporti kaudu andmeid koguda. (Seda on kasutatud EKG projekti esiosana).
  • Sellel on logimisvõimalus (andmete registreerimiseks tundide kaupa), tulemused laaditakse üles EEPROMist.
  • See tekitab katsesignaale mõne mootori juhtimiseks.
  • Seda on põhjalikult testitud, vaadake 5. sammu fotosid.
  • Tarkvara antakse välja avatud lähtekoodiga

See juhend on täielik dokumentatsiooni kärbitud versioon. See kirjeldab riist- ja tarkvara, mis on piisav, et teised saaksid seda ehitada kas lõpetatud projektina või kasutada seda arendussüsteemina edasiste muudatuste tegemiseks või lihtsalt otsida ideid, mida teistes projektides kasutada.

Tarvikud

Ainus kriitiline kiip, mida osta, on mikrokiip PIC16F877A-I/P

  • A = hilisem versioon, mis erineb algsest konfiguratsioonibittide määratluse poolest.
  • I = tööstuslik temperatuurivahemik
  • P = 40-juhtmeline kahekordne plastpakett, 10 MHz, tavalised VDD piirid.

Samuti Hitachi LM032LN 20 tähemärki ja 2 rida LCD, millel on sisseehitatud HD44780 kontroller.

Teised osad on lihtsalt üldised elektrilised komponendid, ribaplaatide trükkplaadid, LM340, LM311, LM431, üldotstarbelised väikese võimsusega transistorid jne.

1. samm: PICBIOSe kirjeldus

PICBIOS Kirjeldus
PICBIOS Kirjeldus

PICBIOS Kirjeldus

See tarkvara töötab PIC16F877 tahvlil ja võtab programmi mälu alumise 4k. See pakub tarkvarakeskkonda rakendusmälu jaoks, mis hõivab programmi mälu ülemise poole. See on oma ideelt sarnane PC-BIOS-ile, millel on mõned "silumis" käsud programmi arendamiseks ja sellel on 5 komponenti:

  1. Käivitusmenüü
  2. Seadistusprogramm
  3. Käsurea liides (jadapordi kaudu)
  4. Kernel ja seadme draiverid
  5. Rakenduse programmeerimise liides

2. samm: PICMETER Kirjeldus

PICMETER Kirjeldus
PICMETER Kirjeldus

PICMETER Kirjeldus

Sissejuhatus

Nagu multimeetril (voltid, võimendid, oomid), on sellel palju funktsioone, mis valitakse menüüsüsteemi abil. Kuid riistvara ja tarkvara kombinatsioon muudab selle väga mitmekülgseks, näiteks on saadaval sellised funktsioonid nagu pikaajaline logimine ja jadaandmete saatmine.

Menüü on süda, kus funktsioonid valitakse [vasakule] ja [paremale] nuppude abil. Seejärel valitakse iga funktsiooni jaoks erinevad vahemikud [inc] ja [dec] nuppudega. Näiteks kondensaatoreid mõõdetakse vahemikus 0,1 nF kuni 9000 uF viie erineva vahemiku abil.

2.1 PICMETER Tarkvara

See on korraldatud rakendusprogrammina, mis hõivab ülemise 4k programmimälu ja tugineb seadme I/O ja katkestuste käsitsemise PICBIOS -i funktsioonidele. See koosneb menüüst, mis töötab taustaülesandena ja küsitleb nuppe iga 20 ms tagant. Kui funktsiooni või vahemiku muutmiseks vajutatakse nuppu, kutsutakse välja sobiv rutiin. Kui ühtegi nuppu ei vajutata, uuendatakse mõõdetud näitu umbes 0,5 sekundilise intervalliga. Põhimõtteliselt on menüü otsingu tabel.

2.2 Arvesti funktsioon - sektsioonid

Funktsioone on palju, nii et see osa on jagatud osadeks, millest igaüks käsitleb sarnaseid funktsioone. See on jaotiste lühike loend. Vaadake täielikku dokumentatsiooni, et näha, kuidas iga jaotis üksikasjalikult töötab. Portide piirangute tõttu on projektil 3 varianti (vt täielikku dokumentatsiooni). Tavalise fondiga funktsioonid on kõigi projektide jaoks ühised. Rõhutamata funktsioonid sisalduvad ainult projektis PICMETER1. ITAALIA funktsioonid sisalduvad ainult projektides PICMETER2 või PICMETER3.

Jaotis VoltMeter - lähtefail on vmeter.asm

Sisaldab funktsioone, mis põhinevad pinge mõõtmisel ADC abil.

  • ADC pinge (loeb valitud sisendi pinget, AN0 kuni AN4)
  • AD2 Dual (kuvab üheaegselt AN0 ja AN1 pinge)
  • TMP termomeeter -10 kuni 80? degC (2N3904 või kahekordne LM334 andur)
  • LOG - määrab logimisintervalli
  • OHM - takistuse mõõtmine (potentsiomeetri meetod) vahemikus 0Ω kuni 39MΩ 4 vahemikus
  • DIO-diood, mõõdab edasipinget (0-2,5V)
  • CON - järjepidevus (piiksub, kui takistus on väiksem kui künnis 25, 50 või 100)

Komponent Meter1 - lähtefail on meter1.asm

Kondensaatori, induktiivpooli ja takisti mõõtmine LM311 võrdlusahela abil. Põhineb ühe laadimistsükli aja mõõtmisel.

  • CAL - kalibreerimine - mõõdab fikseeritud 80nf ja 10μF enesetestimiseks ja reguleerimiseks
  • Cx1 - kondensaatori mõõtmine vahemikus 0,1 nF kuni 9000μF 5 vahemikus
  • Lx1 - induktori mõõtmine 1mH kuni ?? mH 2 vahemikus
  • Rx1 - takisti mõõtmine vahemikus 100Ω kuni 99MΩ 3 vahemikus

Komponent Meter2 Lähtefail Meter2.asm

Komponentide mõõtmine alternatiivse LM311 lõdvestusostsillaatori ja Colpittsi ostsillaatori abil. Põhineb N tsükli ajavahemiku mõõtmisel. See on veidi täpsem kui ülaltoodud meetod, kuna mõõdetakse aega N = kuni 1000 tsüklit. See on rohkem riistvaralahendus ja nõuab rohkem ehitust.

  • Cx2 - kondensaatori mõõtmine vahemikus 10pF kuni 1000 μF 5 vahemikus.
  • Rx2 - takisti mõõtmine 100 oomi kuni 99M 5 vahemikus.
  • Lx2 - induktori mõõtmine vahemikus 1 kuni 60 mH ühes vahemikus.
  • osc - induktori mõõtmine (Colpittsi meetod) vahemikus 70μH kuni 5000μH? 2 vahemikus.

Sagedusmõõtur - lähtefail Fmeter.asm

Sisaldab funktsioone, mis kasutavad PIC loendureid ja taimerit, ning vähe muud;

  • FREQ - sagedusmõõtur vahemikus 0 Hz kuni 1000 kHz 3 vahemikus
  • XTL - mõõdab LP -kristallide sagedust (pole testitud)
  • SIG - signaaligeneraator 10Hz kuni 5KHz 10 sammuga
  • SMR - samm -mootor - vastupidine suund
  • SMF- samm-mootor- suund edasi.

Side - lähtefail on comms.asm

Funktsioonid signaali edastamiseks/vastuvõtmiseks jada- ja SPI -välisseadmete testimiseks;

  • UTX -testide jada TX & inc ja vähendage bitikiirust 0,6 kuni 9,6 k
  • URX testi jada RX & inc ja vähendage bitikiirust 0,6 kuni 9,6 k
  • SPM - testib SPI -d põhirežiimis
  • SPS - testib SPI alamrežiimis

FSK raadiomoodul - lähtefail on Radio.asm

Funktsioonid, mis kasutavad raadio RM01 ja RM02, võtavad vastu ja edastavad mooduleid. Need moodulid liidestavad SPI kaudu, mis kasutab ära enamiku pordi C tihvte.

  • RMB - määrake raadiomooduli BAUD kiirus
  • RMF - määrake raadiomooduli raadiosagedus
  • RMC - määrab raadiomooduli taktsageduse
  • XLC - reguleerib kristallide mahtuvuskoormust
  • POW - määrab saatja võimsuse
  • RM2 - testiandmete edastamine (RM02 moodul)
  • RM1 - testiandmete vastuvõtmine (RM01 moodul)

Juhtmoodul - lähtefail control.asm

  • SV1 - servoväljund (kasutades CCP1) vahemikus 1 ms kuni 2 ms 0,1 ms sammuga
  • SV2 - servoväljund (kasutades CCP2) vahemikus 1 ms kuni 2 ms 0,1 ms sammuga
  • PW1 - PWM väljund (kasutades CCP1) 0 kuni 100% 10% sammuga
  • PW2 - PWM väljund (kasutades CCP2) 0 kuni 100% 10% sammuga

Kaugandmete hankimine - lähtefail on remote.asm

Kaugrežiim (Rem) - käskude kogum, et arvesti saaks arvutist jadaliidese kaudu käitada. Üks käsk kogub tundide jooksul EEPROM -i sisse logitud andmeid. Teine käsk loeb pinged ADC täiskiirusel mälupuhvrisse, seejärel edastab puhver arvutisse, kus tulemusi saab graafiliselt kuvada. Tegelikult on see ostsilloskoop, mis töötab helisageduste vahemikus

Aeg - lähtefail on time.asm

Tim - kuvab aja lihtsalt vormingus hh: mm: ss ja võimaldab muuta nelja nupu abil

3. samm: ahela kirjeldus

Vooluahela kirjeldus
Vooluahela kirjeldus
Vooluahela kirjeldus
Vooluahela kirjeldus

Vooluahela kirjeldus

3.1 Põhiarendusamet

Joonisel 1 on kujutatud põhiarendusplaat PICBIOSe käivitamiseks. See on väga standardne ja lihtne, 5 V reguleeritud toiteallikas ja lahtiühendavad kondensaatorid, C1, C2….

Kell on 4 MHz kristall, nii et TMR1 tiksub 1 -intervalliga. 22pF kondensaatoreid C6, C7 soovitab Microchip, kuid need ei tundu tegelikult vajalikud. ICSP päist (vooluahela seeriaprogrammeerimist) kasutatakse tühja PIC-i esialgseks programmeerimiseks PICBIOS-iga.

Jadaport (COM1)- märkus TX ja RX on vahetatud, st COM1-TX on ühendatud portiga C-RX ja COM1-RX on ühendatud portiga C-TX (tavaliselt nimetatakse "nullmodemiks"). Ka RS232 jaoks nõutavad signaaltasemed peaksid tõesti olema +12V (tühik) ja -12V (märk). Kuid pingetasemed 5V (tühik) ja 0V (märk) tunduvad kõigi minu kasutatavate arvutite jaoks piisavad. Niisiis muudavad RX ja TX signaalitasemed liini draiver (Q3) ja liinivastuvõtja (Q2) lihtsalt ümber.

LM032LN (2-rida 20 tähemärki) LCD kasutab standardset HD44780 liidest. Tarkvara kasutab 4-bitist näpistamisrežiimi ja ainult kirjutamist, mis kasutab 6 tihvti pordi D. Tarkvara saab konfigureerida nii, et see näpistatakse madalaks (pordi D bitid 0–3) või kõrgeks (pordi D bitid 4–7)..

Nuppude lülitid pakuvad menüü valimiseks nelja sisendit. Kasutage lülitite tegemiseks tõukamist, kuna tarkvara tuvastab langeva serva. Tõmbetakistid (= 25k) on PORT B sisemised. Porti RB6 ei saa lülitite jaoks kasutada 1nF korgi tõttu (seda soovitatakse ICSP jaoks). Kas lähtestuslülitit pole vaja?

nupp 0

menüüvalikud vasakule [◄]

nupp 1

menüüvalikud paremal [►]

nupp 2

juurdekasvu vahemik/väärtus/valige [▲]

nupp 3

vähenemisvahemik/väärtus/vali [▼]

3.2 Analoogsisendid ja komponentide kontroll - tahvel 1

Joonis 2 näitab PICMETER1 analoogskeemi. Üldotstarbeliseks pinge mõõtmiseks kasutatakse analoogsisendeid AN0 ja AN1. Valige summutite takistite väärtused, et anda sisendpistikutele AN0/AN1 5V.

10V sisendvahemiku puhul m = 1 + R1/R2 = 1 + 10k/10k = 2

20V sisendvahemiku puhul m = 1 + (R3 + R22)/R4 = 1 + 30k/10k = 4

AN2 kasutatakse temperatuuri mõõtmiseks, kasutades "töötlemata" temperatuuri andurina transistorit Q1. NPN -transistori temperatuurikoefitsient 20 ° C juures = -Vbe/(273+20) = -0,626/293 = -2,1 mV/K. (vt temperatuuri mõõtmist jaotisest Analoog). LM431 (U1) pakub AN3 -l 2,5 V pinge võrdlust. Lõpuks kasutatakse AN4 analüüsi või komponentide testimiseks jaotises Analoog.

Komponendi mõõtmiseks on testkomponent ühendatud RE2 (D_OUT) ja AN4 sisendiga. Takistid R14 kuni R18 pakuvad viit erinevat takistuse väärtust, mida kasutatakse takistuse mõõtmiseks (potentsiomeetri meetod) jaotises Analoog. Takistid ühendatakse vooluahelasse, seades porti C/port E tihvtid sisendiks või väljundiks.

Meter1 teostab komponentide mõõtmist, laadides tuntud/tundmatu kondensaatori ja takisti erinevaid kombinatsioone. LM311 (U2) kasutatakse CCP1 katkestuste loomiseks, kui kondensaator laeb ülemisele lävele (75% VDD) ja tühjeneb madalamale (25% VDD). Need lävipinged on määratud R8, R9, R11 ja potentsiomeetriga R10, mis annab kerge reguleerimine. Kondensaatorite testimisel tagab kondensaator C13 (= 47pF) pluss plaadi hulkuv mahtuvus 100pF trimmimise. See tagab, et katsekomponendi eemaldamisel ületab CCP1 katkestuste vaheline intervall 100 us ja see ei koorma PIC -i üle. See kärpimisväärtus (100 pF) lahutatakse tarkvara abil komponentide mõõtmisest. D3 (1N4148) tagab tühjenemistee induktiivpoolide testimisel ja kaitseb D_OUT -i, vältides pinge negatiivset muutumist.

λΩπμ

4. samm: ehitusjuhend

Ehitusjuhend
Ehitusjuhend
Ehitusjuhend
Ehitusjuhend

Ehitusjuhend

Hea on see, et see projekt on üles ehitatud ja testitud etappide kaupa. Planeerige oma projekt. Nende juhiste jaoks eeldan, et ehitate PICMETER1, kuigi protseduur on sarnane PICMETER2 ja 3 jaoks.

4.1 Arendusplaadi trükkplaat

Peate ehitama põhilise arendusplaadi (joonis 1), mis peaks sobima 100 x 160 mm standardse suurusega trükkplaadile, planeerige paigutus nii, et see oleks võimalikult korras. Puhastage oma trükkplaat ja tina kogu vasest, kasutage usaldusväärseid komponente ja pistikuid, mis on võimaluse korral testitud. Kasutage PIC -i jaoks 40 -pin pistikut. Järjepidevuse kontrollimine kõik joodetud vuugid. Võib olla kasulik vaadata ülaltoodud minu tahvli paigutuse fotosid.

Nüüd on teil tühi PIC ja peate programmeerima PICBIOS -i välkmällu. Kui teil on juba programmeerimismeetod - hea. Kui ei, siis soovitan järgmist meetodit, mida olen edukalt kasutanud.

4.2 AN589 Programmeerija

See on väike liidesahel, mis võimaldab PIC -i programmeerida arvutist printeri (LPT1) pordi abil. Kujunduse avaldas algselt Microchip rakenduse märkuses. (viide 3). Hankige või tehke AN589 -ga ühilduv programmeerija. Olen kasutanud siin kirjeldatud täiustatud AN589 disaini. See on ICSP - see tähendab, et sisestate PIC -i 40 -pin pistikupessa selle programmeerimiseks. Seejärel ühendage printerikaabel AN539 sisendiga ja ICSP kaabel AN589 -st arendusplaadiga. Minu programmeerija disain võtab oma jõu arendusplaadilt ICSP -kaabli kaudu.

4.3 PICPGM seaded

Nüüd vajate arvutis töötamiseks programmeerimistarkvara. PICPGM töötab erinevate programmeerijatega, sealhulgas AN589, ja see laaditakse alla tasuta. (Vaata viiteid).

Valige riistvaramenüüst LPT1 programmeerija AN589

Seade = PIC16F877 või 877A või automaatne tuvastamine.

Valige kuusnurkfail: PICBIOS1. HEX

Valige Erase PIC, seejärel Program PIC, seejärel Verify PIC. Mõne õnne korral saate eduka lõpuleviimise teate.

Eemaldage ICSP kaabel, Taaskäivitage PIC, loodetavasti näete LCD -ekraanil PICBIOS -ekraani, vastasel juhul kontrollige oma ühendusi. Kontrollige alglaadimismenüüd, vajutades vasakut ja paremat nuppu.

4.4 Sarjaühendus (hüperterminal või kitt)

Nüüd kontrollige jadaühendust PIC ja arvuti vahel. Ühendage arvuti COM1 jadakaabel arendusplaadiga ja käivitage suhtlusprogramm, näiteks vana Win-XP hüperterminal või PUTTY.

Kui kasutate Hyperterminali, seadistage see järgmiselt. Valige peamenüüst Helista> Katkesta ühendus. Seejärel Fail> Atribuudid> Ühenda vahekaardiga. Valige Com1, seejärel klõpsake nuppu Configure. Valige 9600 bps, pariteet puudub, 8 bitti, 1 stop. Riistvara voolu juhtimine”. Seejärel ühendamiseks helistage> Helista.

Kui kasutate PuTTY -d, siis Connection> Serial> Connect to COM1 ja 9600 bps, pariteeti pole, 8 bitti, 1 stop. Valige "RTS/CTS". Seejärel Session> Serial> Open

Valige menüüst PICBIOS Boot “Command Mode”, seejärel vajutage [inc] või [dec]. Ekraanile peaks ilmuma teade „PIC16F877>“(kui ei, siis kontrollige oma jadaliidest). Vajutage? käskude loendi vaatamiseks.

4.5 Programm PICMETER

Kui jadaühendus töötab, on välkmälu programmeerimine sama lihtne kui kuusnurkse faili saatmine. Sisestage käsk “P”, mis vastab sõnumiga “Saada hex -fail…”.

Kasutades hüperterminali, valige menüüst Edastamine> Saada tekstifail> PICMETER1. HEX> Ava.

Edusamme näitab ":". kuna iga heksakoodi rida on programmeeritud. Lõpuks laadige edu.

Kui kasutate PuTTY -d, peate võib -olla kasutama Notepadi ja kopeerima/kleepima kogu PICMETER1. HEXi sisu PuTTY -sse.

Sarnaselt kontrollimiseks sisestage käsk “V”. Hüperterminalis valige menüüst Edastamine> Saada tekstifail> PICMETER1. HEX> OK.

Hoiatus = xx… Kui programmeerite kiibi 16F877A, saate hoiatusteateid. See on seotud erinevustega 877 ja 877A vahel, mis programmeeritakse 4 -sõnalistes plokkides. Kahjuks ei viita linkija lõigu algust nelja sõna piirile. Lihtne lahendus on iga jaotise alguses 3 NOP -juhist, nii et ignoreerige hoiatusi.

Taaskäivitage ja valige BIOS -i alglaadimismenüüst „Käivita rakendus”. LCD -ekraanil peaksite nägema PICMETER1.

4.6 Käivitage PICMETER1

Nüüd hakake arendusplaadi rohkem sektsioone ehitama (joonis 2), et saada voltmeetri, komponendimõõturi funktsioonid vastavalt vajadusele.

Meter1 vajab kalibreerimist. Funktsiooni “Cal” korral reguleerige R10 nii, et näidud oleksid umbes 80,00, 80,0 nF ja umbes 10 000uF. Seejärel lugege funktsiooni Cx1 kohta väikest 100 pF. Kui näit on väljas, vahetage trimmimiskork C13 või muutke väärtust „trimc” meeter1.asm.

Nüüd käivitage PICBIOS Setup ja muutke EEPROMis mõnda kalibreerimisseadet. Temperatuuri kalibreerimiseks reguleerige 16-bitist nihet (kõrge ja madal formaat). Võimalik, et peate muutma ka väärtust „delayt”.

Kui teie kavatsus on ehitada projekt sellisena, nagu see on - Palju õnne - olete lõpetanud! Rääkige mulle oma edust Instructablesis.

4,7 MPLAB

Kuid kui soovite muudatusi teha või projekti edasi arendada, peate tarkvara MPLAB abil uuesti üles ehitama. Laadige MPLAB alla Microchipist. See on "vana", mida on lihtne ja arusaadav kasutada. Ma pole proovinud uut labksi arendamise tööriista, mis tundub palju keerulisem.

Uue projekti loomise üksikasjad ja seejärel failide lisamine projekti täielikus dokumentatsioonis.

Samm: fotod testimisest

Fotod testimisest
Fotod testimisest
Fotod testimisest
Fotod testimisest
Fotod testimisest
Fotod testimisest

Foto üleval termomeetrist, näit 15 ° C

Testimissagedus, näit = 416k

Katsetades induktiivpooli märgistusega 440uF, loeb 435u

100k takisti testimine, 101k, see on lihtne.

1000pF kondensaatori testimine, näit on 1,021 nF

6. samm: viited ja lingid

6.1 PIC16F87XA andmeleht, Microchip Inc.

ww1.microchip.com/downloads/en/devicedoc/39582b.pdf

6.2 PIC16F87XA FLASH mäluprogrammeerimise spetsifikatsioon, mikrokiip

ww1.microchip.com/downloads/en/devicedoc/39589b.pdf

6.3 Rakendusmärkus AN589, Microchip Inc.

ww1.microchip.com/downloads/en/appnotes/00589a.pdf

6.4 PICPGM allalaadimine

picpgm.picprojects.net/

6,5 MPLab IDE v8.92 tasuta allalaadimine, mikrokiip

pic-microcontroller.com/mplab-ide-v8-92-free-download/

6.6 Andmelehed Hope RFM01-433 ja RFM02-433 moodulitele, RF Solutions

www.rfsolutions.co.uk/radio-modules-c10/hope-rf-c238

6.7 LT Spice, analoogseadmed

www.analog.com/en/design-center/design-tools-and-calculators/ltspice-simulator.html

6.8 Pildi programmeerija vooluring, mis põhineb AN589-l, Best-Microcontroller-Projects

www.best-microcontroller-projects.com/pic-programmer-circuit.html

6.9 Avatud lähtekoodiga failid

avatud lähtekoodiga

Soovitan: