Sadržaj:

PIC16F877 Multimetar: 6 koraka
PIC16F877 Multimetar: 6 koraka

Video: PIC16F877 Multimetar: 6 koraka

Video: PIC16F877 Multimetar: 6 koraka
Video: Электрочайник не включается (чистка термореле) 2024, Juli
Anonim
PIC16F877 Multimetar
PIC16F877 Multimetar

PICMETER Uvod

Ovaj PICMETER projekt prerastao je u koristan i pouzdan alat za sve ljubitelje elektronike.

  • Radi na mikrokontroleru PIC16F877 / 877A.
  • To je razvojni sistem PIC -a
  • To je 19-funkcijski višemetar (voltmetar, mjerač frekvencije, generator signala, termometar …)
  • To je provjera komponenti (R, L, C, dioda …) s do 5 raspona na svakoj funkciji.
  • Ima 433MHz opseg ASK radio, koji čeka neku vrstu aplikacije.
  • To je sistem daljinske akvizicije, gdje drugi računar (PC) može prikupljati podatke putem serijskog porta za grafički prikaz. (Korišten je kao prednji dio EKG projekta).
  • Ima zapisnik (za bilježenje podataka satima), rezultati se učitavaju sa EEPROM -a.
  • Proizvodi testne signale za pogon nekih motora.
  • Temeljito je testirano, pogledajte fotografije u koraku 5.
  • Softver je objavljen kao Open Source

Ovaj Instructable je skraćena verzija potpune dokumentacije. Opisuje hardver i softver dovoljan da ga drugi izgrade ili kao dovršen projekt, ili ga koriste kao razvojni sistem za daljnje promjene, ili samo traže ideje za korištenje na drugim projektima.

Supplies

Jedini kritični čip za kupovinu je Microchip PIC16F877A-I/P

  • A = kasnija revizija koja se razlikuje od originala u definiciji konfiguracijskih bitova.
  • I = Raspon industrijske temperature
  • P = 40-Lead Plastični dvostruki linijski paket, 10 MHz, normalna ograničenja VDD-a.

Takođe Hitachi LM032LN 20 karaktera po 2 reda LCD koji ima ugrađen HD44780 kontroler.

Ostali dijelovi su samo generičke električne komponente, PCB ploče, LM340, LM311, LM431, tranzistori male snage opće namjene itd.

Korak 1: Opis PICBIOS -a

PICBIOS Opis
PICBIOS Opis

PICBIOS Opis

Ovaj softver radi na ploči PIC16F877 i zauzima donjih 4k programske memorije. Pruža softversko okruženje za aplikacijski program koji zauzima gornju polovinu programske memorije. Idejno je sličan PC-BIOS-u sa nekoliko naredbi za otklanjanje grešaka za razvoj programa i ima 5 komponenti:

  1. Boot Menu
  2. Program za postavljanje
  3. Interfejs komandne linije (preko serijskog porta)
  4. Upravljački programi jezgre i uređaja
  5. Sučelje za programiranje aplikacija

Korak 2: Opis PICMETER -a

PICMETER Opis
PICMETER Opis

PICMETER Opis

Uvod

Kao i multimetar (volti, pojačala, ohmi) i on ima mnoge funkcije koje se biraju pomoću sistema menija. No, kombinacija hardvera i softvera čini ga vrlo svestranim, na primjer dostupne su značajke kao što su dugopisivanje i slanje serijskih podataka.

Meni je „srce“gdje se funkcije biraju pomoću tipki [lijevo] i [desno]. Zatim se za svaku funkciju tipkama [inc] i [dec] odabiru različiti rasponi. Na primjer, kondenzatori se mjere od oko 0,1nF do 9000uF pomoću 5 zasebnih raspona.

2.1 PICMETER softver

Ovo je organizirano kao aplikacijski program koji zauzima gornjih 4k programske memorije i oslanja se na funkcije PICBIOS -a za U/I uređaja i rukovanje prekidima. Sastoji se od odjeljka izbornika koji radi kao pozadinski zadatak i ispituje dugmad svakih 20 ms. Kada se pritisne tipka za promjenu funkcije ili promjenu raspona, poziva se odgovarajuća rutina. Kada se ne pritisne nijedno dugme, mjerenje se ažurira u intervalima od oko 0,5 sekundi. U osnovi, meni je tabela za pretraživanje.

2.2 Funkcija mjerača - odjeljci

Postoji mnogo funkcija pa je ovaj dio podijeljen u odjeljke, od kojih se svaki bavi funkcijama slične prirode. Ovo je kratka lista odjeljaka, pogledajte kompletnu dokumentaciju da vidite kako svaki odjeljak radi detaljno. Zbog ograničenja porta, postoje 3 varijacije projekta (pogledajte kompletnu dokumentaciju). Funkcije normalnog fonta zajedničke su svim projektima. Funkcije UNDERLINED uključene su samo u projekt PICMETER1. Funkcije u ITALICS -u uključene su samo u projekte PICMETER2 ili PICMETER3.

VoltMeter odjeljak - Izvorna datoteka je vmeter.asm

Sadrži funkcije koje se temelje na mjerenju napona pomoću ADC -a.

  • ADC napon (očitava napon na odabranom ulazu, AN0 do AN4)
  • AD2 Dual (prikazuje napon na AN0 i AN1 istovremeno)
  • TMP termometar -10 do 80? degC (2N3904 ili dvostruki pretvarač LM334)
  • LOG - postavlja interval evidentiranja
  • OHM - Mjerenje otpora (metoda potenciometra) od 0Ω do 39MΩ u 4 raspona
  • DIO-Dioda, mjeri napon naprijed (0-2,5 V)
  • CON - Kontinuitet (zvučni signal kada je otpor manji od praga od 25, 50 ili 100)

Komponenta Meter1 - Izvorna datoteka je meter1.asm

Mjerenje kondenzatora, induktora i otpornika pomoću uporednog kola LM311. Na osnovu merenja vremena jednog ciklusa punjenja.

  • CAL - kalibracija - mjeri fiksne 80nf i 10μF za samotestiranje i podešavanje
  • Cx1 - mjerenje kondenzatora od 0,1nF do 9000μF u 5 raspona
  • Lx1 - mjerenje induktora od 1mH do ?? mH u 2 raspona
  • Rx1 - mjerenje otpornika od 100Ω do 99MΩ u 3 raspona

Komponenta Meter2 Izvorna datoteka Meter2.asm

Mjerenje komponenti pomoću alternativnih LM311 relaksacionih oscilatora i Colpittovog oscilatora. Na osnovu merenja vremenskog perioda od N ciklusa. Ovo je nešto preciznije od gore navedene metode jer se mjeri vrijeme N = do 1000 ciklusa. To je više hardversko rješenje i zahtijeva više izgradnje.

  • Cx2 - mjerenje kondenzatora od 10pF do 1000 μF u 5 raspona.
  • Rx2 - mjerenje otpornika od 100 ohma do 99 M u 5 raspona.
  • Lx2 - mjerenje induktora od 1mH do 60mH u 1 rasponu.
  • osc - mjerenje induktora (Colpittsova metoda) od 70μH do 5000μH? u 2 raspona.

Mjerač frekvencije - izvorna datoteka Fmeter.asm

Sadrži funkcije koje koriste PIC brojače i tajmere, i još malo toga;

  • FREQ - Mjerač frekvencije od 0Hz do 1000kHz u 3 raspona
  • XTL - mjeri frekvenciju LP kristala (nije testirano)
  • SIG - generator signala od 10Hz do 5KHz u 10 koraka
  • SMR - koračni motor - obrnuti smjer
  • SMF- koračni motor- smjer prema naprijed.

Komunikacije - Izvorna datoteka je comms.asm

Funkcije za prijenos/prijem signala za testiranje serijske i SPI periferije;

  • UTX test serijski TX & inc i brzina prijenosa bita od 0,6 do 9,6k
  • URX test serijski RX & inc i brzina prijenosa bita od 0,6 do 9,6k
  • SPM - testira SPI u master načinu rada
  • SPS - testira SPI u slave načinu rada

Radio modul FSK - Izvorna datoteka je Radio.asm

Funkcije koje koriste radio prijemnike i prijemnike RM01 i RM02. Ovi moduli se povezuju putem SPI -a, koji koristi većinu priključaka porta C.

  • RMB - postavite BAUD brzinu radio modula
  • RMF - podesite radio frekvenciju radio modula
  • RMC - postavlja frekvenciju takta radio modula
  • XLC - podešava kapacitet kristala
  • POW - postavlja snagu predajnika
  • RM2 - prenosi testne podatke (modul RM02)
  • RM1 - prima testne podatke (modul RM01)

Kontrolni modul - Izvorna datoteka control.asm

  • SV1 - Servo izlaz (pomoću CCP1) od 1 ms do 2 ms u koracima od 0,1 ms
  • SV2 - Servo izlaz (koristeći CCP2) od 1 ms do 2 ms u koracima od 0,1 ms
  • PW1 - PWM izlaz (pomoću CCP1) od 0 do 100% u koracima od 10%
  • PW2 - PWM izlaz (pomoću CCP2) od 0 do 100% u koracima od 10%

Daljinsko prikupljanje podataka - Izvorna datoteka je remote.asm

Daljinski način rada (Rem) - skup naredbi tako da se mjeračem može upravljati s računara putem serijskog sučelja. Jedna naredba prikuplja podatke evidentirane u EEPROM -u tokom perioda od nekoliko sati. Druga naredba čita napone pri punoj brzini ADC -a u memoriju, zatim prenosi bafer na PC, gdje se rezultati mogu grafički prikazati. U stvari, ovo je osciloskop, koji radi u audio frekvencijskom rasponu

Vrijeme - Izvorna datoteka je time.asm

Tim - samo prikazuje vrijeme u formatu hh: mm: ss i dopušta promjenu pomoću 4 gumba

Korak 3: Opis kola

Opis kola
Opis kola
Opis kola
Opis kola

Opis kola

3.1 Osnovni odbor za razvoj

Slika 1 prikazuje osnovnu razvojnu ploču za pokretanje PICBIOS -a. Vrlo je standardan i jednostavan, 5V regulirani izvor napajanja i kondenzatori za razdvajanje, C1, C2….

Sat je kristalno 4 MHz, tako da TMR1 otkucava u intervalima od 1us. Microchip preporučuje kondenzatore 22pF C6, C7, ali čini se da to zapravo nije potrebno. ICSP zaglavlje (serijsko programiranje u krugu) koristi se za početno programiranje praznog PIC-a sa PICBIOS-om.

Serijski port (COM1)- napomena TX i RX se mijenjaju, tj. COM1-TX je spojen na port C-RX, a COM1-RX je priključen na port C-TX (obično se naziva "nulti modem"). Takođe, nivoi signala potrebni za RS232 zaista bi trebali biti +12V (razmak) i -12V (oznaka). Međutim, nivoi napona od 5V (prostor) i 0V (oznaka) izgledaju adekvatno za sve računare koje sam koristio. Dakle, nivoi signala RX i TX su samo obrnuti upravljačkim programom linije (Q3) i linijskim prijemnikom (Q2).

LM032LN (2 reda 20 znakova) LCD koristi standardni “HD44780 interfejs”. Softver koristi 4-bitni način grickanja i samo pisanje, koji koristi 6 pinova porta D. Softver se može konfigurirati za nisko grickanje (port D bitovi 0-3) ili visoko za grickanje (port D bitovi 4-7) kao što se ovdje koristi.

Prekidači na tasterima pružaju četiri ulaza za izbor menija. Koristite gumbe za uključivanje i isključivanje jer softver otkriva padnu ivicu. Povučni otpornici (= 25k) su interni na PORT B. Port RB6 se ne može koristiti za sklopke, zbog 1nF kapice (koja se preporučuje za ICSP). Nema potrebe za prekidačem za resetiranje?

button0

opcije menija lijevo [◄]

button1

opcije menija desno [►]

button2

raspon povećanja/vrijednost/odaberite [▲]

button3

raspon smanjenja/vrijednost/odaberite [▼]

3.2 Analogni ulazi i provjera komponenti - ploča 1

Slika 2 prikazuje analogno kolo za PICMETER1. Analogni ulazi AN0 i AN1 koriste se za mjerenje napona opće namjene. Odaberite vrijednosti otpornika za prigušivače koji će dati 5V na ulaznim pinovima AN0/AN1.

Za ulazni raspon od 10 V, m = 1 + R1/R2 = 1 + 10k/10k = 2

Za ulazni raspon od 20 V, m = 1 + (R3 + R22)/R4 = 1 + 30k/10k = 4

AN2 se koristi za mjerenje temperature pomoću tranzistora Q1 kao „sirovi“pretvarač temperature. Temperaturni koeficijent NPN tranzistora pri 20 celcuis = -Vbe/(273+20) = -0,626/293 = -2,1 mV/K. (pogledajte mjerenje temperature u odjeljku Analogno). LM431 (U1) daje naponsku referencu od 2,5 V na AN3. Konačno, AN4 se koristi za testiranje komponenti u odjeljku Analogno.

Za mjerenje komponente, testna komponenta je spojena preko ulaza RE2 (D_OUT) i AN4. Otpornici R14 do R18 pružaju pet različitih vrijednosti otpora koji se koriste za mjerenje otpora (metoda potenciometra) u analognom odjeljku. Otpornici su "spojeni u krug" postavljanjem pinova porta C/porta E kao ulaz ili izlaz.

Meter1 vrši mjerenje komponenti punjenjem različitih kombinacija poznatih/nepoznatih kondenzatora i otpornika. LM311 (U2) se koristi za stvaranje CCP1 prekida kada se kondenzator napuni do gornjeg praga (75% VDD) i prazni do donjeg praga (25% VDD). Ovi pragovi su postavljeni pomoću R8, R9, R11 i potenciometra R10 koji daje male podešavanje. Prilikom testiranja kondenzatora, kondenzator C13 (= 47pF) plus zalutali kapacitet ploče osiguravaju trim 100pF. Ovo osigurava da, kada se testna komponenta ukloni, interval između prekida CCP1 prelazi 100us i ne preopterećuje PIC. Ova vrijednost trima (100pF) se oduzima od mjerenja komponenti pomoću softvera. D3 (1N4148) osigurava put pražnjenja pri ispitivanju prigušnica i štiti D_OUT sprječavajući da napon postane negativan.

λΩπμ

Korak 4: Vodič za izgradnju

Građevinski vodič
Građevinski vodič
Građevinski vodič
Građevinski vodič

Građevinski vodič

Dobra stvar je što se ovaj projekt gradi i testira u fazama. Planirajte svoj projekat. Za ove upute pretpostavljam da pravite PICMETER1, iako je postupak sličan za PICMETER2 i 3.

4.1 Razvojna ploča PCB

Morate izgraditi osnovnu razvojnu ploču (slika 1) koja bi trebala stati na PCB standardne veličine 100 x 160 mm, planirati raspored kako bi bio što uredniji. Očistite PCB i pokosite sav bakar, upotrijebite pouzdane komponente i konektore, testirano gdje je to moguće. Za PIC upotrijebite 40 -polnu utičnicu. Provjerite kontinuitet svih lemljenih spojeva. Možda bi bilo od pomoći pogledati gore navedene fotografije izgleda moje ploče.

Sada imate prazan PIC i morate programirati PICBIOS u flash memoriju. Ako već imate način programiranja - u redu. Ako ne, preporučujem sljedeću metodu koju sam uspješno koristio.

4.2 AN589 Programer

Ovo je mali krug interfejsa koji omogućava da se PIC programira sa računara pomoću porta za štampač (LPT1). Dizajn je prvobitno objavio Microchip u napomeni o prijavi. (referenca 3). Nabavite ili napravite programer kompatibilan sa AN589. Koristio sam poboljšani dizajn AN589 koji je ovdje opisan. Ovo je ICSP - što znači da umetnete PIC u 40 -polnu utičnicu da biste ga programirali. Zatim spojite kabel pisača na ulaz AN539 i ICSP kabel iz AN589 na razvojnu ploču. Moj dizajn programera napaja se iz razvojne ploče putem ICSP kabela.

4.3 PICPGM postavke

Sada vam je potreban neki softver za programiranje za rad na računaru. PICPGM radi s raznim programerima, uključujući AN589, i besplatno se preuzima. (Vidi Reference).

Iz izbornika Hardver, odaberite Programmer AN589, na LPT1

Uređaj = PIC16F877 ili 877A ili automatsko otkrivanje.

Odaberite šesterokutnu datoteku: PICBIOS1. HEX

Odaberite Erase PIC, zatim Program PIC, zatim Verify PIC. Uz malo sreće, dobit ćete poruku uspješnog dovršetka.

Uklonite ICSP kabel, Ponovo pokrenite PIC, nadamo se da ćete vidjeti PICBIOS ekran na LCD -u, inače provjerite svoje veze. Provjerite izbornik za pokretanje pritiskom na lijevo i desno dugme.

4.4 Serijska veza (hiperterminalna ili kit)

Sada provjerite serijsku vezu između PIC -a i računara. Spojite serijski kabel s računara COM1 na razvojnu ploču i pokrenite komunikacijski program, poput starog Win-XP Hyper-Terminala ili PUTTY.

Ako koristite Hyperterminal, konfigurirajte na sljedeći način. U glavnom meniju pozovite> Prekini vezu. Zatim Datoteka> Svojstva> Poveži se na karticu. Odaberite Com1, a zatim kliknite gumb Konfiguriraj. Odaberite 9600 b / s, bez pariteta, 8 bita, 1 zaustavljanje. Kontrola protoka hardvera”. Zatim Pozovite> Pozovi za povezivanje.

Ako koristite PuTTY, Connection> Serial> Connect to COM1 i 9600 bps, bez pariteta, 8 bita, 1 zaustavljanje. Odaberite “RTS/CTS”. Zatim Sesija> Serijski> Otvori

Na izborniku PICBIOS Boot, odaberite “Command Mode”, zatim pritisnite [inc] ili [dec]. Na ekranu bi se trebala pojaviti poruka „PIC16F877>“(ako ne provjerite serijsko sučelje). Štampa? da vidite listu komandi.

4.5 PICMETAR programa

Nakon što serijska veza funkcionira, programiranje flash memorije je jednostavno kao slanje hex datoteke. Unesite naredbu “P” koja odgovara sa “Pošalji heksadecimalnu datoteku …”.

Pomoću hiper-terminala iz izbornika Prijenos> Pošalji tekstualnu datoteku> PICMETER1. HEX> Otvori.

Napredak je označen znakom „:“. jer je svaki red heksadecimalnog koda programiran. Napokon učitajte uspjeh.

Ako koristite PuTTY, možda ćete morati koristiti Notepad i kopirati/zalijepiti cijeli sadržaj PICMETER1. HEX u PuTTY.

Slično za provjeru, unesite naredbu “V”. U hiper terminalu iz izbornika Prijenos> Pošalji tekstualnu datoteku> PICMETER1. HEX> OK.

Upozorenje = xx … Ako programirate čip 16F877A, dobit ćete neke poruke upozorenja. To se odnosi na razlike između 877 i 877A, koji programiraju u blokovima od 4 riječi. Nažalost, povezivač ne poravnava početak odjeljaka na granicama od 4 riječi. Jednostavno rješenje je imati 3 NOP upute na početku svakog odjeljka, pa zanemarite upozorenja.

Ponovo pokrenite i na izborniku za pokretanje BIOS -a odaberite "Pokreni aplikaciju". Trebali biste vidjeti PICMETER1 na LCD -u.

4.6 Pokrenite PICMETER1

Sada počnite graditi više odjeljaka razvojne ploče (slika 2) kako bi voltmetar, komponente mjerača radile po potrebi.

Mjeraču1 treba kalibracija. Na funkciji "Cal", podesite R10 tako da daje očitanja od 80,00, 80,0nF i 10 000uF pribl. Zatim pročitajte malih 100pF na Cx1 funkciji. Ako je očitanje van, promijenite zaštitnu kapicu C13 ili promijenite vrijednost „trimc“u meter1.asm.

Sada pokrenite PICBIOS Setup i promijenite nekoliko postavki kalibracije u EEPROM -u. Kalibrirajte temperaturu podešavanjem 16-bitnog pomaka (visoki, niski format). Možda ćete također morati promijeniti vrijednost "delayt".

Ako vam je namjera izgraditi projekt onakvim kakav je - Čestitamo - završili ste! Recite mi o svom uspjehu na Instructables.

4.7 MPLAB

Ali ako želite izmijeniti ili dodatno razviti projekt, morate ponovo izgraditi softver koristeći MPLAB. Preuzmite MPLAB s Microchipa. Ovo je „stari“koji je jednostavan i jasan za upotrebu. Nisam isprobao novi razvojni alat za labx koji izgleda daleko složenije.

Pojedinosti o tome kako stvoriti novi projekt, a zatim dodati datoteke projektu u Punoj dokumentaciji.

Korak 5: Fotografije testiranja

Fotografije sa testiranja
Fotografije sa testiranja
Fotografije sa testiranja
Fotografije sa testiranja
Fotografije sa testiranja
Fotografije sa testiranja

Gornja fotografija termometra sa očitanjem od 15 ° C

Učestalost testiranja, očitavanje = 416k

Ispitni induktor označen sa 440uF, očitava 435u

Testiranje otpornika od 100 k, čitanje 101 k, to je jednostavno.

Testiranje 1000pF kondenzatora, očitanje 1.021nF

Korak 6: Reference i veze

6.1 PIC16F87XA Tehnički list, Microchip Inc.

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

6.2 PIC16F87XA FLASH memorijsko programiranje, Microchip

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

6.3 Napomena o prijavi AN589, Microchip Inc.

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

6.4 Preuzimanje PICPGM -a

picpgm.picprojects.net/

6.5 MPLab IDE v8.92 besplatno preuzimanje, Microchip

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

6.6 Tehnički listovi za module Hope RFM01-433 i RFM02-433, RF rješenja

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

6.7 LT Spice, analogni uređaji

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

6.8 Sklop programatora slike zasnovanog na AN589, Best-Microcontroller-Projects

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

6.9 Datoteke otvorenog koda

open_source

Preporučuje se: