Isi kandungan:

PIC16F877 Multimeter: 6 Langkah
PIC16F877 Multimeter: 6 Langkah

Video: PIC16F877 Multimeter: 6 Langkah

Video: PIC16F877 Multimeter: 6 Langkah
Video: Вот почему вы должны добавить эту схему в свой мультиметр. 2024, Julai
Anonim
PIC16F877 Multimeter
PIC16F877 Multimeter

PICMETER Pengenalan

Projek PICMETER ini telah berkembang menjadi alat yang berguna dan boleh dipercayai untuk setiap peminat elektronik.

  • Ia berjalan pada pengawal mikro PIC16F877 / 877A.
  • Ia adalah sistem pembangunan PIC
  • Ia adalah 19-fungsi multi-meter (voltmeter, meter frekuensi, penjana isyarat, termometer…)
  • Ia adalah pemeriksa komponen (R, L, C, diode …) dengan hingga 5 rentang pada setiap fungsi.
  • Ia mempunyai radio ASK jalur 433MHz, yang menunggu beberapa jenis aplikasi.
  • Ini adalah sistem pemerolehan jarak jauh, di mana komputer (PC) lain dapat mengumpulkan data melalui port bersiri untuk paparan grafik. (Ini telah digunakan sebagai bahagian depan projek ECG).
  • Ia mempunyai kemudahan pembalakan (untuk log data lebih dari beberapa jam), hasilnya dimuat naik dari EEPROM.
  • Ia menghasilkan isyarat ujian untuk menggerakkan beberapa motor.
  • Ia diuji secara menyeluruh, lihat gambar di Langkah 5.
  • Perisian ini dikeluarkan sebagai Open Source

Instructable ini adalah versi Dokumentasi Penuh. Ini menggambarkan perkakasan dan perisian yang cukup untuk orang lain untuk membinanya sama ada sebagai projek yang sudah siap, atau menggunakannya sebagai sistem pengembangan untuk membuat perubahan lebih lanjut, atau hanya mencari idea untuk digunakan pada projek lain.

Bekalan

Satu-satunya cip kritikal untuk dibeli ialah Microchip PIC16F877A-I / P

  • A = semakan kemudian yang berbeza dari yang asal dalam definisi bit konfigurasi.
  • I = Julat suhu industri
  • P = Pakej Dual In-Plastik Plastik 40-Lead, 10 MHz, had VDD biasa.

Juga watak Hitachi LM032LN 20 oleh LCD 2 baris yang telah dibina dalam pengawal HD44780.

Bahagian lain hanya komponen elektrik generik, PCB papan jalur, LM340, LM311, LM431, transistor kuasa rendah tujuan umum dll.

Langkah 1: Penerangan PICBIOS

Penerangan PICBIOS
Penerangan PICBIOS

Penerangan PICBIOS

Perisian ini berjalan pada papan PIC16F877 dan menempati 4k memori bahagian bawah program. Ini menyediakan persekitaran perisian untuk program aplikasi yang menempati separuh teratas memori program. Idea ini serupa dengan PC-BIOS dengan beberapa perintah seperti "debug" untuk pengembangan program dan mempunyai 5 komponen:

  1. Menu Boot
  2. Program persediaan
  3. Antaramuka Baris Perintah (melalui port bersiri)
  4. Pemacu kernel dan peranti
  5. Antara Muka Pengaturcaraan Aplikasi

Langkah 2: Penerangan PICMETER

Penerangan PICMETER
Penerangan PICMETER

Penerangan PICMETER

Pengenalan

Seperti multimeter (volt, amp, ohm) ini mempunyai banyak fungsi yang dipilih melalui sistem menu. Tetapi menjadi gabungan perkakasan dan perisian menjadikannya sangat serba boleh, misalnya ciri seperti log masuk dalam jangka masa yang panjang dan menghantar data bersiri tersedia.

Menu adalah "jantung" di mana fungsi dipilih dengan menggunakan butang [kiri] dan [kanan]. Kemudian untuk setiap fungsi julat yang berbeza dipilih oleh butang [inc] dan [dec]. Contohnya kapasitor diukur dari kira-kira 0.1nF hingga 9000uF melalui 5 julat yang berasingan.

2.1 Perisian PICMETER

Ini diatur sebagai program aplikasi yang memenuhi memori program 4k atas dan bergantung pada fungsi PICBIOS untuk peranti I / O dan pengendalian yang mengganggu. Ia terdiri daripada bahagian menu yang berfungsi sebagai tugas latar belakang dan memilih butang setiap 20ms. Apabila butang ditekan untuk mengubah fungsi atau mengubah julat, rutin yang sesuai dipanggil. Apabila tiada butang ditekan, bacaan yang diukur akan diperbaharui pada selang waktu sekitar 0.5 saat. Pada dasarnya menu adalah jadual carian.

2.2 Fungsi Meter - bahagian

Terdapat banyak fungsi sehingga bahagian ini dibahagi kepada beberapa bahagian, masing-masing berfungsi dengan fungsi yang serupa. Ini adalah senarai ringkas bahagian, lihat Dokumentasi Penuh untuk melihat bagaimana setiap bahagian berfungsi secara terperinci. Oleh kerana had pelabuhan, terdapat 3 variasi projek (lihat Dokumentasi Penuh). Fungsi dalam fon biasa adalah biasa untuk semua projek. Fungsi yang TIDAK DILARANG hanya termasuk dalam projek PICMETER1. Fungsi dalam ITALIK hanya disertakan dalam projek PICMETER2 atau PICMETER3.

Bahagian VoltMeter - Fail sumber adalah vmeter.asm

Mengandungi fungsi yang berdasarkan pengukuran voltan menggunakan ADC.

  • Voltan ADC (membaca voltan pada input terpilih, AN0 hingga AN4)
  • AD2 Dual (memaparkan voltan pada AN0 dan AN1 secara serentak)
  • Termometer TMP -10 hingga 80? degC (2N3904 atau dwi LM334 transduser)
  • LOG - menetapkan selang pembalakan
  • OHM - Pengukuran rintangan (kaedah potensiometer) dari 0Ω hingga 39MΩ dalam 4 julat
  • DIO - Diod, mengukur voltan hadapan (0-2.5V)
  • CON - Kesinambungan (bip apabila rintangan kurang dari ambang 25, 50 atau 100)

Komponen Meter1 - Fail sumber adalah meter1.asm

Pengukuran kapasitor, induktor dan perintang menggunakan litar pembanding LM311. Berdasarkan mengukur masa satu kitaran cas.

  • CAL - penentukuran - ukuran tetap 80nf dan 10μF untuk ujian & penyesuaian diri
  • Cx1 - pengukuran kapasitor dari 0.1nF hingga 9000μF dalam 5 julat
  • Lx1 - pengukuran induktor dari 1mH hingga ?? mH dalam 2 julat
  • Rx1 - pengukuran perintang dari 100Ω hingga 99MΩ dalam julat 3

Komponen Meter2 Sumber fail Meter2.asm

Pengukuran komponen menggunakan pengayun relaksasi alternatif LM311 dan pengayun Colpitts. Berdasarkan mengukur jangka masa kitaran N. Ini sedikit lebih tepat daripada kaedah di atas kerana masa N = hingga 1000 kitaran diukur. Ia lebih merupakan penyelesaian perkakasan dan memerlukan lebih banyak pembinaan.

  • Cx2 - pengukuran kapasitor dari 10pF hingga 1000 μF dalam 5 julat.
  • Rx2 - pengukuran perintang dari 100 ohm hingga 99M dalam 5 julat.
  • Lx2 - pengukuran induktor dari 1mH hingga 60mH dalam 1 julat.
  • osc - pengukuran induktor (kaedah Colpitts) dari 70μH hingga 5000μH? dalam 2 julat.

Frekuensi Meter - fail sumber Fmeter.asm

Mengandungi fungsi yang menggunakan pembilang dan pemasa PIC, dan lain-lain;

  • FREQ - Meter frekuensi dari 0Hz hingga 1000kHz dalam 3 julat
  • XTL - mengukur kekerapan kristal LP (tidak diuji)
  • SIG - penjana isyarat dari 10Hz hingga 5KHz dalam 10 langkah
  • SMR - motor stepper - arah terbalik
  • SMF - motor stepper- arah ke hadapan.

Komunikasi - Fail sumber adalah comms.asm

Fungsi untuk menghantar / menerima isyarat untuk menguji periferal bersiri dan SPI;

  • UTX siri bersiri TX & inc dan dec bit rate dari 0.6 hingga 9.6k
  • URX siri bersiri RX & inc dan dec bit rate dari 0.6 hingga 9.6k
  • SPM - menguji SPI dalam mod induk
  • SPS - menguji SPI dalam mod hamba

Modul Radio FSK - Fail sumber adalah Radio.asm

Fungsi menggunakan modul penerimaan dan penghantaran radio RM01 dan RM02. Modul ini antara muka melalui SPI, yang menggunakan sebahagian besar pin Port C.

  • RMB - tetapkan kadar BAUD modul radio
  • RMF - tetapkan frekuensi RF modul radio
  • RMC - menetapkan frekuensi jam modul radio
  • XLC - menyesuaikan beban kapasitansi kristal
  • POW - menetapkan kuasa pemancar
  • RM2 - menghantar data ujian (modul RM02)
  • RM1 - terima data ujian (modul RM01)

Modul Kawalan - kawalan fail sumber.asm

  • SV1 - Output Servo (menggunakan CCP1) dari 1ms hingga 2ms dalam langkah 0.1ms
  • SV2 - Output Servo (menggunakan CCP2) dari 1ms hingga 2ms dalam langkah 0.1ms
  • PW1 - Output PWM (menggunakan CCP1) dari 0 hingga 100% dalam 10% langkah
  • PW2 - Output PWM (menggunakan CCP2) dari 0 hingga 100% dalam 10% langkah

Perolehan Data Jauh - Fail sumber adalah remote.asm

Mod jauh (Rem) - satu set perintah sehingga meter dapat dikendalikan dari komputer melalui antara muka bersiri. Satu arahan mengumpulkan data yang dilog masuk di EEPROM selama beberapa jam. Perintah lain membaca voltan pada kelajuan penuh ADC ke buffer memori, kemudian menghantar buffer ke PC, di mana hasilnya dapat ditunjukkan secara grafik. Secara berkesan ini adalah osiloskop, berfungsi pada julat frekuensi audio

Masa - Fail sumber adalah time.asm

Tim - hanya memaparkan waktu dalam format hh: mm: ss dan membenarkan perubahan menggunakan 4 butang

Langkah 3: Penerangan Litar

Huraian Litar
Huraian Litar
Huraian Litar
Huraian Litar

Huraian Litar

3.1 Lembaga Pembangunan Asas

Rajah 1 menunjukkan papan pengembangan asas untuk menjalankan PICBIOS. Ia sangat standard dan mudah, sumber kuasa terkawal 5V dan kapasitor pemisah, C1, C2….

Jam adalah kristal 4 MHz, sehingga TMR1 berdetak dalam selang 1us. Kapasitor 22pF C6, C7 disyorkan oleh Microchip, tetapi nampaknya tidak diperlukan. Header ICSP (pengaturcaraan dalam litar-siri) digunakan untuk memprogram PIC kosong pada awalnya dengan PICBIOS.

Port bersiri (COM1) - perhatikan TX dan RX ditukar, iaitu COM1- TX disambungkan ke Port C-RX, dan COM1- RX disambungkan ke Port C-TX (biasanya disebut sebagai "modem null"). Tahap isyarat yang diperlukan untuk RS232 mestilah + 12V (ruang), dan -12V (tanda). Walau bagaimanapun, tahap voltan 5V (ruang) dan 0V (tanda) kelihatan mencukupi untuk semua PC yang telah saya gunakan. Jadi tahap isyarat RX dan TX hanya dibalikkan oleh pemacu talian (Q3) dan penerima talian (Q2).

LCD LM032LN (2-baris 20-watak) menggunakan "antara muka HD44780" standard. Perisian ini menggunakan mod nibble 4-bit dan hanya menulis, yang menggunakan 6 pin port D. Perisian ini boleh dikonfigurasi untuk nibble low (Port D bit 0-3) atau nibble high (Port D bit 4-7) seperti yang digunakan di sini.

Suis butang tekan memberikan empat input untuk pemilihan menu. Gunakan tekan untuk membuat suis kerana perisian mengesan kemerosotan. Perintang penarik (= 25k) adalah dalaman PORT B. Port RB6 tidak dapat digunakan untuk suis, kerana topi 1nF (yang disarankan untuk ICSP). Tidak ada keperluan untuk menukar semula?

butang0

pilihan menu kiri [◄]

butang1

pilihan menu betul [►]

butang2

julat kenaikan / nilai / pilih [▲]

butang3

julat penurunan / nilai / pilih [▼]

3.2 Input Analog dan Pemeriksa Komponen - Papan 1

Rajah 2 menunjukkan litar analog untuk PICMETER1. Input analog AN0 dan AN1 digunakan untuk pengukuran voltan tujuan umum. Pilih nilai perintang untuk atenuator untuk memberikan 5V pada pin input AN0 / AN1.

Untuk julat input 10V, m = 1 + R1 / R2 = 1 + 10k / 10k = 2

Untuk julat input 20V, m = 1 + (R3 + R22) / R4 = 1 + 30k / 10k = 4

AN2 digunakan untuk pengukuran suhu menggunakan transistor Q1 sebagai transduser suhu "kasar". Pekali suhu transistor NPN pada 20 celcuis = -Vbe / (273 + 20) = - 0.626 / 293 = -2.1 mV / K. (lihat pengukuran suhu di bahagian Analog). LM431 (U1) memberikan rujukan voltan 2.5V pada AN3. Akhirnya AN4 digunakan untuk atau pengujian komponen di bahagian Analog.

Untuk pengukuran komponen, komponen ujian dihubungkan merentasi Input RE2 (D_OUT) dan AN4. Perintang R14 hingga R18 memberikan lima nilai rintangan yang berbeza yang digunakan untuk pengukuran rintangan (kaedah potensiometer) di bahagian Analog. Perintang "disambungkan dalam litar" dengan menetapkan pin Port C / Port E sebagai Input atau Output.

Meter1 melakukan pengukuran komponen dengan mengecas pelbagai kombinasi kapasitor dan perintang yang diketahui / tidak diketahui. LM311 (U2) digunakan untuk membuat gangguan CCP1 apabila kapasitor mengisi ke ambang atas (75% VDD) dan melepaskan ke ambang bawah (25% VDD) Voltan ambang ini ditetapkan oleh R8, R9, R11 dan potensiometer R10 yang memberikan sedikit penyesuaian. Semasa menguji kapasitor, kapasitor C13 (= 47pF) ditambah kapasiti sesat pada papan memberikan trim 100pF. Ini memastikan bahawa, apabila komponen ujian dikeluarkan, selang antara gangguan CCP1 melebihi 100us, dan tidak membebani PIC. Nilai trim ini (100pF) dikurangkan dari pengukuran komponen oleh perisian. D3 (1N4148) menyediakan jalan keluar semasa menguji induktor dan melindungi D_OUT, mencegah voltan menjadi negatif.

λΩπμ

Langkah 4: Panduan Pembinaan

Panduan Pembinaan
Panduan Pembinaan
Panduan Pembinaan
Panduan Pembinaan

Panduan Pembinaan

Perkara yang baik ialah projek ini dibina dan diuji secara berperingkat. Rancangkan projek anda. Untuk arahan ini saya anggap anda membina PICMETER1, walaupun prosedurnya serupa untuk PICMETER2 dan 3.

4.1 Lembaga Pembangunan PCB

Anda perlu membina papan pengembangan asas (Gambar 1) yang harus dipasang pada PCB ukuran standard 100 x 160mm, rancangkan susun atur agar tetap kemas. Bersihkan PCB anda dan timah semua tembaga, gunakan komponen dan penyambung yang boleh dipercayai, diuji di mana mungkin. Gunakan soket 40 pin untuk PIC. Kesinambungan memeriksa semua sendi yang dipateri. Mungkin bermanfaat untuk melihat foto susun atur papan saya di atas.

Anda kini mempunyai PIC kosong dan anda perlu memprogram PICBIOS ke dalam memori flash. Sekiranya anda sudah mempunyai kaedah pengaturcaraan - baiklah. Sekiranya tidak, saya cadangkan kaedah berikut yang berjaya saya gunakan.

4.2 AN589 Pengaturcara

Ini adalah litar antara muka kecil yang membolehkan PIC memprogram dari PC menggunakan port pencetak (LPT1). Reka bentuknya pada awalnya diterbitkan oleh Microchip dalam Catatan Aplikasi. (rujukan 3). Dapatkan atau buat pengaturcara yang serasi dengan AN589. Saya telah menggunakan reka bentuk AN589 yang diperbaiki yang dinyatakan di sini. Ini adalah ICSP - bermaksud anda memasukkan PIC ke soket 40 pin untuk memprogramkannya. Kemudian sambungkan kabel pencetak ke input AN539 dan kabel ICSP dari AN589 ke papan pengembangan. Reka bentuk pengaturcara saya menggunakan kekuatannya dari papan pengembangan melalui kabel ICSP.

4.3 Tetapan PICPGM

Anda kini memerlukan beberapa perisian pengaturcaraan untuk dijalankan di PC. PICPGM berfungsi dengan pelbagai pengaturcara termasuk AN589, dan ia dimuat turun secara percuma. (Lihat Rujukan).

Dari Menu Perkakasan, Pilih Programmer AN589, pada LPT1

Peranti = PIC16F877 atau 877A atau autodetect.

Pilih Fail Hex: PICBIOS1. HEX

Pilih Padam PIC, kemudian Program PIC, kemudian Sahkan PIC. Dengan sedikit keberuntungan, anda akan mendapat mesej penyelesaian yang berjaya.

Tanggalkan kabel ICSP, Mulakan semula PIC, semoga anda melihat paparan PICBIOS di LCD, jika tidak, periksa sambungan anda. Periksa menu but dengan menekan butang kiri dan kanan.

4.4 Sambungan Bersiri (Hiperterminal atau Putty)

Sekarang periksa sambungan bersiri antara PIC dan PC. Sambungkan kabel bersiri dari PC COM1 ke papan pengembangan dan jalankan program komunikasi, seperti Win-XP Hyper-Terminal lama, atau PUTTY.

Sekiranya menggunakan Hyperterminal, konfigurasikan seperti berikut. Dari menu utama, Panggil> Putuskan sambungan. Kemudian Fail> Properties> Sambungkan ke tab. Pilih Com1, kemudian klik butang Configure. Pilih 9600 bps, tiada pariti, 8 bit, 1 hentian. Kawalan aliran perkakasan”. Kemudian Panggil> Panggil untuk menyambung.

Sekiranya menggunakan PuTTY, Sambungan> Siri> Sambungkan ke COM1, dan 9600 bps, tiada pariti, 8 bit, 1 hentian. Pilih "RTS / CTS". Kemudian Sesi> Siri> Buka

Pada menu Boot PICBIOS, pilih "Mode Perintah", kemudian tekan [inc] atau [dec]. Mesej segera "PIC16F877>" akan muncul di layar (jika tidak memeriksa antara muka bersiri anda). Akhbar? untuk melihat senarai arahan.

4.5 PICMETER Program

Setelah sambungan bersiri berfungsi, memprogram memori kilat semudah menghantar fail hex. Masukkan perintah "P", yang merespon dengan "Kirim file hex …".

Menggunakan terminal hiper, dari menu Transfer> Kirim fail teks> PICMETER1. HEX> Buka.

Kemajuan ditunjukkan oleh ":." kerana setiap baris kod hex diprogramkan. Akhirnya Beban Berjaya.

Sekiranya anda menggunakan PuTTY, anda mungkin perlu menggunakan Notepad dan menyalin / menampal keseluruhan kandungan PICMETER1. HEX ke dalam PuTTY.

Begitu juga untuk mengesahkan, Masukkan Perintah "V". Di terminal hiper, dari menu Transfer> Hantar fail teks> PICMETER1. HEX> OK.

Amaran = xx … Sekiranya anda memprogram cip 16F877A, anda akan mendapat beberapa mesej amaran. Ini berkaitan dengan perbezaan antara 877 dan 877A, yang memprogram dalam 4 blok kata. Malangnya penghubung tidak menyelaraskan permulaan bahagian pada 4 sempadan perkataan. Penyelesaian mudah adalah dengan mempunyai 3 arahan NOP pada permulaan setiap bahagian, jadi abaikan amaran tersebut.

Mulakan semula dan pada menu boot BIOS, pilih "Jalankan aplikasi". Anda mesti melihat PICMETER1 di LCD.

4.6 Jalankan PICMETER1

Sekarang mulailah membina lebih banyak bahagian papan pengembangan (Gambar 2) agar fungsi Voltmeter, Component Meter berfungsi seperti yang diperlukan.

Meter1 memerlukan beberapa penentukuran. Pada fungsi "Cal", sesuaikan R10 untuk memberikan bacaan 80,00, 80,0nF, dan 10.000uF lebih kurang. Kemudian baca 100pF kecil pada fungsi Cx1. Sekiranya pembacaannya habis, ubahlah trim trim C13, atau ubah nilai "trimc" dalam meter1.asm.

Sekarang jalankan PICBIOS Setup, dan ubah beberapa tetapan penentukuran di EEPROM. Kalibrasi suhu dengan menyesuaikan offset 16-bit (format tinggi, rendah). Anda mungkin juga perlu menukar nilai “delayt”.

Sekiranya niat anda adalah untuk membina projek seperti itu - Tahniah - anda telah selesai! Ceritakan kejayaan anda di Instructables.

4.7 MPLAB

Tetapi jika anda ingin membuat perubahan, atau mengembangkan projek lebih jauh, anda perlu membina semula perisian menggunakan MPLAB. Muat turun MPLAB dari Microchip. Ini adalah "lama" yang mudah dan senang digunakan. Saya belum mencuba alat pengembangan labx baru yang kelihatan jauh lebih rumit.

Perincian cara membuat projek baru, dan kemudian tambahkan fail ke projek dalam Dokumentasi Penuh.

Langkah 5: Foto Ujian

Gambar Ujian
Gambar Ujian
Gambar Ujian
Gambar Ujian
Gambar Ujian
Gambar Ujian

Foto termometer di atas, membaca 15 degC

Kekerapan ujian, bacaan = 416k

Induktor ujian bertanda 440uF, berbunyi 435u

Menguji perintang 100k, membaca 101k, itu mudah.

Menguji kapasitor 1000pF, bacaan adalah 1.021nF

Langkah 6: Rujukan dan Pautan

6.1 Lembaran Data PIC16F87XA, Microchip Inc.

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

6.2 Spesifikasi Pengaturcaraan Memori PIC16F87XA FLASH, Microchip

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

6.3 Nota Permohonan AN589, Microchip Inc.

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

6.4 Muat turun PICPGM

picpgm.picprojects.net/

Muat turun percuma 6.5 MPLab IDE v8.92, Microchip

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

6.6 Lembaran data untuk modul Hope RFM01-433 dan RFM02-433, Penyelesaian RF

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

6.7 LT Rempah, Peranti Analog

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

6.8 Litar pengaturcara pic berdasarkan AN589, Projek-Mikrokontroler Terbaik

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

6.9 Fail Sumber Terbuka

sumber terbuka

Disyorkan: