Devices & Components
Arduino Nano
Software & Tools
rogerbit.
Project description
Code
Source code
c
source code
1#include "U8glib.h"//Librería para el control del display oled 2U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);// I2C / TWI // Se habilita esta linea según el display a usar en este caso el driver SH1106 3double IPulso, frequency, capacitor, valormH, valoruH, inductance; 4int muestras = 250; 5const int pulsoEntrada = 11; 6const int pulsoSalida = 12; 7void setup() 8{ 9 Serial.begin(9600); 10 pinMode(pulsoEntrada, INPUT);// Lectura del pulso de entrada 11 pinMode(pulsoSalida, OUTPUT);// Carga de la circuito resonante LC 12 delay(2000); 13} 14void loop() 15{ 16 valoruH = lectura(); 17 valormH = valoruH / 1000; 18 //Muestra el valor en mH en el terminal serial 19 Serial.print("Valor: "); 20 Serial.print(valormH); 21 Serial.println(" mH"); 22 //Muestra el valor en uH en el terminal serial 23 Serial.print("Valor: "); 24 Serial.print(valoruH); 25 Serial.println(" uH"); 26 delay(1); 27//Display 28 u8g.firstPage(); 29 do { 30 draw();//Llama a la función draw 31 } while( u8g.nextPage() ); 32 33} 34 35//Funcion 36 37double lectura() 38{ 39 double sumaInductancia = 0; 40 for (int contador = 0; contador < muestras ; contador++) 41 { 42 digitalWrite(pulsoSalida, HIGH); 43 delay(5);// Tiempo para cargar la bobina. 44 digitalWrite(pulsoSalida, LOW); 45 delayMicroseconds(100);// verificar que mide la resonancia. 46 IPulso = pulseIn(pulsoEntrada, HIGH, 5000);//Transcurrido este tiempo pulsein devuelve un varlor 0 47 if (IPulso > 0.1) 48 { 49 capacitor = 2.12E-6;// Medir la capacidad del capacitor para mayor presición y cambiar ese valor obtenido 50 frequency = 1.E6 / (2 * IPulso); 51 inductance = 1. / (capacitor * frequency * frequency * 4.*3.14159 * 3.14159); 52 inductance = inductance*1E6; 53 sumaInductancia += inductance; 54 } 55 } 56 return (sumaInductancia / muestras); 57} 58//Función para mostrar los datos en el display 59 void draw(void) { 60//Imprimimos en pantalla el valor de la inductancia en henrios obtenida en unidad en mH y uH 61 u8g.setFont(u8g_font_unifont); 62 u8g.setPrintPos(0, 20); 63 u8g.print("Valor Inductor");// 64 //Muestra el valor mH 65 u8g.setPrintPos(0, 40); 66 u8g.print("mH: ");// 67 u8g.setPrintPos(25, 40); 68 u8g.print(valormH); 69//Muestra el valor uH 70 u8g.setPrintPos(0, 60); 71 u8g.print("uH: "); 72 u8g.setPrintPos(25, 60); 73 u8g.print(valoruH, 0); 74 75 }
Comments
Only logged in users can leave comments