Cuprins:
- Provizii
- Pasul 1: Descriere PICBIOS
- Pasul 2: Descriere PICMETER
- Pasul 3: Descrierea circuitului
- Pasul 4: Ghid de construcție
- Pasul 5: Fotografii de testare
- Pasul 6: Referințe și linkuri
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
PICMETER Introducere
Acest proiect PICMETER a devenit un instrument util și fiabil pentru orice pasionat de electronice.
- Funcționează pe un microcontroler PIC16F877 / 877A.
- Este un sistem de dezvoltare PIC
- Este multimetru cu 19 funcții (voltmetru, contor de frecvență, generator de semnal, termometru …)
- Este un verificator de componente (R, L, C, diodă …) cu până la 5 intervale pe fiecare funcție.
- Are un radio ASK cu bandă de 433 MHz, care așteaptă un fel de aplicație.
- Este un sistem de achiziție la distanță, unde un alt computer (PC) poate colecta date prin portul serial pentru afișare grafică. (A fost folosit ca front-end al proiectului ECG).
- Are o facilitate de înregistrare (pentru înregistrarea datelor peste ore), rezultatele sunt încărcate din EEPROM.
- Produce semnale de test pentru a acționa unele motoare.
- Este testat temeinic, vezi fotografiile de la Pasul 5.
- Software-ul este lansat ca Open Source
Acest instructabil este o versiune redusă a documentației complete. Acesta descrie hardware-ul și software-ul suficient pentru ca alții să îl construiască fie ca un proiect finalizat, fie să îl folosească ca sistem de dezvoltare pentru a face modificări ulterioare, sau doar să caute idei pe care să le folosească în alte proiecte.
Provizii
Singurul cip critic de cumpărat este Microchip PIC16F877A-I / P
- A = versiunea ulterioară care diferă de cea originală în definiția biților de configurare.
- I = Intervalul de temperatură industrială
- P = pachet dublu din plastic cu 40 de plumb, 10 MHz, limite normale de VDD.
De asemenea, Hitachi LM032LN 20 caractere pe 2 linii LCD care are incorporat controlerul HD44780.
Celelalte părți sunt doar componente electrice generice, PCB cu bandă, LM340, LM311, LM431, tranzistoare de uz general de mică putere etc.
Pasul 1: Descriere PICBIOS
PICBIOS Descriere
Acest software rulează pe o placă PIC16F877 și ocupă 4k de memorie de jos a programului. Acesta oferă mediul software pentru un program de aplicație care ocupă jumătatea superioară a memoriei programului. Are o idee similară cu PC-BIOS-ul, cu câteva comenzi de „depanare” precum dezvoltarea programului și are 5 componente:
- Meniu Boot
- Program de configurare
- Interfață linie de comandă (prin port serial)
- Kernel și drivere de dispozitiv
- Interfața de programare a aplicației
Pasul 2: Descriere PICMETER
PICMETER Descriere
Introducere
La fel ca un multimetru (volți, amperi, ohmi), acesta are multe funcții care sunt selectate prin intermediul unui sistem de meniu. Dar fiind o combinație de hardware și software îl face foarte versatil, de exemplu sunt disponibile caracteristici precum înregistrarea pe perioade lungi și trimiterea de date seriale.
Meniul este „inima” unde funcțiile sunt selectate prin intermediul butoanelor [stânga] și [dreapta]. Apoi pentru fiecare funcție sunt selectate intervale diferite prin butoanele [inc] și [dec]. De exemplu, condensatorii sunt măsurați de la aproximativ 0,1nF la 9000uF prin intermediul a 5 intervale separate.
2.1 Software PICMETER
Acesta este organizat ca un program de aplicație care ocupă 4k superioare de memorie de program și se bazează pe funcțiile PICBIOS pentru I / O dispozitiv și gestionarea întreruperilor. Se compune din secțiunea de meniu care rulează ca sarcină de fundal și sondează butoanele la fiecare 20 ms. Când este apăsat un buton pentru a schimba funcția sau a schimba intervalul, se apelează rutina corespunzătoare. Când nu sunt apăsate butoane, citirea măsurată este actualizată la intervale de aproximativ 0,5 sec. Practic meniul este un tabel de căutare.
2.2 Funcția contorului - secțiuni
Există multe funcții, astfel încât această parte este împărțită în secțiuni, fiecare tratând funcții de natură similară. Aceasta este o scurtă listă a secțiunilor, consultați documentația completă pentru a vedea cum funcționează fiecare secțiune în detaliu. Datorită limitărilor portului, există 3 variante ale proiectului (consultați Documentația completă). Funcțiile în font normal sunt comune tuturor proiectelor. Funcțiile UNDERLINED sunt incluse numai în proiectul PICMETER1. Funcțiile în ITALICS sunt incluse numai în proiectele PICMETER2 sau PICMETER3.
Secțiunea VoltMeter - Fișierul sursă este vmeter.asm
Conținând funcții care se bazează pe măsurarea tensiunii folosind ADC.
- Tensiune ADC (citește tensiunea la intrarea selectată, AN0 la AN4)
- AD2 Dual (afișează tensiunea pe AN0 și AN1 simultan)
- Termometru TMP -10 până la 80? degC (traductor 2N3904 sau dual LM334)
- LOG - setează intervalul de înregistrare
- OHM - Măsurarea rezistenței (metoda potențiometrului) de la 0Ω la 39MΩ în 4 intervale
- DIO - Diodă, măsoară tensiunea înainte (0-2,5V)
- CON - Continuitate (emite semnale sonore atunci când rezistența este mai mică decât pragul de 25, 50 sau 100)
Component Meter1 - Fișierul sursă este meter1.asm
Măsurarea condensatorului, inductorului și rezistorului utilizând circuitul comparator LM311. Pe baza măsurării timpului unui ciclu de încărcare.
- CAL - calibrare - măsoară 80nf și 10μF fixe pentru autotestare și reglare
- Cx1 - măsurarea condensatorului de la 0,1nF la 9000μF în 5 intervale
- Lx1 - măsurarea inductorului de la 1mH la ?? mH în 2 intervale
- Rx1 - măsurare rezistență de la 100Ω la 99MΩ în 3 domenii
Component Meter2 Fișier sursă Meter2.asm
Măsurarea componentelor utilizând oscilatorul de relaxare LM311 alternativ și oscilatorul Colpitts. Pe baza măsurării perioadei de timp de N cicluri. Acest lucru este puțin mai precis decât metoda de mai sus, deoarece se măsoară timpul de N = până la 1000 de cicluri. Este mai mult o soluție hardware și necesită mai multă construcție.
- Cx2 - măsurarea condensatorului de la 10pF la 1000 μF în 5 intervale.
- Rx2 - măsurare rezistență de la 100 ohmi la 99M în 5 intervale.
- Lx2 - măsurare inductor de la 1mH la 60mH într-un interval 1.
- osc - măsurarea inductorului (metoda Colpitts) de la 70μH la 5000μH? în 2 game.
Frequency Meter - fișier sursă Fmeter.asm
Conținând funcții care utilizează contoare și cronometre PIC și puțin altceva;
- FREQ - Frecvență de la 0Hz la 1000kHz în 3 intervale
- XTL - măsoară frecvența cristalelor LP (nu este testată)
- SIG - generator de semnal de la 10Hz la 5KHz în 10 pași
- SMR - motor pas cu pas - direcție inversă
- SMF - motor pas cu pas - direcție înainte.
Comunicări - Fișierul sursă este comms.asm
Funcții de transmitere / recepție a semnalului pentru testarea perifericelor seriale și SPI;
- UTX testează serial TX & inc și rata de biți dec de la 0,6 la 9,6k
- URX testează seria RX & inc și rata de biți dec de la 0,6 la 9,6k
- SPM - testează SPI în modul master
- SPS - testează SPI în modul slave
Modul radio FSK - Fișierul sursă este Radio.asm
Funcții care utilizează module de recepție și transmisie radio RM01 și RM02. Aceste module se interfață prin SPI, care folosește majoritatea pinilor Port C.
- RMB - setează rata BAUD a modulului radio
- RMF - setați frecvența RF a modulului radio
- RMC - setează frecvența ceasului modulului radio
- XLC - reglează sarcina de capacitate a cristalului
- POW - setează puterea emițătorului
- RM2 - transmite date de testare (modul RM02)
- RM1 - primiți date de testare (modul RM01)
Modul de control - Fișier sursă control.asm
- SV1 - Servo Output (folosind CCP1) de la 1 ms la 2 ms în pași de 0,1 ms
- SV2 - Servo Output (folosind CCP2) de la 1 ms la 2 ms în pași de 0,1 ms
- PW1 - ieșire PWM (folosind CCP1) de la 0 la 100% în pași de 10%
- PW2 - ieșire PWM (folosind CCP2) de la 0 la 100% în pași de 10%
Achiziție de date la distanță - Fișierul sursă este remote.asm
Mod la distanță (Rem) - un set de comenzi, astfel încât contorul să poată fi acționat de la un computer printr-o interfață serială. O comandă colectează datele înregistrate în EEPROM pe o perioadă de ore. O altă comandă citește tensiunile la viteza maximă a ADC în memoria tampon, apoi transmite memoria tampon către PC, unde rezultatele pot fi afișate grafic. Acesta este efectiv un osciloscop, care funcționează pe o gamă de frecvențe audio
Time - Fișierul sursă este time.asm
Tim - afișează doar ora în format hh: mm: ss și permite schimbarea utilizând 4 butoane
Pasul 3: Descrierea circuitului
Descrierea circuitului
3.1 Consiliul de dezvoltare de bază
Figura 1 prezintă o placă de dezvoltare de bază pentru a pune PICBIOS în funcțiune. Este o sursă de alimentare reglementată de 5V și condensatori de decuplare foarte standard și simplă, C1, C2….
Ceasul este de cristal de 4 MHz, astfel încât TMR1 bifează la intervale de 1us. Condensatoarele 22pF C6, C7 sunt recomandate de Microchip, dar nu par a fi de fapt necesare. Antetul ICSP (in-circuit-serial-programming) este utilizat pentru a programa inițial un PIC gol cu PICBIOS.
Portul serial (COM1) - nota TX și RX sunt schimbate, adică COM1- TX este conectat la portul C-RX, iar COM1- RX este conectat la portul C-TX (denumit în mod obișnuit „modem nul”). De asemenea, nivelurile de semnal necesare pentru RS232 ar trebui să fie într-adevăr + 12V (spațiu) și -12V (marcaj). Cu toate acestea, nivelurile de tensiune de 5V (spațiu) și 0V (marca) par adecvate pentru toate computerele pe care le-am folosit. Deci, nivelurile de semnal ale RX și TX sunt inversate doar de driverul de linie (Q3) și receptorul de linie (Q2).
LCD-ul LM032LN (2 rânduri cu 20 de caractere) utilizează „interfața HD44780” standard. Software-ul folosește modul de scriere și scriere pe 4 biți, care folosește 6 pini de port D. Software-ul poate fi configurat pentru nibble low (Port D bits 0-3) sau nibble high (Port D bits 4-7) așa cum este utilizat aici.
Comutatoarele butonului oferă patru intrări pentru selectarea meniului. Utilizați apăsarea pentru a face comutatoare, deoarece software-ul detectează marginea de cădere. Rezistențele de tragere (= 25k) sunt interne PORT B. Portul RB6 nu poate fi utilizat pentru comutatoare, din cauza capacului 1nF (care este recomandat pentru ICSP). Nu este nevoie de un comutator de resetare?
buton0
opțiuni de meniu la stânga [◄]
buton1
opțiuni meniu dreapta [►]
butonul2
crește intervalul / valoarea / selectează [▲]
buton3
decrement range / value / select [▼]
3.2 Intrări analogice și verificarea componentelor - placa 1
Figura 2 prezintă circuitele analogice pentru PICMETER1. Intrările analogice AN0 și AN1 sunt utilizate pentru măsurarea tensiunii de uz general. Selectați valorile rezistenței pentru atenuatoare pentru a da 5V pe pinii de intrare AN0 / AN1.
Pentru intervalul de intrare 10V, m = 1 + R1 / R2 = 1 + 10k / 10k = 2
Pentru domeniul de intrare 20V, m = 1 + (R3 + R22) / R4 = 1 + 30k / 10k = 4
AN2 este utilizat pentru măsurarea temperaturii folosind tranzistorul Q1 ca traductor de temperatură „brut”. Coeficientul de temperatură al tranzistorului NPN la 20 celcuis = -Vbe / (273 + 20) = - 0,626 / 293 = -2,1 mV / K. (a se vedea măsurarea temperaturii în secțiunea analogică). LM431 (U1) oferă o referință de tensiune de 2,5V pe AN3. În cele din urmă, AN4 este utilizat pentru testarea componentelor în secțiunea analogică.
Pentru măsurarea componentelor, componenta de testare este conectată la intrarea RE2 (D_OUT) și la intrarea AN4. Rezistențele R14 până la R18 furnizează cinci valori diferite ale rezistenței utilizate pentru măsurarea rezistenței (metoda potențiometrului) în secțiunea analogică. Rezistențele sunt „conectate în circuit” prin setarea pinilor Port C / Port E ca intrare sau ieșire.
Meter1 efectuează măsurarea componentelor prin încărcarea diferitelor combinații de condensator și rezistor cunoscut / necunoscut. LM311 (U2) este folosit pentru a crea întreruperi CCP1 atunci când un condensator se încarcă la pragul superior (75% VDD) și se descarcă la pragul inferior (25% VDD) Aceste tensiuni de prag sunt setate de R8, R9, R11 și potențiometrul R10, ceea ce oferă o ușoară ajustare. La testarea condensatoarelor, condensatorul C13 (= 47pF) plus capacitatea rătăcită a plăcii asigură o tăiere de 100pF. Acest lucru asigură că, atunci când componenta de testare este eliminată, intervalul dintre întreruperile CCP1 depășește 100us și nu suprasolicită PIC. Această valoare de trim (100pF) este scăzută din măsurarea componentelor prin software. D3 (1N4148) asigură calea de descărcare la testarea inductoarelor și protejează D_OUT, împiedicând tensiunea să devină negativă.
λΩπμ
Pasul 4: Ghid de construcție
Ghid de construcție
Un lucru bun este că acest proiect este construit și testat în etape. Planificați-vă proiectul. Pentru aceste instrucțiuni presupun că construiți PICMETER1, deși procedura este similară pentru PICMETER2 și 3.
4.1 PCB placa de dezvoltare
Trebuie să construiți placa de dezvoltare de bază (Figura 1) care ar trebui să se potrivească pe un PCB de dimensiuni standard de 100 x 160 mm, planificați aspectul pentru a rămâne cât mai ordonat posibil. Curățați PCB-ul și stanjați tot cuprul, utilizați componente și conectori fiabili, testați acolo unde este posibil. Utilizați o priză cu 40 de pini pentru PIC. Verificați continuitatea tuturor îmbinărilor lipite. Poate fi util să vă uitați la fotografiile de mai sus.
Acum aveți un PIC gol și trebuie să programați PICBIOS în memoria flash. Dacă aveți deja o metodă de programare - bine. Dacă nu, recomand următoarea metodă pe care am folosit-o cu succes.
4.2 Programator AN589
Acesta este un mic circuit de interfață care permite programarea unui PIC de pe un computer utilizând portul imprimantei (LPT1). Designul a fost publicat inițial de Microchip într-o Notă de aplicație. (referința 3). Obțineți sau creați un programator compatibil AN589. Am folosit un design îmbunătățit AN589 descris aici. Acesta este ICSP - ceea ce înseamnă că introduceți PIC în soclul cu 40 de pini pentru al programa. Apoi conectați cablul imprimantei la intrarea AN539 și cablul ICSP de la AN589 la placa de dezvoltare. Proiectarea mea de programator își ia puterea de pe placa de dezvoltare prin cablul ICSP.
4.3 Setări PICPGM
Acum aveți nevoie de câteva programe software pentru a rula pe computer. PICPGM funcționează cu diverși programatori, inclusiv AN589, și este descărcat gratuit. (Vezi Referințe).
Din meniul Hardware, selectați Programator AN589, pe LPT1
Dispozitiv = PIC16F877 sau 877A sau detectare automată.
Selectați Fișier hexagonal: PICBIOS1. HEX
Selectați Ștergeți PIC, apoi Programați PIC, apoi Verificați PIC. Cu ceva noroc veți primi un mesaj de finalizare cu succes.
Scoateți cablul ICSP, Reporniți PIC, sperăm să vedeți afișajul PICBIOS pe LCD, altfel verificați conexiunile. Verificați meniul de pornire apăsând butoanele stânga și dreapta.
4.4 Conexiune serial (hiperterminal sau chit)
Acum verificați conexiunea serială între PIC și PC. Conectați cablul serial de pe PC COM1 la placa de dezvoltare și rulați un program de comunicații, cum ar fi vechiul Win-XP Hyper-Terminal sau PUTTY.
Dacă utilizați Hyperterminal, configurați după cum urmează. Din meniul principal, Apelați> Deconectați. Apoi Fișier> Proprietăți> Conectare la fila. Selectați Com1, apoi faceți clic pe butonul Configurare. Selectați 9600 bps, fără paritate, 8 biți, 1 oprire. Controlul fluxului hardware”. Apoi Apelați> Apelați pentru a vă conecta.
Dacă utilizați PuTTY, Conexiune> Serial> Conectare la COM1 și 9600 bps, fără paritate, 8 biți, 1 oprire. Selectați „RTS / CTS”. Apoi Sesiune> Serial> Deschidere
În meniul PICBIOS Boot, selectați „Command Mode”, apoi apăsați [inc] sau [dec]. Mesajul de solicitare „PIC16F877>“ar trebui să apară pe ecran (dacă nu verificați interfața serială). Presa ? pentru a vedea lista de comenzi.
4.5 Program PICMETER
Odată ce conexiunea serială funcționează, programarea memoriei flash este la fel de simplă ca trimiterea unui fișier hexagonal. Introduceți comanda „P”, care răspunde cu „Trimiteți fișier hex …”.
Folosind hyper-terminal, din meniul Transfer> Trimiteți fișier text> PICMETER1. HEX> Deschideți.
Progresul este indicat de „:.” deoarece fiecare linie de cod hex este programată. În cele din urmă, încărcați succesul.
Dacă utilizați PuTTY, poate fi necesar să utilizați Notepad și să copiați / lipiți întregul conținut al PICMETER1. HEX în PuTTY.
În mod similar pentru a verifica, introduceți comanda „V”. În hyper-terminal, din meniul Transfer> Trimiteți fișier text> PICMETER1. HEX> OK.
Avertisment = xx … Dacă programați un cip 16F877A, veți primi câteva mesaje de avertizare. Acest lucru este legat de diferențele dintre 877 și 877A, care programează în blocuri de 4 cuvinte. Din păcate, linkerul nu aliniază începutul secțiunilor pe limitele a 4 cuvinte. Soluția simplă este să aveți 3 instrucțiuni NOP la începutul fiecărei secțiuni, deci ignorați avertismentele.
Reporniți și în meniul de pornire BIOS, selectați „Rulați aplicația”. Ar trebui să vedeți PICMETER1 pe ecranul LCD.
4.6 Rulați PICMETER1
Acum începeți să construiți mai multe secțiuni ale plăcii de dezvoltare (Figura 2) pentru ca funcțiile Voltmeter, Component Meter să funcționeze după cum este necesar.
Meter1 are nevoie de o anumită calibrare. În funcția „Cal”, reglați R10 pentru a da citiri de 80.00, 80.0nF și 10.000uF aprox. Apoi citiți un mic 100pF pe funcția Cx1. Dacă citirea este oprită, fie schimbați capacul de tăiere C13, fie modificați valoarea „trimc” în meter1.asm.
Acum rulați PICBIOS Setup și modificați câteva setări de calibrare în EEPROM. Calibrați temperatura reglând decalajul de 16 biți (format înalt, scăzut). Este posibil să fie necesar să modificați valoarea „delayt”.
Dacă intenția dvs. este să construiți proiectul așa cum este - Felicitări - ați terminat! Povestește-mi despre succesul tău pe Instructables.
4,7 MPLAB
Dar dacă doriți să faceți modificări sau să dezvoltați proiectul în continuare, trebuie să reconstruiți software-ul folosind MPLAB. Descărcați MPLAB de la Microchip. Acesta este cel „vechi”, simplu și simplu de utilizat. Nu am încercat noul instrument de dezvoltare labx care pare mult mai complicat.
Detalii despre cum să creați un proiect nou și apoi să adăugați fișiere în proiect în Documentație completă.
Pasul 5: Fotografii de testare
Fotografia de deasupra termometrului, citind 15 grade Celsius
Frecvența de testare, citire = 416k
Inductorul de testare marcat 440uF, citește 435u
Testarea rezistenței de 100k, citește 101k, este una ușoară.
Testarea condensatorului 1000pF, citirea este 1.021nF
Pasul 6: Referințe și linkuri
6.1 Fișa tehnică PIC16F87XA, Microchip Inc.
ww1.microchip.com/downloads/en/devicedoc/39582b.pdf
6.2 Specificații de programare a memoriei PIC16F87XA FLASH, microcip
ww1.microchip.com/downloads/en/devicedoc/39589b.pdf
6.3 Notă de aplicare AN589, Microchip Inc.
ww1.microchip.com/downloads/en/appnotes/00589a.pdf
6.4 Descărcare PICPGM
picpgm.picprojects.net/
6.5 MPLab IDE v8.92 descărcare gratuită, Microchip
pic-microcontroller.com/mplab-ide-v8-92-free-download/
6.6 Fișe tehnice pentru module RFM01-433 și RFM02-433 Hope, soluții RF
www.rfsolutions.co.uk/radio-modules-c10/hope-rf-c238
6.7 LT Spice, dispozitive analogice
www.analog.com/en/design-center/design-tools-and-calculators/ltspice-simulator.html
6.8 Un circuit de programare pic bazat pe AN589, Best-Microcontroller-Projects
www.best-microcontroller-projects.com/pic-programmer-circuit.html
6.9 Fișiere Open Source
sursa deschisa
Recomandat:
Restabilirea unui multimetru era WW2 la ordinea de lucru .: 3 pași
Restabilirea unui multimetru era WW2 la ordinea de funcționare .: Acum câțiva ani am achiziționat acest multimetru Simpson Electric timpuriu pentru colecția mea. A venit într-o husă din piele neagră, care era în stare excelentă, având în vedere vârsta sa. Data de brevetare a Oficiului de Brevete din SUA pentru mișcarea contorului este 1936
Multimetru condensator ATTiny85: 4 pași
ATTiny85 Capacitor Meter: Acest instructable este pentru un condensator meter bazat pe ATTiny85 cu următoarele caracteristici. Bazat pe ATTiny85 (DigiStamp) SSD1306 0,96 " Afișaj OLED Măsurarea frecvenței pentru condensatori cu valoare redusă 1pF - 1uF folosind oscilatorul 555 Măsurarea timpului de încărcare
Multimetru USB Lithium reîncărcabil DT830 cu Polyfuse: 5 pași
Multimetru USB Lithium reîncărcabil DT830 cu Polyfuse: ■ Ce îmi place la acest contor Acest multimetru digital DT830LN (DMM) oferă▪ O dimensiune compactă 10A interval de măsurare curent ▼ Afișaj retroiluminat▪ Cost redus Modelul DT830D este identic și mai frecvent disponibil, dar nu are afișajul iluminat din spate. ■ Ce
Multimetru alimentat Arduino: 8 pași (cu imagini)
Multimetru alimentat Arduino: În acest proiect, veți construi un voltmetru și ohmmetru folosind funcția digitalRead a unui Arduino. Veți putea obține o citire aproape la fiecare milisecundă, mult mai precisă decât un multimetru tipic. În cele din urmă, datele pot fi accesate pe
Multimetru MT99 Mod baterie: 5 pași (cu imagini)
Mod baterie multimetru MT99: Acesta este un înlocuitor al capacului din spate pentru multimetrul Mustool MT99 (modelele MT77 și MT99PRO sunt similare). Dacă vă gândiți să cumpărați acest tip de multimetru, dar lipsa bateriei reîncărcabile vă ține pe garduri, iată o carcasă tipărită 3D