Dans ce projet, nous allons fabriquer un ampèremètre basse gamme utilisant le microcontrôleur ATMEGA8. Dans ATMEGA8, nous allons utiliser la fonction ADC (conversion analogique-numérique) 10 bits pour ce faire. Bien que nous ayons peu d'autres moyens d'obtenir le paramètre actuel d'un circuit, nous allons utiliser la méthode de chute résistive, car c'est le moyen le plus simple et le plus simple d'obtenir le paramètre actuel.
Dans cette méthode, nous allons transmettre le courant qui devait être mesuré à une petite résistance, ce qui nous permet d'obtenir une chute à travers cette résistance qui est liée au courant qui la traverse. Cette tension aux bornes de la résistance est fournie à ATMEGA8 pour la conversion ADC. Avec cela, nous aurons le courant en valeur numérique qui sera affiché sur un écran LCD 16x2.
Pour cela, nous allons utiliser un circuit diviseur de tension. Nous allons alimenter le courant à travers la branche de résistance complète. Le point médian de la branche est pris à la mesure. Lorsque le courant change, il y aura un changement de baisse de la résistance qui lui est linéaire. Donc, avec cela, nous avons une tension qui change avec la linéarité.
Maintenant, la chose importante à noter ici est que l'entrée prise par le contrôleur pour la conversion ADC est aussi faible que 50µAmp. Cet effet de charge du diviseur de tension basé sur la résistance est important car le courant tiré de Vout du diviseur de tension augmente le pourcentage d'erreur augmente, pour l'instant nous n'avons pas à nous soucier de l'effet de chargement.
Composants requis
Matériel: ATMEGA8, alimentation (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), condensateur 100uF, condensateur 100nF (4 pièces), résistance 100Ω (7 pièces) ou 2.5Ω (2 pièces), résistance 100KΩ.
Logiciel: Atmel studio 6.1, progisp ou flash magic.
Schéma de circuit et explication de fonctionnement
La tension entre R2 et R4 n'est pas complètement linéaire; ce sera bruyant. Pour filtrer le bruit, des condensateurs sont placés à travers chaque résistance dans le circuit diviseur comme indiqué sur la figure.
Dans ATMEGA8, nous pouvons donner une entrée analogique à l'un des QUATRE canaux de PORTC, peu importe le canal que nous choisissons car tous sont identiques. Nous allons choisir le canal 0 ou PIN0 de PORTC. Dans ATMEGA8, l'ADC a une résolution de 10 bits, de sorte que le contrôleur peut détecter un changement minimum de Vref / 2 ^ 10, donc si la tension de référence est de 5V, nous obtenons un incrément de sortie numérique pour chaque 5/2 ^ 10 = 5mV. Ainsi, pour chaque incrément de 5 mV dans l'entrée, nous aurons un incrément de un à la sortie numérique.
Nous devons maintenant définir le registre d'ADC en fonction des termes suivants:
1. Tout d'abord, nous devons activer la fonction ADC dans ADC.
2. Ici, nous allons obtenir une tension d'entrée maximale pour la conversion ADC est de + 5V. Nous pouvons donc configurer la valeur maximale ou la référence de l'ADC à 5V.
3. Le contrôleur a une fonction de conversion de déclenchement qui signifie que la conversion ADC n'a lieu qu'après un déclenchement externe, car nous ne voulons pas que nous ayons besoin de définir les registres pour que l'ADC fonctionne en mode de fonctionnement libre continu.
4. Pour tout ADC, la fréquence de conversion (valeur analogique en valeur numérique) et la précision de la sortie numérique sont inversement proportionnelles. Donc, pour une meilleure précision de la sortie numérique, nous devons choisir une fréquence moindre. Pour l'horloge ADC normale, nous réglons la prévente de l'ADC à la valeur maximale (2). Puisque nous utilisons l'horloge interne de 1MHZ, l'horloge de l'ADC sera (1000000/2).
Ce sont les quatre seules choses que nous devons savoir pour démarrer avec ADC.
Les quatre fonctionnalités ci-dessus sont définies par deux registres,
ROUGE (ADEN): Ce bit doit être défini pour activer la fonction ADC d'ATMEGA.
BLEU (REFS1, REFS0): Ces deux bits sont utilisés pour définir la tension de référence (ou tension d'entrée max que nous allons donner). Puisque nous voulons avoir une tension de référence de 5V, REFS0 doit être défini par la table.
JAUNE (ADFR): Ce bit doit être défini pour que l'ADC fonctionne en continu (mode de fonctionnement libre).
PINK (MUX0-MUX3): Ces quatre bits sont destinés à indiquer le canal d'entrée. Puisque nous allons utiliser ADC0 ou PIN0, nous n'avons pas besoin de définir de bits comme dans la table.
MARRON (ADPS0-ADPS2): ces trois bits servent à régler le préscalaire pour ADC. Puisque nous utilisons un prescalaire de 2, nous devons définir un bit.
VERT FONCE (ADSC): ce bit est défini pour que l'ADC commence la conversion. Ce bit peut être désactivé dans le programme lorsque nous devons arrêter la conversion.