Table des matières:
- Fournitures
- Étape 1: Description de PICBIOS
- Étape 2: Description du PICMÈTRE
- Étape 3: Description du circuit
- Étape 4: Guide de construction
- Étape 5: Photos des tests
- Étape 6: Références et liens
Vidéo: Multimètre PIC16F877 : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
PICMETRE Présentation
Ce projet PICMETER est devenu un outil utile et fiable pour tout amateur d'électronique.
- Il fonctionne sur un microcontrôleur PIC16F877/877A.
- C'est un système de développement PIC
- C'est un multimètre à 19 fonctions (voltmètre, fréquencemètre, générateur de signal, thermomètre…)
- C'est un vérificateur de composants (R, L, C, diode…) avec jusqu'à 5 plages sur chaque fonction.
- Il a une radio ASK à bande 433MHz, qui attend une sorte d'application.
- Il s'agit d'un système d'acquisition à distance, où un autre ordinateur (PC) peut collecter des données via le port série pour l'affichage graphique. (Il a été utilisé comme frontal du projet ECG).
- Il dispose d'une fonction d'enregistrement (pour l'enregistrement des données pendant des heures), les résultats sont téléchargés à partir de l'EEPROM.
- Il produit des signaux de test pour piloter certains moteurs.
- Il est minutieusement testé, voir les photographies à l'étape 5.
- Le logiciel est publié en Open Source
Ce Instructable est une version réduite de la documentation complète. Il décrit le matériel et les logiciels suffisants pour que d'autres puissent le construire soit en tant que projet terminé, soit l'utiliser comme système de développement pour apporter d'autres modifications, ou simplement rechercher des idées à utiliser sur d'autres projets.
Fournitures
La seule puce critique à acheter est la Microchip PIC16F877A-I/P
- A = la révision ultérieure qui diffère de l'originale dans la définition des bits de configuration.
- I = Plage de température industrielle
- P= Paquet double en ligne en plastique à 40 broches, 10 MHz, limites VDD normales.
Également l'écran LCD Hitachi LM032LN 20 caractères sur 2 lignes doté d'un contrôleur HD44780 intégré.
Les autres pièces ne sont que des composants électriques génériques, des circuits imprimés à bande, LM340, LM311, LM431, des transistors de faible puissance à usage général, etc.
Étape 1: Description de PICBIOS
Description de PICBIOS
Ce logiciel fonctionne sur une carte PIC16F877 et occupe les 4k inférieurs de la mémoire programme. Il fournit l'environnement logiciel pour un programme d'application occupant la moitié supérieure de la mémoire du programme. Son idée est similaire au PC-BIOS avec quelques commandes de type "debug" pour le développement de programmes et comporte 5 composants:
- Menu de démarrage
- Programme d'installation
- Interface de ligne de commande (via le port série)
- Pilotes de noyau et de périphérique
- Interface de programmation d'applications
Étape 2: Description du PICMÈTRE
PICMETRE Description
introduction
Comme un multimètre (volts, ampères, ohms), il possède de nombreuses fonctions qui sont sélectionnées au moyen d'un système de menus. Mais être une combinaison de matériel et de logiciel le rend très polyvalent, par exemple des fonctionnalités telles que la journalisation sur de longues périodes et l'envoi de données série sont disponibles.
Le menu est le « cœur » où les fonctions sont sélectionnées au moyen des boutons [gauche] et [droite]. Ensuite, pour chaque fonction, différentes plages sont sélectionnées par les boutons [inc] et [dec]. Par exemple, les condensateurs sont mesurés d'environ 0,1 nF à 9 000 uF au moyen de 5 plages distinctes.
2.1 Logiciel PICMETER
Ceci est organisé comme un programme d'application qui occupe les 4 Ko supérieurs de la mémoire du programme et s'appuie sur les fonctions du PICBIOS pour les E/S de l'appareil et la gestion des interruptions. Il se compose de la section de menu qui s'exécute en tâche de fond et interroge les boutons toutes les 20 ms. Lorsqu'un bouton est enfoncé pour changer de fonction ou de plage, la routine appropriée est appelée. Lorsqu'aucun bouton n'est enfoncé, la lecture mesurée est mise à jour à des intervalles d'environ 0,5 seconde. Fondamentalement, le menu est une table de recherche.
2.2 Fonction du compteur - sections
Il existe de nombreuses fonctions, cette partie est donc divisée en sections, chacune traitant de fonctions de nature similaire. Ceci est une brève liste des sections, consultez la documentation complète pour voir comment chaque section fonctionne en détail. En raison des limitations de port, il existe 3 variantes du projet (voir la documentation complète). Les fonctions en police normale sont communes à tous les projets. Les fonctions SOULIGNÉES ne sont incluses que dans le projet PICMETER1. Les fonctions en ITALIQUE ne sont incluses que dans les projets PICMETER2 ou PICMETER3.
Section VoltMeter - Le fichier source est vmeter.asm
Contient des fonctions basées sur la mesure de tension à l'aide de l'ADC.
- Tension ADC (lit la tension sur l'entrée sélectionnée, AN0 à AN4)
- AD2 Dual (affiche la tension sur AN0 et AN1 simultanément)
- Thermomètre TMP -10 à 80 ? degC (transducteur 2N3904 ou double LM334)
- LOG - définit l'intervalle d'enregistrement
- OHM – Mesure de résistance (méthode potentiomètre) de 0Ω à 39MΩ dans 4 gammes
- DIO - Diode, mesure la tension directe (0-2,5 V)
- CON - Continuité (bips lorsque la résistance est inférieure au seuil de 25, 50 ou 100)
Composant Meter1 - Le fichier source est meter1.asm
Mesure de condensateurs, d'inducteurs et de résistances à l'aide du circuit comparateur LM311. Basé sur la mesure du temps d'un cycle de charge.
- CAL - étalonnage - mesure 80 nf et 10 F fixes pour l'auto-test et l'ajustement
- Cx1 – mesure de condensateur de 0,1nF à 9000μF dans 5 gammes
- Lx1 – mesure de l'inductance de 1mH à ?? mH en 2 plages
- Rx1 – mesure de résistance de 100Ω à 99MΩ dans 3 gammes
Composant Meter2 Fichier source Meter2.asm
Mesure des composants à l'aide de l'oscillateur de relaxation alternatif LM311 et de l'oscillateur Colpitts. Basé sur la mesure de la période de temps de N cycles. Ceci est légèrement plus précis que la méthode ci-dessus car un temps de N= jusqu'à 1000 cycles est mesuré. Il s'agit davantage d'une solution matérielle et nécessite plus de construction.
- Cx2 – mesure de condensateur de 10pF à 1000 μF dans 5 gammes.
- Rx2 – mesure de résistance de 100 ohm à 99M dans 5 gammes.
- Lx2 - mesure d'inductance de 1mH à 60mH dans 1 plage.
- osc - mesure inductance (méthode Colpitts) de 70μH à 5000μH ? en 2 gammes.
Fréquencemètre - fichier source Fmeter.asm
Contenant des fonctions qui utilisent des compteurs et des minuteries PIC, et rien d'autre;
- FREQ - Fréquencemètre de 0Hz à 1000kHz en 3 gammes
- XTL - mesure la fréquence des cristaux LP (non testé)
- SIG – générateur de signal de 10Hz à 5KHz en 10 étapes
- SMR – moteur pas à pas - sens inverse
- SMF – moteur pas à pas - sens avant.
Communications - Le fichier source est comms.asm
Fonctions pour transmettre/recevoir un signal pour tester les périphériques série et SPI;
- Test UTX TX série & débit binaire inc et déc de 0,6 à 9,6k
- Test URX RX série & débit binaire inc et déc de 0,6 à 9,6k
- SPM - teste SPI en mode maître
- SPS - teste SPI en mode esclave
Module radio FSK - Le fichier source est Radio.asm
Fonctions utilisant les modules de réception et d'émission radio RM01 et RM02. Ces modules s'interfacent via SPI, qui utilise la plupart des broches du port C.
- RMB - définir le taux de transmission en BAUD du module radio
- RMF - régler la fréquence RF du module radio
- RMC - définit la fréquence d'horloge du module radio
- XLC - ajuste la charge de capacité du cristal
- POW - définit la puissance de l'émetteur
- RM2 - transmettre les données de test (module RM02)
- RM1 - recevoir les données de test (module RM01)
Module de contrôle - Fichier source control.asm
- SV1 - Sortie servo (utilisant CCP1) de 1 ms à 2 ms par pas de 0,1 ms
- SV2 - Sortie servo (utilisant CCP2) de 1 ms à 2 ms par pas de 0,1 ms
- PW1 - Sortie PWM (utilisant CCP1) de 0 à 100 % par pas de 10 %
- PW2 - Sortie PWM (utilisant CCP2) de 0 à 100 % par pas de 10 %
Acquisition de données à distance - Le fichier source est remote.asm
Mode à distance (Rem) - un ensemble de commandes permettant au compteur de fonctionner à partir d'un ordinateur via une interface série. Une commande collecte les données enregistrées dans l'EEPROM sur une période de plusieurs heures. Une autre commande lit les tensions à pleine vitesse de l'ADC dans la mémoire tampon, puis transmet la mémoire tampon au PC, où les résultats peuvent être affichés graphiquement. En fait, il s'agit d'un oscilloscope fonctionnant sur une plage de fréquences audio
Heure - Le fichier source est time.asm
Tim – affiche simplement l'heure au format hh:mm:ss et permet la modification à l'aide de 4 boutons
Étape 3: Description du circuit
Description des circuits
3.1 Carte de développement de base
La figure 1 montre une carte de développement de base pour faire fonctionner PICBIOS. C'est très standard et simple, source d'alimentation régulée 5V et condensateurs de découplage, C1, C2….
L'horloge est un cristal de 4 MHz, de sorte que le TMR1 fonctionne par intervalles de 1us. Les condensateurs 22pF C6, C7 sont recommandés par Microchip, mais ne semblent pas réellement nécessaires. L'en-tête ICSP (in-circuit-serial-programmation) est utilisé pour programmer initialement un PIC vierge avec le PICBIOS.
Le port série (COM1) – notez que TX et RX sont permutés, c'est-à-dire que COM1-TX est connecté au port C-RX et COM1-RX est connecté au port C-TX (communément appelé « modem nul »). De plus, les niveaux de signal requis pour RS232 devraient vraiment être de +12V (espace) et de -12V (marque). Cependant, des niveaux de tension de 5V (espace) et 0V (repère) semblent adéquats pour tous les PC que j'ai utilisés. Ainsi, les niveaux de signal de RX et TX sont simplement inversés par le pilote de ligne (Q3) et le récepteur de ligne (Q2).
L'écran LCD LM032LN (2 rangées 20 caractères) utilise l'interface standard « HD44780 ». Le logiciel utilise le mode quartet 4 bits et l'écriture uniquement, qui utilise 6 broches du port D. Le logiciel peut être configuré pour le quartet bas (Port D bits 0-3) ou le quartet haut (Port D bits 4-7) comme utilisé ici.
Les interrupteurs à bouton-poussoir fournissent quatre entrées pour la sélection de menu. Utilisez push pour effectuer des commutateurs pendant que le logiciel détecte le front descendant. Les résistances pull-up (=25k) sont internes au PORT B. Le port RB6 ne peut pas être utilisé pour les commutateurs, en raison du capuchon 1nF (recommandé pour ICSP). Il n'y a pas besoin d'un interrupteur de réinitialisation ?
bouton0
options de menu à gauche [◄]
bouton1
options de menu à droite [►]
bouton2
incrémenter plage/valeur/sélectionner [▲]
bouton3
décrémenter plage/valeur/sélectionner [▼]
3.2 Entrées analogiques et vérificateur de composants – Carte 1
La figure 2 montre les circuits analogiques pour PICMETER1. Les entrées analogiques AN0 et AN1 sont utilisées pour la mesure de tension à usage général. Sélectionnez les valeurs de résistance pour que les atténuateurs donnent 5V sur les broches d'entrée AN0/AN1.
Pour la plage d'entrée 10V, m = 1 + R1/R2 = 1 + 10k/10k = 2
Pour la plage d'entrée 20 V, m = 1 + (R3+R22)/R4 = 1 + 30k/10k = 4
AN2 est utilisé pour la mesure de la température en utilisant le transistor Q1 comme transducteur de température « brut ». Coefficient de température du transistor NPN à 20 celcuis = -Vbe/ (273+20) = - 0,626/293 = -2,1 mV/K. (voir mesure de température dans la section Analogique). Le LM431 (U1) fournit une référence de tension de 2,5 V sur AN3. Enfin, AN4 est utilisé pour les tests de composants dans la section analogique.
Pour la mesure des composants, le composant de test est connecté entre RE2 (D_OUT) et l'entrée AN4. Les résistances R14 à R18 fournissent cinq valeurs différentes de résistance utilisées pour la mesure de la résistance (méthode du potentiomètre) dans la section Analogique. Les résistances sont « connectées en circuit » en définissant les broches du port C/port E comme entrée ou sortie.
Meter1 effectue la mesure des composants en chargeant diverses combinaisons de condensateur et de résistance connus/inconnus. LM311 (U2) est utilisé pour créer des interruptions CCP1 lorsqu'un condensateur se charge au seuil supérieur (75 % VDD) et se décharge au seuil inférieur (25 % VDD) Ces tensions de seuil sont fixées par R8, R9, R11 et le potentiomètre R10 qui ajustement. Lors du test des condensateurs, le condensateur C13 (=47pF) plus la capacité parasite de la carte fournissent une compensation de 100pF. Cela garantit que, lorsque le composant de test est supprimé, l'intervalle entre les interruptions CCP1 dépasse 100us et ne surcharge pas le PIC. Cette valeur d'ajustement (100pF) est soustraite de la mesure des composants par le logiciel. D3 (1N4148) fournit le chemin de décharge lors du test des inductances et protège D_OUT, empêchant la tension de devenir négative.
??
Étape 4: Guide de construction
Guide de construction
Une bonne chose est que ce projet est construit et testé par étapes. Planifiez votre projet. Pour ces instructions, je suppose que vous construisez PICMETER1, bien que la procédure soit similaire pour PICMETER2 et 3.
4.1 Carte de développement PCB
Vous devez construire la carte de développement de base (Figure 1) qui doit s'adapter sur un PCB de taille standard de 100 x 160 mm, planifier la disposition pour la garder aussi ordonnée que possible. Nettoyez votre PCB et étamez tout le cuivre, utilisez des composants et des connecteurs fiables, testés dans la mesure du possible. Utilisez une prise 40 broches pour le PIC. Vérifier la continuité de tous les joints soudés. Il peut être utile de regarder mes photos de disposition de tableau ci-dessus.
Vous avez maintenant un PIC vierge et vous devez programmer le PICBIOS dans la mémoire flash. Si vous avez déjà une méthode de programmation, très bien. Sinon, je recommande la méthode suivante que j'ai utilisée avec succès.
4.2 Programmeur AN589
Il s'agit d'un petit circuit d'interface qui permet à un PIC d'être programmé à partir d'un PC en utilisant le port imprimante (LPT1). La conception a été initialement publiée par Microchip dans une note d'application. (référence 3). Obtenez ou créez un programmeur compatible AN589. J'ai utilisé une conception AN589 améliorée décrite ici. C'est ICSP - ce qui signifie que vous insérez le PIC dans la prise 40 broches pour le programmer. Connectez ensuite le câble de l'imprimante à l'entrée AN539 et le câble ICSP de AN589 à la carte de développement. La conception de mon programmeur tire son énergie de la carte de développement via le câble ICSP.
4.3 Paramètres PICPGM
Vous avez maintenant besoin d'un logiciel de programmation pour fonctionner sur PC. PICPGM fonctionne avec divers programmeurs, y compris AN589, et il est téléchargé gratuitement. (Voir les références).
Dans le menu Matériel, sélectionnez Programmeur AN589, sur LPT1
Appareil = PIC16F877 ou 877A ou détection automatique.
Sélectionnez le fichier hexadécimal: PICBIOS1. HEX
Sélectionnez Effacer le PIC, puis Programmer le PIC, puis Vérifier le PIC. Avec un peu de chance, vous obtenez un message de réussite.
Retirez le câble ICSP, Redémarrez le PIC, espérons que vous voyez l'affichage PICBIOS sur l'écran LCD, sinon vérifiez vos connexions. Vérifiez le menu de démarrage en appuyant sur les boutons gauche et droit.
4.4 Connexion série (Hyperterminal ou Putty)
Vérifiez maintenant la connexion série entre le PIC et le PC. Connectez le câble série du PC COM1 à la carte de développement et exécutez un programme de communication, comme l'ancien Hyper-Terminal Win-XP ou PUTTY.
Si vous utilisez Hyperterminal, configurez comme suit. Dans le menu principal, Appeler > Déconnecter. Puis Fichier> Propriétés> Se connecter à l'onglet. Sélectionnez Com1, puis cliquez sur le bouton Configurer. Sélectionnez 9600 bps, pas de parité, 8 bits, 1 stop. Contrôle de flux matériel ». Puis Appeler > Appeler pour se connecter.
Si vous utilisez PuTTY, Connexion> Série> Connexion à COM1, et 9600 bps, pas de parité, 8 bits, 1 arrêt. Sélectionnez « RTS/CTS ». Puis Session> Série> Ouvrir
Dans le menu de démarrage PICBIOS, sélectionnez « Mode de commande », puis appuyez sur [inc] ou [dec]. Le message d'invite « PIC16F877> » devrait apparaître à l'écran (sinon, vérifiez votre interface série). Presse ? pour voir la liste des commandes.
4.5 Programme PICMETRE
Une fois que la connexion série fonctionne, la programmation de la mémoire flash est aussi simple que l'envoi d'un fichier hexadécimal. Entrez la commande "P", qui répond par "Envoyer le fichier hexadécimal…".
A l'aide de l'hyper-terminal, depuis le menu Transfert > Envoyer fichier texte > PICMETER1. HEX > Ouvrir.
La progression est indiquée par le ":." car chaque ligne de code hexadécimal est programmée. Enfin, chargez le succès.
Si vous utilisez PuTTY, vous devrez peut-être utiliser le Bloc-notes et copier/coller tout le contenu de PICMETER1. HEX dans PuTTY.
De même pour vérifier, entrez la commande « V ». En hyper-terminal, depuis le menu Transfert > Envoyer fichier texte > PICMETER1. HEX > OK.
Warning = xx…Si vous programmez une puce 16F877A, vous obtiendrez des messages d'avertissement. Il s'agit des différences entre 877 et 877A, qui programment en 4 blocs de mots. Malheureusement, l'éditeur de liens n'aligne pas le début des sections sur les limites de 4 mots. La solution simple est d'avoir 3 instructions NOP au début de chaque section, donc ignorez simplement les avertissements.
Redémarrez et dans le menu de démarrage du BIOS, sélectionnez « Exécuter l'application ». Vous devriez voir PICMETER1 sur l'écran LCD.
4.6 Exécuter PICMETER1
Maintenant, commencez à construire plus de sections de la carte de développement (Figure 2) pour que les fonctions Voltmètre et Compteur de composants fonctionnent selon les besoins.
Meter1 a besoin d'un étalonnage. Sur la fonction "Cal", ajustez R10 pour donner des lectures de 80,00, 80,0 nF et 10 000 uF environ. Ensuite, lisez un petit 100pF sur la fonction Cx1. Si la lecture est erronée, soit modifiez le capuchon de compensation C13, soit modifiez la valeur de « trimc » dans meter1.asm.
Exécutez maintenant la configuration PICBIOS et modifiez quelques paramètres d'étalonnage dans l'EEPROM. Calibrez la température en ajustant le décalage de 16 bits (format haut, bas). Vous devrez peut-être également modifier la valeur « delayt ».
Si votre intention est de construire le projet tel qu'il est - Félicitations - vous avez terminé ! Parlez-moi de votre succès sur Instructables.
4.7 MPLAB
Mais si vous souhaitez apporter des modifications ou développer davantage le projet, vous devez reconstruire le logiciel à l'aide de MPLAB. Téléchargez MPLAB à partir de Microchip. C'est "l'ancien" qui est simple et direct à utiliser. Je n'ai pas essayé le nouvel outil de développement labx qui a l'air bien plus compliqué.
Détails sur la façon de créer un nouveau projet, puis d'ajouter des fichiers au projet dans la documentation complète.
Étape 5: Photos des tests
Photo ci-dessus du thermomètre, lecture 15 degC
Fréquence de test, lecture = 416k
Inductance de test marquée 440uF, lit 435u
Tester une résistance de 100k, lire 101k, c'est facile.
Test du condensateur 1000pF, la lecture est de 1,021nF
Étape 6: Références et liens
6.1 Fiche technique PIC16F87XA, Microchip Inc.
ww1.microchip.com/downloads/en/devicedoc/39582b.pdf
6.2 Spécification de programmation de la mémoire FLASH PIC16F87XA, puce électronique
ww1.microchip.com/downloads/en/devicedoc/39589b.pdf
6.3 Note d'application AN589, Microchip Inc.
ww1.microchip.com/downloads/en/appnotes/00589a.pdf
6.4 Téléchargement de PICPGM
picpgm.picprojects.net/
6.5 MPLab IDE v8.92 téléchargement gratuit, Microchip
pic-microcontroller.com/mplab-ide-v8-92-free-download/
6.6 Fiches techniques des modules Hope RFM01-433 et RFM02-433, RF Solutions
www.rfsolutions.co.uk/radio-modules-c10/hope-rf-c238
6.7 LT Spice, appareils analogiques
www.analog.com/en/design-center/design-tools-and-calculators/ltspice-simulator.html
6.8 Un circuit de programmation d'images basé sur AN589, Best-Microcontroller-Projects
www.best-microcontroller-projects.com/pic-programmer-circuit.html
6.9 Fichiers Open Source
Open source
Conseillé:
Restaurer un multimètre de l'ère WW2 en état de marche. : 3 étapes
Restauration d'un multimètre de l'ère WW2 en état de marche.: Il y a quelques années, j'ai acquis ce premier multimètre Simpson Electric pour ma collection. Il est venu dans un étui en similicuir noir qui était en excellent état compte tenu de son âge. La date du brevet de l'Office des brevets des États-Unis pour le mouvement du compteur est 1936 a
Multimètre DT830 rechargeable au lithium USB avec Polyfuse : 5 étapes
Multimètre DT830 Rechargeable USB Lithium Avec Polyfuse : ■ Ce que j'aime dans ce compteur Ce multimètre numérique (DMM) DT830LN offre ▪ Une taille compacte ▪ Plage de mesure de courant 10 A ▪ Affichage rétro-éclairé ▪ Faible coût Le modèle DT830D est identique et plus couramment disponible, mais n'a pas d'écran rétroéclairé.■ Wha
Multimètre alimenté par Arduino : 8 étapes (avec photos)
Multimètre alimenté par Arduino : dans ce projet, vous allez construire un voltmètre et un ohmmètre à l'aide de la fonction digitalRead d'un Arduino. Vous pourrez obtenir une lecture presque toutes les millisecondes, beaucoup plus précise qu'un multimètre classique. Enfin, les données sont accessibles o
Mod de batterie multimètre MT99 : 5 étapes (avec photos)
Mod de batterie pour multimètre MT99 : il s'agit d'un remplacement de la couverture arrière pour le multimètre Mustool MT99 (les modèles MT77 et MT99PRO sont similaires). Si vous envisagez d'acheter ce type de multimètre mais que le manque de batterie rechargeable vous maintient sur les clôtures, voici un boîtier imprimé en 3d
Comment utiliser le multimètre en tamoul - Guide du débutant - Multimètre pour débutants : 8 étapes
Comment utiliser le multimètre en tamoul | Guide du débutant | Multimètre pour débutants : Bonjour les amis, Dans ce tutoriel, j'ai expliqué comment utiliser le multimètre dans tous les types de circuits électroniques en 7 étapes différentes telles que 1) test de continuité pour le dépannage du matériel 2) Mesure du courant continu 3) Test de la diode et de la LED 4) Mesure Rési