Tartalomjegyzék:

PIC16F877 Multiméter: 6 lépés
PIC16F877 Multiméter: 6 lépés

Videó: PIC16F877 Multiméter: 6 lépés

Videó: PIC16F877 Multiméter: 6 lépés
Videó: Digital DC ammeter using pic16f877a microcontroller 2024, Július
Anonim
PIC16F877 Multiméter
PIC16F877 Multiméter

PICMETER Bevezetés

Ez a PICMETER projekt hasznos és megbízható eszközzé nőtte ki magát minden elektronikai rajongó számára.

  • PIC16F877 / 877A mikrovezérlőn fut.
  • Ez egy PIC fejlesztési rendszer
  • Ez egy 19 funkciós multiméter (voltmérő, frekvenciamérő, jelgenerátor, hőmérő …)
  • Ez egy alkatrészellenőrző (R, L, C, dióda…), legfeljebb 5 tartományban minden funkciónál.
  • 433 MHz -es sávos ASK rádióval rendelkezik, amely valamiféle alkalmazásra vár.
  • Ez egy távoli adatgyűjtő rendszer, ahol egy másik számítógép (PC) gyűjthet adatokat a soros porton keresztül a grafikus megjelenítéshez. (Az EKG -projekt elülső részeként használták).
  • Naplózási lehetőséggel rendelkezik (az órákon keresztül történő naplózáshoz), az eredményeket az EEPROM -ból tölti fel.
  • Tesztjeleket állít elő egyes motorok meghajtására.
  • Alaposan tesztelt, lásd a fényképeket az 5. lépésben.
  • A szoftver nyílt forráskódban jelenik meg

Ez az útmutató a teljes dokumentáció kivágott változata. Leírja azt a hardvert és szoftvert, amely elegendő ahhoz, hogy mások elkészítsék azt akár befejezett projektként, akár fejlesztési rendszerként használhassák további változtatásokhoz, vagy csak tallózhassanak más projekteken használható ötletek között.

Kellékek

Az egyetlen megvásárolható kritikus chip a PIC16F877A-I/P mikrochip

  • A = a későbbi felülvizsgálat, amely a konfigurációs bitek definíciójában eltér az eredetitől.
  • I = Ipari hőmérsékleti tartomány
  • P = 40 elvezetésű műanyag kettős soros csomag, 10 MHz, normál VDD határértékek.

Szintén a Hitachi LM032LN 20 karakterből álló, 2 soros LCD, amely beépített HD44780 vezérlővel rendelkezik.

A többi rész csak általános elektromos alkatrészek, szalaglapos PCB, LM340, LM311, LM431, általános célú kis teljesítményű tranzisztorok stb.

1. lépés: PICBIOS leírás

PICBIOS Leírás
PICBIOS Leírás

PICBIOS Leírás

Ez a szoftver PIC16F877 kártyán fut, és a programmemória alsó 4k -jét foglalja el. Szoftverkörnyezetet biztosít a programmemória felső felét elfoglaló alkalmazás számára. Elméletileg hasonló a PC-BIOS-hoz, néhány „hibakeresési” paranccsal a programfejlesztéshez, és 5 összetevőből áll:

  1. Rendszerinditási menü
  2. Telepítő program
  3. Parancssori interfész (soros porton keresztül)
  4. Kernel és eszközillesztők
  5. Alkalmazás programozási felület

2. lépés: PICMETER Leírás

PICMETER Leírás
PICMETER Leírás

PICMETER Leírás

Bevezetés

Mint egy multiméter (volt, erősítő, ohm), ennek is számos funkciója van, amelyeket egy menürendszer segítségével lehet kiválasztani. A hardver és a szoftver kombinációja azonban nagyon sokoldalúvá teszi, például olyan funkciók állnak rendelkezésre, mint a hosszú távú naplózás és a soros adatok küldése.

A menü a „szív”, ahol a funkciókat a [bal] és [jobb] gombokkal lehet kiválasztani. Ezután minden funkcióhoz különböző tartományokat választanak ki az [inc] és [dec] gombokkal. Például a kondenzátorokat körülbelül 0,1 nF és 9000uF között mérik 5 különböző tartományban.

2.1 PICMETER szoftver

Ez egy olyan alkalmazásprogramként van megszervezve, amely a programmemória felső 4k -jét foglalja el, és a PICBIOS funkcióira támaszkodik az eszköz I/O és megszakítási kezeléséhez. Ez a menü részből áll, amely háttérfeladatként fut, és 20 ms -onként lekérdezi a gombokat. Amikor megnyom egy gombot a funkció megváltoztatásához vagy a tartomány megváltoztatásához, a megfelelő rutin meghívásra kerül. Ha egyetlen gombot sem nyom meg, a mért érték körülbelül 0,5 másodperces időközönként frissül. A menü alapvetően egy keresési táblázat.

2.2 Méter funkció - szakaszok

Sok funkció létezik, ezért ez a rész szakaszokra van osztva, amelyek mindegyike hasonló jellegű funkciókkal foglalkozik. Ez a szakaszok rövid listája, tekintse meg a teljes dokumentációt az egyes szakaszok részletes működésének megtekintéséhez. A portok korlátozása miatt a projektnek 3 változata van (lásd a teljes dokumentációt). A normál betűtípusú funkciók közösek minden projektnél. A KIEMELT funkciókat csak a PICMETER1 projekt tartalmazza. Az ITALICS funkcióit csak a PICMETER2 vagy PICMETER3 projektek tartalmazzák.

VoltMeter szakasz - A forrásfájl a vmeter.asm

Funkciókat tartalmaz, amelyek feszültségmérésen alapulnak az ADC segítségével.

  • ADC feszültség (feszültséget olvas a kiválasztott bemeneten, AN0 - AN4)
  • AD2 Dual (egyszerre mutatja az AN0 és AN1 feszültséget)
  • TMP hőmérő -10-80? degC (2N3904 vagy kettős LM334 jelátalakító)
  • LOG - beállítja a naplózási intervallumot
  • OHM - Ellenállásmérés (potenciométer módszer) 0Ω és 39MΩ között 4 tartományban
  • DIO-dióda, előremenő feszültséget (0-2,5V) méri
  • CON - Folytonosság (sípol, ha az ellenállás kisebb, mint 25, 50 vagy 100 küszöb)

Komponensmérő1 - A forrásfájl a meter1.asm

Kondenzátor, induktor és ellenállás mérése LM311 összehasonlító áramkör segítségével. Egy töltési ciklus idejének mérése alapján.

  • CAL - kalibrálás - rögzített 80nf és 10μF mérések az önteszthez és beállításhoz
  • Cx1 - kondenzátor mérés 0,1 nF és 9000μF között 5 tartományban
  • Lx1 - induktív mérés 1mH -tól ?? mH 2 tartományban
  • Rx1 - ellenállás mérés 100Ω -tól 99MΩ -ig 3 tartományban

Komponens Meter2 Forrásfájl Meter2.asm

Komponens mérés alternatív LM311 relaxációs oszcillátorral és Colpitts oszcillátorral. N ciklus időtartamának mérése alapján. Ez valamivel pontosabb, mint a fenti módszer, mivel N = 1000 ciklus idejét mérik. Ez inkább hardveres megoldás, és több konstrukciót igényel.

  • Cx2 - kondenzátor mérés 10pF és 1000 μF között 5 tartományban.
  • Rx2 - ellenállás mérés 100 ohm és 99M között 5 tartományban.
  • Lx2 - induktív mérés 1–60 mH 1 tartományban.
  • osc - induktor mérés (Colpitts módszer) 70μH és 5000μH között? 2 tartományban.

Frekvenciamérő - forrásfájl Fmeter.asm

Olyan funkciókat tartalmaz, amelyek PIC számlálót és időzítőt használnak, és nem sok mást;

  • FREQ - Frekvenciamérő 0 Hz és 1000 kHz között, 3 tartományban
  • XTL - méri az LP kristályok gyakoriságát (nem tesztelt)
  • SIG - jelgenerátor 10 Hz -től 5 kHz -ig 10 lépésben
  • SMR - léptetőmotor - fordított irány
  • SMF- léptetőmotor- előre irány.

Kommunikáció - A forrásfájl a comms.asm

Funkciók jel továbbítására/vételére soros és SPI perifériák tesztelésére;

  • UTX teszt soros TX & inc, és csökkenti a bitsebességet 0,6 és 9,6 k között
  • URX teszt soros RX & inc, és csökkenti a bitsebességet 0,6 és 9,6 k között
  • SPM - teszteli az SPI -t mester módban
  • SPS - teszteli az SPI -t slave módban

FSK rádiómodul - A forrásfájl a Radio.asm

Az RM01 és RM02 rádióvevő és adó modulokat használó funkciók. Ezek a modulok az SPI -n keresztül kapcsolódnak, amely a legtöbb C portot használja.

  • RMB - állítsa be a rádiómodul BAUD sebességét
  • RMF - állítsa be a rádió modul RF frekvenciáját
  • RMC - a rádiómodul órajelének beállítása
  • XLC - beállítja a kristálykapacitás terhelését
  • POW - beállítja az adó teljesítményét
  • RM2 - tesztadatok továbbítása (RM02 modul)
  • RM1 - tesztadatok fogadása (RM01 modul)

Vezérlőmodul - Forrásfájl control.asm

  • SV1 - Szervokimenet (CCP1 használatával) 1 ms és 2 ms között, 0,1 ms lépésekben
  • SV2 - Szervokimenet (CCP2 használatával) 1 ms és 2 ms között, 0,1 ms lépésekben
  • PW1 - PWM kimenet (CCP1 használatával) 0 és 100% között, 10% -os lépésekben
  • PW2 - PWM kimenet (CCP2 használatával) 0 és 100% között, 10% -os lépésekben

Távoli adatgyűjtés - A forrásfájl távoli.asm

Távoli mód (Rem) - parancskészlet, amellyel a mérőműszer számítógépről soros interfészen keresztül működtethető. Az egyik parancs órákon keresztül gyűjti az EEPROM -ba bejelentkezett adatokat. Egy másik parancs a feszültségeket az ADC teljes sebességével beolvassa a memóriapufferbe, majd továbbítja a puffert a PC -hez, ahol az eredmények grafikusan megjeleníthetők. Valójában ez egy oszcilloszkóp, amely az audio frekvenciatartományán dolgozik

Idő - A forrásfájl time.asm

Tim - csak órát jelenít meg óó: mm: ss formátumban, és lehetővé teszi a változtatást 4 gombbal

3. lépés: Az áramkör leírása

Áramkör leírása
Áramkör leírása
Áramkör leírása
Áramkör leírása

Áramkör leírása

3.1 Alapfejlesztési Tanács

Az 1. ábra egy alapvető fejlesztőpanelt mutat a PICBIOS futtatásához. Nagyon szabványos és egyszerű, 5 V -os szabályozott áramforrás és leválasztó kondenzátorok, C1, C2….

Az óra 4 MHz -es kristály, így a TMR1 1us intervallumokban ketyeg. A 22pF C6, C7 kondenzátorokat a Microchip ajánlja, de nem tűnik szükségesnek. Az ICSP fejléc (áramkörön belüli soros programozás) egy üres PIC programozására szolgál a PICBIOS segítségével.

A soros port (COM1)- a TX és az RX felcserélődnek, azaz a COM1-TX a C-RX porthoz, a COM1-RX pedig a C-TX porthoz (általában „null modem”) kapcsolódik. Az RS232 -hez szükséges jelszintnek valóban +12V (szóköz) és -12V (jel) értéknek kell lennie. Azonban az 5 V (szóköz) és 0 V (jel) feszültségszintek megfelelőnek tűnnek az összes használt számítógéphez. Tehát az RX és TX jelszinteket a vonal meghajtó (Q3) és a vonalvevő (Q2) csak megfordítja.

Az LM032LN (2 soros, 20 karakteres) LCD a szabványos „HD44780 interfészt” használja. A szoftver 4 bites nibble módot és csak írást használ, amely 6 tű D portot használ. A szoftver konfigurálható alacsony rágcsálásra (D port 0-3 bit) vagy magas rágásra (D port 4 bit).

A nyomógombos kapcsolók négy bemenetet biztosítanak a menü kiválasztásához. Használja a push gombot a kapcsolók készítéséhez, mivel a szoftver észleli a leeső élt. A felhúzó ellenállások (= 25k) a PORT B belső részei. Az RB6 port nem használható kapcsolókhoz az 1nF sapka miatt (ez ajánlott az ICSP-hez). Nincs szükség reset kapcsolóra?

gomb0

bal menüpontok [◄]

gomb 1

menüopciók jobbra [►]

gomb2

növekménytartomány/érték/kiválasztás [▲]

gomb 3

csökkentési tartomány/érték/kiválasztás [▼]

3.2 Analóg bemenetek és alkatrészellenőrző - kártya 1

A 2. ábra a PICMETER1 analóg áramkörét mutatja. Az AN0 és AN1 analóg bemenetek általános célú feszültségmérésre szolgálnak. Válassza ki a csillapítók ellenállási értékeit, hogy 5V legyen az AN0/AN1 bemeneti csapokon.

10V bemeneti tartomány esetén m = 1 + R1/R2 = 1 + 10k/10k = 2

20 V -os bemeneti tartomány esetén m = 1 + (R3 + R22)/R4 = 1 + 30k/10k = 4

Az AN2 -t a hőmérséklet mérésére használják a Q1 tranzisztor „nyers” hőmérséklet -átalakítójaként. Az NPN tranzisztor hőmérsékleti együtthatója 20 ° C -on = -Vbe/(273+20) = -0,626/293 = -2,1 mV/K. (lásd a hőmérsékletmérést az Analóg részben). Az LM431 (U1) 2,5 V feszültségreferenciát biztosít az AN3 -on. Végül az AN4 analóg szakaszban vagy komponens tesztelésre szolgál.

Alkatrészméréshez a tesztkomponens RE2 (D_OUT) és AN4 bemenetre van csatlakoztatva. Az R14 -R18 ellenállások öt különböző ellenállási értéket biztosítanak az ellenállás mérésére (potenciométer módszer) az analóg részben. Az ellenállások az áramkörben vannak összekötve a C/Port E portok bemenetként vagy kimenetként történő beállításával.

A Meter1 komponens mérést végez az ismert/ismeretlen kondenzátor és ellenállás különböző kombinációinak feltöltésével. Az LM311 (U2) CCP1 megszakítások létrehozására szolgál, amikor a kondenzátor a felső küszöbig (75% VDD) töltődik, és kisül az alsó küszöbhöz (25% VDD). Ezeket a küszöbfeszültségeket az R8, R9, R11 és az R10 potenciométer állítja be beállítás. A kondenzátorok tesztelésekor a C13 kondenzátor (= 47pF) és a kártya szórt kapacitása 100pF lefutást biztosít. Ez biztosítja, hogy a tesztkomponens eltávolításakor a CCP1 megszakítások közötti intervallum meghaladja a 100us értéket, és ne terhelje túl a PIC -t. Ezt a vágási értéket (100pF) vonják le a szoftver által végzett alkatrészmérésből. A D3 (1N4148) biztosítja a kisülési utat az induktivitások tesztelésekor, és védi a D_OUT -ot, megakadályozva a feszültség negatív csökkenését.

λΩπμ

4. lépés: Építési útmutató

Építési útmutató
Építési útmutató
Építési útmutató
Építési útmutató

Építési útmutató

Jó dolog, hogy ezt a projektet szakaszosan építik és tesztelik. Tervezze meg projektjét. Ezekhez az utasításokhoz feltételezem, hogy a PICMETER1 -et építi, bár az eljárás hasonló a PICMETER2 -hez és a 3 -hoz.

4.1 Fejlesztési tábla NYÁK

Fel kell építeni az alapvető fejlesztőlapot (1. ábra), amely illeszkedik egy 100 x 160 mm -es szabványos méretű NYÁK -ra, megtervezi az elrendezést, hogy a lehető legtisztább legyen. Tisztítsa meg a NYÁK -t és ónozzon minden rézből, használjon megbízható alkatrészeket és csatlakozókat, ahol lehetséges. Használjon 40 tűs aljzatot a PIC -hez. Folyamatosság ellenőrzése minden forrasztott kötés. Hasznos lehet, ha megnézem a fenti táblaelrendezési fotóimat.

Most van egy üres PIC -je, és be kell programoznia a PICBIOS -t a flash memóriába. Ha már rendelkezik programozási módszerrel - jó. Ha nem, akkor javaslom a következő módszert, amelyet sikeresen alkalmaztam.

4.2 AN589 Programozó

Ez egy kis interfész áramkör, amely lehetővé teszi a PIC programozását a számítógépről a nyomtató (LPT1) port használatával. A tervet eredetileg a Microchip tette közzé egy alkalmazásjegyzetben. (3. hivatkozás). Szerezzen be vagy készítsen AN589 kompatibilis programozót. Az itt leírt továbbfejlesztett AN589 konstrukciót használtam. Ez az ICSP - azaz behelyezi a PIC -t a 40 tűs foglalatba a programozáshoz. Ezután csatlakoztassa a nyomtató kábelét az AN539 bemenethez, az ICSP kábelt pedig az AN589 bemenetről a fejlesztőkártyához. A programozói tervezésem a fejlesztői tábláról veszi az erejét az ICSP kábelen keresztül.

4.3 PICPGM beállítások

Most szüksége van néhány programozó szoftverre a PC -n való futtatáshoz. A PICPGM különböző programozókkal működik együtt, beleértve az AN589 -et, és ingyenesen letölthető. (Lásd: Hivatkozások).

A Hardver menüben válassza az AN589 programozó lehetőséget az LPT1 rendszeren

Eszköz = PIC16F877 vagy 877A vagy automatikus észlelés.

Válassza ki a Hexa fájlt: PICBIOS1. HEX

Válassza a PIC törlése, majd a PIC programozása, majd a PIC ellenőrzése lehetőséget. Némi szerencsével sikeres befejezés üzenetet kap.

Távolítsa el az ICSP kábelt, Indítsa újra a PIC -t, remélhetőleg a PICBIOS kijelzőt látja az LCD -n, ellenkező esetben ellenőrizze a csatlakozásokat. Ellenőrizze a rendszerindító menüt a bal és a jobb gomb megnyomásával.

4.4 Soros kapcsolat (Hyperterminal vagy Putty)

Most ellenőrizze a soros kapcsolatot a PIC és a PC között. Csatlakoztassa a PC COM1 soros kábelét a fejlesztőkártyához, és futtasson kommunikációs programot, például a régi Win-XP Hyper-Terminal-t vagy PUTTY-t.

Ha Hyperterminal -t használ, az alábbiak szerint konfigurálja. A főmenüben válassza a Hívás> Leválasztás lehetőséget. Ezután válassza a Fájl> Tulajdonságok> Csatlakozás fülre. Válassza a Com1 lehetőséget, majd kattintson a Configure gombra. Válasszon 9600 bps -t, nincs paritás, 8 bit, 1 stop. Hardveráramlás -szabályozás”. Ezután hívás> Hívás a csatlakozáshoz.

PuTTY használata esetén a Csatlakozás> Soros> Csatlakozás a COM1 -hez és 9600 bps, nincs paritás, 8 bit, 1 stop. Válassza az „RTS/CTS” lehetőséget. Ezután Munkamenet> Soros> Megnyitás

A PICBIOS Boot menüben válassza a „Command Mode” parancsot, majd nyomja meg az [inc] vagy [dec] gombot. A „PIC16F877>” üzenetnek meg kell jelennie a képernyőn (ha nem, ellenőrizze a soros interfészt). Nyomja meg ? a parancsok listájának megtekintéséhez.

4.5 Program PICMETER

Ha a soros kapcsolat működik, a flash memória programozása olyan egyszerű, mint egy hexa fájl küldése. Írja be a „P” parancsot, amely a „Hexa fájl küldése…” üzenetre válaszol.

A hiperterminál használatával válassza az Átvitel menü> Szövegfájl küldése> PICMETER1. HEX> Megnyitás menüpontját.

A haladást a „:” jelzi. mivel a hexakód minden sora be van programozva. Végül Load Success.

Ha PuTTY -t használ, előfordulhat, hogy a Jegyzettömböt kell használnia, és be kell másolnia/beillesztenie a PICMETER1. HEX teljes tartalmát a PuTTY -ba.

Az ellenőrzéshez hasonlóan írja be a „V” parancsot. A hiperterminálban válassza az Átvitel menü> Szövegfájl küldése> PICMETER1. HEX> OK parancsát.

Figyelmeztetés = xx… Ha 16F877A chipet programoz, figyelmeztető üzeneteket fog kapni. Ennek oka a 877 és 877A közötti különbségek, amelyek 4 szavas blokkba programoznak. Sajnos a linker nem igazítja a szakaszok elejét 4 szóhatárra. Az egyszerű megoldás az, hogy minden szakasz elején van 3 NOP utasítás, ezért hagyja figyelmen kívül a figyelmeztetéseket.

Indítsa újra, majd a BIOS rendszerindító menüjében válassza az „Alkalmazás futtatása” lehetőséget. Látnia kell a PICMETER1 -et az LCD -n.

4.6 Futtassa a PICMETER1 -et

Most kezdje el a fejlesztői kártya további szakaszainak építését (2. ábra), hogy a Voltmeter, Component Meter funkciók megfelelően működjenek.

A Meter1 némi kalibrálást igényel. A „Cal” funkciónál állítsa be az R10 értéket, hogy a leolvasott értékek kb. 80,00, 80,0 nF és 10 000uF legyenek. Ezután olvasson egy kis 100pF értéket a Cx1 függvényen. Ha a leolvasott érték nem változik, vagy cserélje ki a C13 díszítősapkát, vagy módosítsa a „trimc” értékét a meter1.asm értékben.

Most futtassa a PICBIOS Setup programot, és módosítson néhány kalibrálási beállítást az EEPROM -ban. Kalibrálja a hőmérsékletet a 16 bites eltolás (magas, alacsony formátum) beállításával. Lehet, hogy módosítania kell a „delayt” értéket is.

Ha az a szándéka, hogy a projektet úgy építse fel, ahogy van - Gratulálunk - befejezte! Mesélj az Instructables sikeréről.

4,7 MPLAB

De ha módosítani szeretne, vagy tovább szeretné fejleszteni a projektet, akkor újra kell építenie a szoftvert az MPLAB használatával. Töltse le az MPLAB -ot a Microchipről. Ez a „régi”, amely egyszerűen és érthetően használható. Nem próbáltam ki az új labx fejlesztő eszközt, amely sokkal bonyolultabbnak tűnik.

Részletek az új projekt létrehozásáról, majd fájlok hozzáadásáról a projekthez a teljes dokumentációban.

5. lépés: Fotók a tesztelésről

Fotók a tesztelésről
Fotók a tesztelésről
Fotók a tesztelésről
Fotók a tesztelésről
Fotók a tesztelésről
Fotók a tesztelésről

A fenti képen a hőmérő, 15 ° C

Vizsgálati gyakoriság, leolvasás = 416k

A 440uF jelzésű induktor tesztelése 435u

100k ellenállás tesztelése, 101k, ez egyszerű.

Az 1000pF kondenzátor tesztelése, az érték 1,021 nF

6. lépés: Hivatkozások és hivatkozások

6.1 PIC16F87XA adatlap, Microchip Inc.

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

6.2 PIC16F87XA FLASH memóriaprogramozási specifikáció, mikrochip

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

6.3 Alkalmazási megjegyzés AN589, Microchip Inc.

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

6.4 PICPGM letöltés

picpgm.picprojects.net/

6.5 MPLab IDE v8.92 ingyenes letöltés, Microchip

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

6.6 Adatlapok a Hope RFM01-433 és RFM02-433 modulokhoz, RF Solutions

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

6.7 LT Spice, analóg eszközök

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

6.8 A kép programozó áramköre AN589, Best-Microcontroller-Projects alapján

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

6.9 Nyílt forráskódú fájlok

nyílt forráskód

Ajánlott: