Arduino Inductance/capacité/mégohmmètre (2 / 3 étapes)

Étape 2: Code et Performance

Comme trois fonctionnement mesure résistance, inductance et capacitance osseuse, nous devons choisir nous voulons faire, choisir la fonction et utilisation 2 bits peut compter 0-0,0-1,1-0,1-1.

Donc nous utilisons deux interrupteur pour choisir, ce qui les rend fonctionne comme un commutateur dip en les utilisant comme tirer vers le bas, pour mesurer l’inductance est 0-0, 0-1 pour la capacité de résistance à 1-0, c’est la façon dont nous choisissons de mesurer.

Pour mesurer l’utilisation de l’inductance, le comparateur LM393 pour mesurer la capacité du LM741 et pour mesurer les résistances facilement utiliser une résistance k 10 et faire un diviseur de tension.

Supposons que nous voulons calculer R1. Nous savons que R2 a une valeur de 10k, nous savons que le Vin a une valeur de 5 v (que l'on retrouve habituellement dans l’environnement Arduino) et que la lecture sur un Vout analogique broches de l’Arduino est 750.

1.-nous savons que la résolution de l’ADC Arduino est 10 bits, ce qui signifie que 1024 est divisions possibles (2 à 10) pour une valeur d’entrée entre 0V et 5V. Si nous mettons 5V sur une broche analogique, sa valeur sera 1023 (1024 se souviendront pas qui commence à compter à 0, pas de 1) ; Si nous mettons 0V sur la broche, sa valeur sera 0 et si par exemple nous avons 2.5V sa valeur sera 511.

Par conséquent, si la valeur que donne l’axe de lecture analogique dans sa valeur numérique est de 750, nous pouvons calculer la Vout, la tension de sortie du diviseur de tension.

>> 5V / 1024 divisions = 0, 00488V / division

>> 0,00488 volts / divisions de division • 750 = 3.66V

2.-nous pouvons déjà clair R1, qui était la question :

>> Vout = (R2 / R1 + R2) • Vin

>> 3.66 V = (10k / R1 + 10k) • 5V

>> R1 + 10 k = 10 k • 5V / 3.66V

>> R1 = (10 k • 5V / 3.66V)-10 k = 3.66KΩ

En général, on peut calculer la valeur de R1 comme :

>> R1 = (R2 • Vin / Vout)-R2

Le même code est dans la documentation espagnole, donc si vous avez des questions svp dites donc :

 #include LiquidCrystal lcd(13, 8, 7, 5, 4, 2); #define R_1 A1#define R_2 A2#define IND_1 6#define IND_2 12#define fuente_pin 11#define switch_pin 10#define descarga_pin 9#define PIN_1 A3#define PIN_2 A4//Variables leer pinesint pin_1;int pin_2;//Variables para inductometrodouble pulso;double frecuencia;double capacitancia;double inductancia;//Capacimetrofloat R = 1.0e6;float C = 0;float RC = 0;long t_inicio = 0;volatile long t_alto = 0;long T = 0;float VCC = 4.50;float Vref = VCC / 2;float V0 = 0;float error_correccion = 40.;int retardo_delay = 20;//Variables resistometroint vR_1 = 0;int vR_2 = 0;float Vin = 5;float Vout = 0;float Res_1 = 10000;float Res_2 = 9000000;float r_1 = 0;float r_2 = 0;float Resistor_1[8];float Resistor_2[5];float ResArreglo_1;float ResArreglo_2;void setup() { lcd.begin(16, 2);//Configuracion de pines pinMode(PIN_1, INPUT); pinMode(PIN_2, INPUT); //Configuracion Inductometro pinMode(IND_1, INPUT); pinMode(IND_2, OUTPUT); capacitancia = 0.000001021; //delay(200); //Configuracion de Resistometro pinMode(R_1, INPUT); pinMode(R_2, INPUT);//Configuracion Capacimetro attachInterrupt(1, stop, RISING); Vref = VCC / 2; pinMode(fuente_pin, OUTPUT); digitalWrite(fuente_pin, LOW); pinMode(switch_pin, INPUT); pinMode(descarga_pin, INPUT);}void loop() { leerpines();if (pin_1 == LOW && pin_2 == LOW) { digitalWrite(IND_2, HIGH); delay(5); digitalWrite(IND_2, LOW); delayMicroseconds(100);pulso = pulseIn(IND_1, HIGH, 5000); lcd.clear(); if (pulso > 0.1) { frecuencia = 1.E6 / (2 * pulso); inductancia = 1. / (capacitancia * frecuencia * frecuencia * 4.*3.1459 * 3.14159); inductancia *= 1E6;lcd.setCursor(2, 0); lcd.print("INDUCTANCIA:"); //delay(200); if (inductancia >= 1000) { lcd.setCursor(0, 1); int valor = (inductancia / 1000) - 0.5; lcd.print(valor); lcd.setCursor(6, 1); lcd.print("mH"); } else { lcd.setCursor(0, 1); int valor_2 = inductancia + 10; lcd.print(valor_2); lcd.setCursor(6, 1); lcd.print("uH"); } } else if (pulso < 0.1) { lcd.setCursor(2, 0); lcd.print("INSERTAR IND"); } delay(300); } if (pin_1 == LOW && pin_2 == HIGH) { lcd.clear(); for (int i = 0 ; i <= 7; i++) { Resistor_1[i] = analogRead(R_1); ResArreglo_1 = ResArreglo_1 + Resistor_1[i]; } vR_1 = (ResArreglo_1 / 8.0); Vout = (Vin * vR_1) / 1023; r_1 = Res_1 * (1 / ((Vin / Vout) - 1)); lcd.setCursor(2, 0); lcd.print("RESISTENCIA:"); if (r_1 <= 999) { lcd.setCursor(0, 1); lcd.print(r_1); lcd.setCursor(9, 1); lcd.print("Omhs"); } else if (r_1 >= 1000) { r_1 = r_1 / 1000; lcd.setCursor(0, 1); lcd.print(r_1); lcd.setCursor(9, 1); lcd.print("KOmhs"); } delay(500); ResArreglo_1 = 0; } if (pin_1 == HIGH && pin_2 == LOW) { lcd.clear(); if (debounce(switch_pin) == LOW) { pinMode(descarga_pin, OUTPUT); digitalWrite(descarga_pin, LOW); delay(100); pinMode(descarga_pin, INPUT); digitalWrite(fuente_pin, HIGH); t_inicio = micros(); } if (t_alto > 0 && t_inicio > 0 && (t_alto - t_inicio) > 0 ) { T = (t_alto - t_inicio); RC = -T / log((Vref - VCC) / (V0 - VCC)); //Vref = VCC/2 //V0 = 0V C = RC / R; //Valor en uF lcd.setCursor(0, 0); lcd.print("C:"); lcd.setCursor(3, 0); lcd.print(C * 1000, 1); lcd.setCursor(13, 0); lcd.print("nF"); lcd.setCursor(0, 1); lcd.print("C:"); lcd.setCursor(3, 1); lcd.print(C * 1000000 - error_correccion , 0); lcd.setCursor(13, 1); lcd.print("pF"); t_inicio = 0; t_alto = 0; digitalWrite(fuente_pin, LOW); delay(2000); } }}void leerpines() { pin_1 = digitalRead(PIN_1); pin_2 = digitalRead(PIN_2);}void stop(){ t_alto = micros();}int debounce(int pin){ int estado; int previo_estado; previo_estado = digitalRead(pin); for (int i = 0; i < retardo_delay; i++) { delay(1); estado = digitalRead(pin); if ( estado != previo_estado) { i = 0; previo_estado = estado; } } return estado;} 

Articles Liés

Robot de peinture fenêtre (arduino, traitement, accéléromètre)

Robot de peinture fenêtre (arduino, traitement, accéléromètre)

l'idée de ce projet provient d'un de mes préférés ' ibles : le polargraph. J'ai aimé le style de dessin et de la pensée comment cool serait de le faire sur le côté d'un bâtiment ? Malheureusement, les défis pour la mise en place de tel un grand polar
L/c Inductance capacité multimètre compteur LC200A outil

L/c Inductance capacité multimètre compteur LC200A outil

il mesure 500 KHz, offre une précision de 1 % et est utilisé pour mesurer la capacité de 0.01 pf 100mF, inductances 0,001 euh et 100 H (avec des résolutions différentes bien sûr). Le logement est un aspect très professionnel avec un support arrière p
Projet Arduino : Gyroscope/accéléromètre MPU-6050 et Adafruit moteur pilote bouclier

Projet Arduino : Gyroscope/accéléromètre MPU-6050 et Adafruit moteur pilote bouclier

Bonjour les gars, si vous envisagez d'utiliser le module MPU 6050 gyroscope/accéléromètre ou L329D adafruit moter pilote pare-avec Arduino pour votre prochain projet puis vous sont sur le bon endroit, parce que dans l'article je partage une vidéo ave
Arduino ultrasons télémètre, avec affichage à cristaux liquides I²C !

Arduino ultrasons télémètre, avec affichage à cristaux liquides I²C !

Salutdans ce projet, je veux montrer et vous expliquer un capteur de gamme avec ultrasons et un écran à cristaux liquides 20 x 04. J'ai écrit le code pour ce projet moi-même et ajouté beaucoup de commentaires, afin que tout le monde peut le comprendr
Ohm crochet - un mégohmmètre vibrant pour Crochet

Ohm crochet - un mégohmmètre vibrant pour Crochet

Ce crochet crochet se traduit par une résistance électrique en vibrations, rendant la résistance électrique un biens corporels d'un processus de prise de E-Textile. Le crochet d'Ohm permet de développer un sens électrique pour les matériaux que vous
Algorithme de multimètre numérique shield pour Arduino

Algorithme de multimètre numérique shield pour Arduino

Cette instructable décrit un bouclier, qui convertit la carte « Arduino » dans un multimètre numérique (DMM).Le bouclier peut être inséré sur « Arduino » UNO und Duemilanove planches. Il peut fonctionner en trois modes :autonome - la mesure de donnée
Maître de l’accordéon - un synthétiseur de musique python/arduino

Maître de l’accordéon - un synthétiseur de musique python/arduino

Ce projet a été créé par une équipe de trois étudiants de l'Université de Pennsylvanie à MHacks 2014 Detroit (un week-end Hackathon). L'objectif de ce projet est de créer un synthétiseur de musique qui génère des signaux basé sur les gestes de l'util
Commande de 3 moteurs servo avec 3 potentiomètres et un Arduino

Commande de 3 moteurs servo avec 3 potentiomètres et un Arduino

Salut. Il s'agit de mon premier instructable, alors j'espère que vous sera patient avec moi si je fais des erreurs de mise en place. Il est écrit pour les débutants comme moi, alors le plus avancé parmi vous pouvez sauter beaucoup de cela et juste ar
Un altimètre Arduino compact, pour les avions RC

Un altimètre Arduino compact, pour les avions RC

Merci de voter pour ce Instructable si vous pensez qu'il le mérite ! Merci !L' Altimètre ultime est un altimètre Arduino contrôlée super compact, capable de mesurer l'altitude avec une précision de 0,3 mètres et enregistrer les valeurs maximale et mi
Arduino maître Modbus RTU Scada industriel connexion

Arduino maître Modbus RTU Scada industriel connexion

Cette preuve bien que simuler d'autres tests effectués dans le précédent Post mis en œuvre Arduino et protocole Modbus RTU série mode "master", est la première étape pour connecter l'arduino un environnement industriel Scada, nous verrons plus a
Utiliser le module potentiomètre sur Arduino

Utiliser le module potentiomètre sur Arduino

module de potentiomètre à l'aide d'un potentiomètre rotatif, le bouton du potentiomètre qui peut être modifié pour ajuster la résistance du potentiomètre.Étape 1: Liste du matériel et câblage Ddiagram Liste du matérielArduino UNO * 1Potentiomètre rot
Modbus RTU maître avec Arduino via RS232

Modbus RTU maître avec Arduino via RS232

Dans le précédent test, effectue la communication entre l'Arduino Mega 2560 et un esclave Modbus simulateur via le port USB qui ont généralement notre arduino, dans ce cas nous allons tester avec un Arduino comme maître Modbus mais via RS-232 avec no
Guide du débutant pour Arduino

Guide du débutant pour Arduino

Après quelques années d'expérimentations avec Arduino, j'ai décidé que le moment est venu de partager les connaissances que j'ai acquis. Donc j'ai ici, il va, un guide pour Arduino, avec les bases nues pour les débutants et quelques explications plus
Show Laser Arduino avec un contrôle complet XY

Show Laser Arduino avec un contrôle complet XY

mise à jour ! Voir étape 32 pour savoir comment utiliser ce projet avec un laser vert! Aussi - commander l' Instructable LaserTweet pour rendre ces données d'affichage projet de Twitter :Ce projet utilise un Arduino et certains haut-parleurs bon marc