Innholdsfortegnelse:
- Rekvisita
- Trinn 1: PICBIOS Beskrivelse
- Trinn 2: PICMETER Beskrivelse
- Trinn 3: Kretsbeskrivelse
- Trinn 4: Konstruksjonsguide
- Trinn 5: Bilder av testing
- Trinn 6: Referanser og lenker
Video: PIC16F877 Multimeter: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
PICMETER Introduksjon
Dette PICMETER -prosjektet har vokst til et nyttig og pålitelig verktøy for enhver elektronikkentusiast.
- Den kjører på en PIC16F877 / 877A mikrokontroller.
- Det er et PIC -utviklingssystem
- Det er 19-funksjoners multimeter (voltmeter, frekvensmåler, signalgenerator, termometer …)
- Det er en komponentkontroll (R, L, C, diode …) med opptil 5 områder på hver funksjon.
- Den har en 433MHz band ASK -radio, som venter på en slags applikasjon.
- Det er et eksternt oppkjøpssystem, der en annen datamaskin (PC) kan samle inn data via serieporten for grafisk visning. (Det har blitt brukt som frontend på EKG -prosjektet).
- Den har et loggingsanlegg (for datalogging over timer), resultatene lastes opp fra EEPROM.
- Den produserer testsignaler for å drive noen motorer.
- Den er grundig testet, se fotografier i trinn 5.
- Programvaren er utgitt som åpen kildekode
Denne instruksjonsboken er en nedskåret versjon av hele dokumentasjonen. Den beskriver maskinvaren og programvaren som er tilstrekkelig til at andre kan bygge den enten som et fullført prosjekt, eller bruke det som et utviklingssystem for å gjøre ytterligere endringer, eller bare lete etter ideer som kan brukes på andre prosjekter.
Rekvisita
Den eneste kritiske brikken å kjøpe er Microchip PIC16F877A-I/P
- A = den senere revisjonen som skiller seg fra originalen i definisjonen av konfigurasjonsbiter.
- I = Industrielt temperaturområde
- P = 40-bly plast to-linje-pakke, 10 MHz, normale VDD-grenser.
Også Hitachi LM032LN 20 tegn med 2 linjer LCD som har innebygd HD44780 kontroller.
De andre delene er bare generiske elektriske komponenter, PCB-kort, LM340, LM311, LM431, generelle laveffekttransistorer etc.
Trinn 1: PICBIOS Beskrivelse
PICBIOS Beskrivelse
Denne programvaren kjører på et PIC16F877 -kort og opptar de nederste 4k av programminnet. Det gir programvaremiljøet for et applikasjonsprogram som opptar den øverste halvdelen av programminnet. Den ligner ideen på PC-BIOS med noen få "feilsøkings" kommandoer for programutvikling og har 5 komponenter:
- Oppstartsmeny
- Oppsettsprogram
- Kommandolinjegrensesnitt (via seriell port)
- Kjerne- og enhetsdrivere
- Applikasjonsprogrammeringsgrensesnitt
Trinn 2: PICMETER Beskrivelse
PICMETER Beskrivelse
Introduksjon
Som et multimeter (volt, ampere, ohm) har dette mange funksjoner som velges ved hjelp av et menysystem. Men det å være en kombinasjon av maskinvare og programvare gjør det veldig allsidig, for eksempel funksjoner som logging over lange perioder og sending av serielle data er tilgjengelige.
Menyen er “hjertet” der funksjonene velges ved hjelp av [venstre] og [høyre] knappene. Deretter velges forskjellige områder for hver funksjon med [inc] og [dec] -knappene. For eksempel måles kondensatorer fra omtrent 0,1nF til 9000uF ved hjelp av 5 separate områder.
2.1 PICMETER -programvare
Dette er organisert som et applikasjonsprogram som opptar de øvre 4k av programminnet og er avhengig av funksjonene til PICBIOS for enhetens I/O og avbruddshåndtering. Den består av menyseksjonen som kjører som bakgrunnsoppgave og avstemmer knappene hver 20. ms. Når du trykker på en knapp for å endre funksjon eller endre område, kalles riktig rutine. Når du ikke trykker på noen knapper, oppdateres den målte avlesningen med omtrent 0,5 sek intervaller. I utgangspunktet er menyen et oppslagstabell.
2.2 Meterfunksjon - seksjoner
Det er mange funksjoner, så denne delen er delt inn i seksjoner, som hver omhandler funksjoner av lignende art. Dette er en kort liste over seksjonene, se hele dokumentasjonen for å se hvordan hver seksjon fungerer i detalj. På grunn av havnebegrensninger er det tre varianter av prosjektet (se full dokumentasjon). Funksjoner i normal skrift er felles for alle prosjekter. Funksjoner UNDERLINED er bare inkludert i PICMETER1 -prosjektet. Funksjoner i ITALICS er bare inkludert i PICMETER2- eller PICMETER3 -prosjekter.
VoltMeter Section - Kildefilen er vmeter.asm
Inneholder funksjoner som er basert på spenningsmåling ved bruk av ADC.
- ADC spenning (leser spenning på valgt inngang, AN0 til AN4)
- AD2 Dual (viser spenning på AN0 og AN1 samtidig)
- TMP -termometer -10 til 80? degC (2N3904 eller dobbel LM334 transduser)
- LOG - angir loggintervall
- OHM - Motstandsmåling (potensiometermetode) fra 0Ω til 39MΩ i 4 områder
- DIO-Diode, måler spenning fremover (0-2,5V)
- CON - Kontinuitet (pip når motstanden er mindre enn terskelen på 25, 50 eller 100)
Komponent Meter1 - Kildefilen er meter1.asm
Kondensator-, induktor- og motstandsmåling ved bruk av LM311 -komparatorkrets. Basert på måling av tiden til en ladesyklus.
- CAL - kalibrering - måler 80nf og 10μF for selvtest og justering
- Cx1 - kondensatormåling fra 0,1nF til 9000μF i 5 områder
- Lx1 - induktormåling fra 1mH til ?? mH i 2 områder
- Rx1 - motstandsmåling fra 100Ω til 99MΩ i 3 områder
Komponent Meter2 Kildefil Meter2.asm
Komponentmåling ved hjelp av alternativ LM311 avslapningsoscillator og Colpitts oscillator. Basert på måling av tidsperioden for N -sykluser. Dette er litt mer nøyaktig enn metoden ovenfor, ettersom tiden N = opptil 1000 sykluser måles. Det er mer en maskinvareløsning og krever mer konstruksjon.
- Cx2 - kondensatormåling fra 10pF til 1000 μF i 5 områder.
- Rx2 - motstandsmåling fra 100 ohm til 99M i 5 områder.
- Lx2 - induktormåling fra 1mH til 60mH i 1 område.
- osc - induktormåling (Colpitts -metoden) fra 70μH til 5000μH? i 2 områder.
Frekvensmåler - kildefil Fmeter.asm
Inneholder funksjoner som bruker PIC -tellere og tidtakere, og lite annet;
- FREQ - Frekvensmåler fra 0Hz til 1000kHz i 3 områder
- XTL - måler frekvensen av LP -krystaller (ikke testet)
- SIG - signalgenerator fra 10Hz til 5KHz i 10 trinn
- SMR - trinnmotor - motsatt retning
- SMF- trinnmotor- fremoverretning.
Kommunikasjon - Kildefilen er comms.asm
Funksjoner for å overføre/motta signal for å teste serielle og SPI -eksterne enheter;
- UTX test seriell TX & inc og dec bit rate fra 0,6 til 9,6k
- URX tester seriell RX & inc og nedbithastighet fra 0,6 til 9,6k
- SPM - tester SPI i hovedmodus
- SPS - tester SPI i slavemodus
FSK Radio Module - Kildefil er Radio.asm
Funksjoner som bruker RM01 og RM02 radiomottak og overføringsmoduler. Disse modulene grensesnitt via SPI, som bruker de fleste Port C -pinner.
- RMB - sett radiomodul BAUD -hastighet
- RMF - sett radiomodul RF -frekvens
- RMC - angir radiomodulens klokkefrekvens
- XLC - justerer krystallkapasitansbelastningen
- POW - angir senderens effekt
- RM2 - overfør testdata (RM02 -modul)
- RM1 - motta testdata (RM01 -modul)
Kontrollmodul - Kildefilkontroll.asm
- SV1 - Servo -utgang (ved bruk av CCP1) fra 1 ms til 2 ms i trinn på 0,1 ms
- SV2 - Servo -utgang (ved bruk av CCP2) fra 1 ms til 2 ms i trinn på 0,1 ms
- PW1 - PWM -utgang (ved bruk av CCP1) fra 0 til 100% i 10% trinn
- PW2 - PWM -utgang (ved bruk av CCP2) fra 0 til 100% i 10% trinn
Ekstern datainnsamling - kildefilen er remote.asm
Ekstern modus (Rem) - et sett med kommandoer slik at måleren kan betjenes fra en datamaskin via et serielt grensesnitt. En kommando samler inn data som er logget på EEPROM over en periode på timer. En annen kommando leser spenninger med full hastighet på ADC til minnebuffer, og overfør deretter bufferen til PC, hvor resultatene kan vises grafisk. Dette er effektivt et oscilloskop som arbeider over lydfrekvensområdet
Tid - kildefilen er time.asm
Tim - viser bare tiden i hh: mm: ss -format og tillater endring med 4 knapper
Trinn 3: Kretsbeskrivelse
Kretsbeskrivelse
3.1 Grunnleggende utviklingsstyre
Figur 1 viser et grunnleggende utviklingstavle for å få PICBIOS i gang. Det er veldig standard og grei, 5V regulert strømkilde og frakoblingskondensatorer, C1, C2….
Klokken er 4 MHz krystall, slik at TMR1 tikker i 1us intervaller. 22pF kondensatorene C6, C7 anbefales av Microchip, men ser ikke ut til å være nødvendig. ICSP-hodet (in-circuit-serial-programmering) brukes til å begynne med å programmere en tom PIC med PICBIOS.
Seriell port (COM1)- merk TX og RX byttes over, dvs. COM1- TX er koblet til Port C-RX, og COM1-RX er koblet til Port C-TX (ofte referert til som et "nullmodem"). Også signalnivåene som kreves for RS232 bør virkelig være +12V (mellomrom) og -12V (mark). Imidlertid virker spenningsnivåene på 5V (mellomrom) og 0V (merket) tilstrekkelig for alle PC -er jeg har brukt. Så signalnivåene til RX og TX blir bare invertert av linjedriver (Q3) og linjemottaker (Q2).
LM032LN (2-raders 20 tegn) LCD bruker standard "HD44780 grensesnitt". Programvaren bruker 4-bits nibble-modus og skrive bare, som bruker 6 pinner av port D. Programvaren kan konfigureres for nibble low (Port D bits 0-3) eller nibble high (Port D bits 4-7) som brukt her.
Trykknappbryterne gir fire innganger for menyvalg. Bruk trykk for å gjøre brytere ettersom programvare oppdager fallende kant. Trekkmotstandene (= 25k) er interne i PORT B. Port RB6 kan ikke brukes til brytere, på grunn av 1nF-hetten (som anbefales for ICSP). Er det ikke behov for en tilbakestillingsbryter?
knapp 0
menyalternativer igjen [◄]
knapp 1
menyalternativer høyre [►]
knapp 2
økningsområde/verdi/velg [▲]
knapp 3
reduser område/verdi/velg [▼]
3.2 Analoge innganger og komponentkontroll - brett 1
Figur 2 viser den analoge kretsen for PICMETER1. Analoge innganger AN0 og AN1 brukes til generelle spenningsmålinger. Velg motstandsverdier for dempere for å gi 5V på inngangspinner AN0/AN1.
For 10V inngangsområde, m = 1 + R1/R2 = 1 + 10k/10k = 2
For 20V inngangsområde, m = 1 + (R3 + R22)/R4 = 1 + 30k/10k = 4
AN2 brukes til temperaturmåling ved bruk av transistor Q1 som en "rå" temperaturomformer. Temperaturkoeffisient for NPN -transistor ved 20 celcuis = -Vbe/(273+20) = -0,626/293 = -2,1 mV/K. (se temperaturmåling i analog seksjon). LM431 (U1) gir en 2,5V spenningsreferanse på AN3. Til slutt brukes AN4 for eller komponenttesting i analog seksjon.
For komponentmåling er testkomponenten koblet til RE2 (D_OUT) og AN4 inngang. Motstandene R14 til R18 gir fem forskjellige motstandsverdier som brukes for motstandsmåling (potensiometermetode) i analog seksjon. Motstandene er "koblet i krets" ved å sette port C/Port E -pinner som enten inngang eller utgang.
Meter1 utfører komponentmåling ved å lade forskjellige kombinasjoner av kjent/ukjent kondensator og motstand. LM311 (U2) brukes til å lage CCP1 -avbrudd når en kondensator lades til den øvre terskelen (75% VDD) og tømmes til den nedre terskelen (25% VDD) Disse terskelspenningene settes med R8, R9, R11 og potensiometer R10 som gir svake justering. Når du tester kondensatorer, gir kondensator C13 (= 47pF) pluss den forsvinnende kapasitansen til kortet 100pF trim. Dette sikrer at intervallet mellom CCP1 -avbrudd når testkomponenten er fjernet overstiger 100us, og ikke overbelaster PIC. Denne trimverdien (100pF) trekkes fra komponentmåling med programvare. D3 (1N4148) gir utladningsbanen når du tester induktorer og beskytter D_OUT, og forhindrer at spenningen blir negativ.
λΩπμ
Trinn 4: Konstruksjonsguide
Konstruksjonsguide
En god ting er at dette prosjektet er bygget og testet i etapper. Planlegg prosjektet ditt. For disse instruksjonene antar jeg at du bygger PICMETER1, selv om prosedyren er lik for PICMETER2 og 3.
4.1 Utviklingsstyrets PCB
Du må bygge det grunnleggende utviklingsbordet (figur 1) som skal passe på en 100 x 160 mm PCB i standardstørrelse, planlegg oppsettet for å holde det så ryddig som mulig. Rengjør kretskortet og tinn alt kobber, bruk pålitelige komponenter og kontakter, testet der det er mulig. Bruk 40 -pinners kontakt for PIC. Kontinuitetskontroll av alle loddede skjøter. Det kan være nyttig å se på bildene mine på bordet ovenfor.
Du har nå en tom PIC, og du må programmere PICBIOS i flash -minne. Hvis du allerede har en programmeringsmetode - greit. Hvis ikke anbefaler jeg følgende metode som jeg har brukt vellykket.
4.2 AN589 programmerer
Dette er en liten grensesnittkrets som gjør at en PIC kan programmeres fra en PC ved hjelp av skriverporten (LPT1). Designet ble opprinnelig utgitt av Microchip i en Application Note. (referanse 3). Skaff eller lag en AN589 -kompatibel programmerer. Jeg har brukt en forbedret AN589 -design beskrevet her. Dette er ICSP - det vil si at du setter PIC -en inn i 40 -pinners kontakten for å programmere den. Koble deretter skriverkabelen til AN539 -inngangen og ICSP -kabelen fra AN589 til utviklingskortet. Min programmeringsdesign tar sin kraft fra utviklingskortet via ICSP -kabelen.
4.3 PICPGM -innstillinger
Du trenger nå litt programmeringsprogramvare for å kjøre på PC. PICPGM fungerer med forskjellige programmerere, inkludert AN589, og den lastes ned gratis. (Se referanser).
Fra maskinvaremenyen, velg Programmer AN589, på LPT1
Enhet = PIC16F877 eller 877A eller autodetekter.
Velg Hex File: PICBIOS1. HEX
Velg Slett PIC, deretter Program PIC, deretter Verify PIC. Med litt flaks får du en vellykket fullføringsmelding.
Fjern ICSP -kabelen, Start PIC -en på nytt, forhåpentligvis ser du PICBIOS -skjermen på LCD -skjermen, ellers sjekk tilkoblingene. Kontroller oppstartsmenyen ved å trykke på venstre og høyre knapp.
4.4 Seriell tilkobling (hyperterminal eller kitt)
Sjekk nå den serielle forbindelsen mellom PIC og PC. Koble seriekabelen fra PC COM1 til utviklingskortet og kjør et kommunikasjonsprogram, som den gamle Win-XP Hyper-Terminal eller PUTTY.
Hvis du bruker Hyperterminal, konfigurerer du som følger. Fra hovedmenyen, ring> Koble fra. Deretter Fil> Egenskaper> Koble til kategorien. Velg Com1, og klikk deretter på Konfigureringsknapp. Velg 9600 bps, ingen paritet, 8 bits, 1 stopp. Maskinvareflytkontroll”. Deretter Ring> Ring for å koble til.
Hvis du bruker PuTTY, Tilkobling> Seriell> Koble til COM1 og 9600 bps, ingen paritet, 8 bits, 1 stopp. Velg "RTS/CTS". Deretter sesjon> Seriell> Åpen
Velg “Command Mode” på PICBIOS Boot -menyen, og trykk deretter på [inc] eller [dec]. "PIC16F877>" -meldingen skal vises på skjermen (hvis ikke sjekk det serielle grensesnittet). Trykk ? for å se listen over kommandoer.
4.5 Program PICMETER
Når den serielle tilkoblingen fungerer, er programmering av flash -minne like enkelt som å sende en hex -fil. Skriv inn kommandoen "P", som svarer med "Send hex -fil …".
Ved hjelp av hyperterminal, fra menyen Overfør> Send tekstfil> PICMETER1. HEX> Åpne.
Fremgang er indikert med ":." som hver linje med hex-kode er programmert. Endelig Last suksess.
Hvis du bruker PuTTY, må du kanskje bruke Notisblokk og kopiere/lime inn hele innholdet i PICMETER1. HEX i PuTTY.
På samme måte for å bekrefte, skriv inn kommando “V”. I hyperterminal, fra menyen Overfør> Send tekstfil> PICMETER1. HEX> OK.
Advarsel = xx … Hvis du programmerer en 16F877A -brikke, får du noen advarselsmeldinger. Dette har å gjøre med forskjeller mellom 877 og 877A, som programmeres i 4 ordblokker. Dessverre justerer linkeren ikke starten på seksjoner på 4 ordgrenser. Den enkle løsningen er å ha 3 NOP -instruksjoner i starten av hver seksjon, så ignorer advarslene.
Start på nytt, og velg "Kjør applikasjon" på BIOS -oppstartsmenyen. Du bør se PICMETER1 på LCD -skjermen.
4.6 Kjør PICMETER1
Begynn nå å bygge flere deler av utviklingsbordet (figur 2) for å få Voltmeter, Component Meter -funksjoner til å fungere etter behov.
Meter1 trenger litt kalibrering. På “Cal” -funksjonen, juster R10 for å gi avlesninger på 80,00, 80,0nF og 10.000uF ca. Les deretter en liten 100pF på Cx1 -funksjon. Hvis avlesningen er ute, endrer du enten trimhetten C13, eller endrer verdien på “trimc” i meter1.asm.
Kjør nå PICBIOS Setup, og endre noen kalibreringsinnstillinger i EEPROM. Kalibrer temperaturen ved å justere 16-biters forskyvning (høyt, lavt format). Du må kanskje også endre verdien "delayt".
Hvis din intensjon er å bygge prosjektet som det er - Gratulerer - du er ferdig! Fortell meg om suksessen din på Instructables.
4,7 MPLAB
Men hvis du ønsker å gjøre endringer eller utvikle prosjektet videre, må du bygge om programvaren ved hjelp av MPLAB. Last ned MPLAB fra Microchip. Dette er den "gamle" som er enkel og grei å bruke. Jeg har ikke prøvd det nye labx utviklingsverktøyet som ser langt mer komplisert ut.
Detaljer om hvordan du oppretter et nytt prosjekt, og deretter legger du til filer i prosjektet i full dokumentasjon.
Trinn 5: Bilder av testing
Foto ovenfor av termometer, avlesning 15 grader
Testfrekvens, lesing = 416k
Testing av induktor merket 440uF, leser 435u
Testing av 100k motstand, leser 101k, det er enkelt.
Testing av 1000pF kondensator, lesing er 1.021nF
Trinn 6: Referanser og lenker
6.1 PIC16F87XA Dataark, Microchip Inc.
ww1.microchip.com/downloads/en/devicedoc/39582b.pdf
6.2 PIC16F87XA FLASH Memory Programming Specification, Microchip
ww1.microchip.com/downloads/en/devicedoc/39589b.pdf
6.3 Søknadsnotat AN589, Microchip Inc.
ww1.microchip.com/downloads/en/appnotes/00589a.pdf
6.4 PICPGM -nedlasting
picpgm.picprojects.net/
6.5 MPLab IDE v8.92 gratis nedlasting, Microchip
pic-microcontroller.com/mplab-ide-v8-92-free-download/
6.6 Dataark for Hope RFM01-433 og RFM02-433 moduler, RF Solutions
www.rfsolutions.co.uk/radio-modules-c10/hope-rf-c238
6.7 LT Spice, analoge enheter
www.analog.com/en/design-center/design-tools-and-calculators/ltspice-simulator.html
6.8 En pic programmerer-krets basert på AN589, Best-Microcontroller-Projects
www.best-microcontroller-projects.com/pic-programmer-circuit.html
6.9 Filer med åpen kildekode
åpen kilde
Anbefalt:
Gjenopprette et WW2 Era Multimeter til fungerende stand: 3 trinn
Gjenopprette et WW2 Era Multimeter til fungerende stand: For noen år siden kjøpte jeg dette tidlige Simpson Electric multimeteret til min samling. Den kom i en svart lærveske som var i utmerket stand med tanke på alder. Patentdatoen for US Patent Office for målerbevegelsen er 1936
USB litium ladbart DT830 multimeter med polyfuse: 5 trinn
USB litium gjenoppladbart DT830 multimeter med Polyfuse: ■ Hva jeg liker med denne måleren Denne DT830LN digitale multimeteret (DMM) tilbyr ▪ En kompakt størrelse ▪ 10A nåværende måleområde ▪ Bakgrunnsbelyst skjerm ▪ Lavpris DT830D modellen er identisk og mer vanlig tilgjengelig, men har ikke bakgrunnsbelyst skjerm. ■ Hva
Arduino drevet multimeter: 8 trinn (med bilder)
Arduino -drevet multimeter: I dette prosjektet skal du bygge et voltmeter og ohmmeter ved hjelp av digitalRead -funksjonen til en Arduino. Du vil kunne lese nesten hvert millisekund, mye mer presist enn et typisk multimeter. Til slutt kan du få tilgang til dataene fra
Hvordan bruke multimeter på tamilsk. Nybegynnerguide - Multimeter for nybegynnere: 8 trinn
Hvordan bruke multimeter på tamilsk. Nybegynnerguide | Multimeter for nybegynnere: Hei venner, I denne opplæringen har jeg forklart hvordan jeg bruker multimeter i alle slags elektronikkretser i 7 forskjellige trinn, for eksempel 1) kontinuitetstest for feilsøkingsutstyr 2) Måling av likestrøm 3) testing av diode og LED 4) måling Resi
16x64 P10 rullende LED -skjerm ved bruk av PIC16F877 mikrokontroller: 5 trinn (med bilder)
16x64 P10 rullende LED -skjerm ved bruk av PIC16F877 mikrokontroller: I denne instruksjonsboken beskriver du hvordan du grensesnitter 16 x 64 (p10) LED -matrisedisplay med PICI6F877A mikrokontroller. En data sendes til mikrokontrolleren via UART som er lagret i EEPROM, og dataene vil ha blitt vist på LED -matrisedisplayet. Det