Table des matières:

Voltmètre numérique avec CloudX : 6 étapes
Voltmètre numérique avec CloudX : 6 étapes

Vidéo: Voltmètre numérique avec CloudX : 6 étapes

Vidéo: Voltmètre numérique avec CloudX : 6 étapes
Vidéo: MULTIMETRE - MODE EMPLOI - VOLTMETRE AMPEREMETRE - ELECTRICITE POUR LES NULS TUTORIEL 2024, Juillet
Anonim
Voltmètre numérique avec CloudX
Voltmètre numérique avec CloudX

Les batteries fournissent une forme plus pure de courant continu (courant continu) lorsqu'elles sont utilisées dans des circuits. Leur faible niveau de bruit les rend toujours parfaitement adaptés à certains circuits très sensibles. Cependant, à des moments où leur niveau de tension descend en dessous d'un certain point de seuil, les circuits - (qu'ils sont censés alimenter), peuvent entrer dans un comportement erratique; surtout quand ils ne sont pas bien conçus pour gérer cela.

Par conséquent, il est nécessaire de surveiller régulièrement le niveau de puissance de la batterie pour nous guider correctement quant à la date d'échéance d'un remplacement total ou d'une charge - dans le cas d'une batterie rechargeable. Par conséquent, dans ce bricolage (Do It Yourself), nous devons concevoir un simple voltmètre de batterie en utilisant le CloudX - en utilisant le 7Segment comme affichage.

Étape 1: Configuration matérielle requise

Module de microcontrôleur CloudX

USB CloudX

SoftCard

Affichage 7 segments

Résistances

Bloc d'alimentation

Planche à pain

Fils de cavalier (connexion)

Étape 2: Microcontrôleur CloudX M633

Microcontrôleur CloudX M633
Microcontrôleur CloudX M633

Module de microcontrôleur CloudX

Le module CloudX est un outil matériel de conception électronique qui vous offre un moyen très pratique et facile d'interfacer avec le monde physique via une simple carte de microcontrôleur. L'ensemble de la plate-forme est basé sur une informatique physique open-source. Sa simplicité d'environnement de développement intégré (IDE) en fait vraiment la solution idéale pour les débutants, tout en conservant suffisamment de fonctionnalités pour permettre aux utilisateurs finaux avancés de s'y retrouver. En un mot, CloudX fournit un processus très simplifié de gestion du microcontrôleur - en faisant abstraction des détails complexes normaux qui lui sont associés; tout en offrant une plateforme d'expérience utilisateur très riche. Il trouve de nombreuses applications dans tous les domaines: écoles, en tant qu'outil éducatif formidable; produits industriels et commerciaux; et en tant qu'outil utilitaire formidable entre les mains d'un amateur.

Étape 3: Connexions des broches

Connexions des broches
Connexions des broches

Les broches à 7 segments: A, B, C, D, E, F, G, 1, 2 et 3 sont connectées aux broches 1, broches 2, broches 3, broches 4, 5, 6, 7, 8, 9, pin10 et pin11 respectivement.

Étape 4: schéma de circuit

Schéma
Schéma

Le module microcontrôleur, étant ici au centre de la scène, peut être mis sous tension:

soit via les points Vin et Gnd (c'est-à-dire en les connectant respectivement aux bornes +ve et -ve de votre bloc d'alimentation externe) sur la carte;

ou via votre module softcard USB CloudX

. De plus, comme on peut le voir facilement sur le schéma de circuit ci-dessus, la tension d'entrée de la batterie est interfacée avec le module MCU (microcontrôleur) de telle sorte que le point du réseau diviseur de tension (formé par et) est connecté à A0 de la broche MCU.

et sont choisis de manière à:

limiter la quantité de courant qui circule dans le réseau;

limite dans une plage de sécurité de (0 – 5) V pour le MCU.

En utilisant la formule: VOUT = (R2/(R1+R2)) * VIN; et peut être facilement évalué.

Voutmax = 5V

et pour ce projet, nous choisissons: Vinmax = 50V;

5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 En prenant R2 = 10kΩ par exemple; R1 = 45/5 * 10 = 90kΩ

Étape 5: Principe de fonctionnement

Lorsque la tension d'entrée mesurée est lue via le point VOUT du réseau diviseur de tension, les données sont ensuite traitées dans le MCU pour être évaluées à la valeur réelle finale qui s'affiche sur l'unité de segment. Il (la conception du système) est un placeur automatique de point décimal, en ce sens qu'il (point décimal) change de position sur l'unité d'affichage elle-même en fonction de ce que la valeur flottante dicte à un moment donné. Ensuite, l'ensemble de l'unité d'affichage matériel à 7 segments est câblée en mode multiplex. Il s'agit d'un arrangement spécial par lequel le même bus de données (8 broches de données) du MCU alimente les trois segments 7 actifs dans l'unité d'affichage. L'envoi d'un modèle de données dans chacun des composants est réalisé par un processus appelé numérisation. Le balayage est une technique impliquant l'envoi de données à chacun des 7 segments du composant; et les activer (c'est-à-dire les allumer) en succession rapide au fur et à mesure que leurs données respectives arrivent. Le rythme d'adressage de chacun d'eux est fait de telle sorte qu'il réussit à tromper la vision humaine en lui faisant croire que tous (les éléments constitutifs) sont activés (adressés) en même temps. Il (le balayage) utilise simplement, en effet, un phénomène connu sous le nom de persistance de la vision.

Étape 6: Le programme logiciel

#comprendre

#comprendre

#comprendre

#define segment1 pin9

#define segment2 pin10

#define segment3 pin11

float batt_voltage;

int point décimal, batt;

/*tableaux qui stockent le modèle de segment pour chaque chiffre donné*/

char CCathodeDisp = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

char CAnodeDisp = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};

int disp0, disp1, disp2;

affichage() {

caractère non signé i;

if(pointdécimal < 10) {

disp0 = (int)batt_voltage /100; // récupère le MSD (chiffre le plus significatif)

//être le plus pondéré

/* récupère le prochain chiffre pondéré; etc */

disp1 = ((int)batt_voltage % 100)/10;

disp2 = ((int)batt_voltage % 10);

}

autre {

disp0 = (int)batt_voltage /1000;

disp1 = ((int)batt_voltage % 1000)/100;

disp2 = ((int)batt_voltage % 100)/10;

}

/*Les motifs sont versés pour l'affichage; et 0x80 caractère en ajoutant un point décimal

si la condition associée est vraie*/

pour(i=0; i<50; i++) {

broche 9 = broche 10 = broche 11 = HAUT;

if(pointdécimal < 10)

portWrite(1, CCathodeDisp[disp0] | 0x80);

else portWrite(1, CCathodeDisp[disp0]);

segment1 = FAIBLE;

segment2 = HAUT;

segment3 = HAUT;

délaiMs(5);

broche 9 = broche 10 = broche 11 = HAUT;

if((Point Decimal >= 10) && (Point Decimal < 100))

portWrite(1, CCathodeDisp[disp1] | 0x80);

else portWrite(1, CCathodeDisp[disp1]);

segment1 = HAUT;

segment2 = FAIBLE;

segment3 = HAUT;

délaiMs(5);

broche 9 = broche 10 = broche 11 = HAUT;

si (point décimal >= 100)

portWrite(1, CCathodeDisp[disp2] | 0x80);

else portWrite(1, CCathodeDisp[disp2]);

segment1 = HAUT;

segment2 = HAUT;

segment3 = FAIBLE;

délaiMs(5);

}

}

setup(){ //configurer ici

analogSetting(); //port analogique initialisé

portMode(1, SORTIE); // Broches 1 à 8 configurées comme broches de sortie

/* scanner les broches configurées comme broches de sortie */

pin9Mode = SORTIE;

pin10Mode = SORTIE;

pin11Mode = SORTIE;

portWrite(1, LOW);

broche 9 = broche 10 = broche 11 = HAUT; //scanner les broches (qui sont actives-bas)

//sont désactivés au début

loop(){ //Programmer ici

batt_voltage = analogRead(A0); //prend la valeur mesurée

batt_voltage = ((batt_voltage * 5000) / 1024); //facteur de conversion pour 5Vin

batt_voltage = (batt_voltage * 50)/5000; //facteur de conversion pour 50Vin

DecimalPoint = batt_voltage; // marque l'endroit où apparaît le point décimal

//la valeur d'origine avant la manipulation des données

affichage();

}

}

Conseillé: