carlosvolt
Published © LGPL

Capacimeter with Arduino

A Capacimeter is an instrument used to measure the capacitance of a capacitor.

BeginnerFull instructions provided57
Capacimeter with Arduino

Story

Read more

Code

Source code

C/C++
Source code
#include <Capacitor.h>
#include <U8glib.h>
#define PULSADOR_PIN 4  // Pin del pulsador
// Condensador en prueba.
// Ten en cuenta que para los electrolíticos el primer pin (en este caso D7)
// debe ser positivo, y el segundo (en este caso A2) negativo.
Capacitor condensador(7, A2);
// Configurar la pantalla OLED SH1106
U8GLIB_SH1106_128X64 oled(U8G_I2C_OPT_NONE);
void setup() {
  Serial.begin(9600);
  oled.setFont(u8g_font_6x10);  // Establecer la fuente para la pantalla OLED
  pinMode(PULSADOR_PIN, INPUT_PULLUP);  // Configurar el pin del pulsador como entrada con resistencia pull-up
  // Mostrar mensaje inicial en la pantalla OLED
  oled.firstPage();
  do {
    oled.drawStr(0, 20, "Apriete el boton");
    oled.drawStr(0, 40, "para leer el capacitor");
  } while (oled.nextPage());
}
void loop() {
  if (digitalRead(PULSADOR_PIN) == LOW) {  // Si el pulsador está presionado
    float capacitancia = condensador.Measure();  // Medir la capacitancia (en pF) 
    // Convertir capacitancia a nF y uF
    float capacitancia_nF = capacitancia / 1000.0;
    float capacitancia_uF = capacitancia / 1000000.0;
    // Imprimir en el Monitor Serie
    Serial.print("Capacitancia: ");
    Serial.print(capacitancia);
    Serial.print(" pF, ");
    Serial.print(capacitancia_nF, 3);
    Serial.print(" nF, ");
    Serial.print(capacitancia_uF, 6);
    Serial.println(" uF");
    // Dibujar en la pantalla OLED
    oled.firstPage();
    do {
      oled.drawStr(0, 10, "Capacitancia:");    
      // Mostrar en pF
      oled.setPrintPos(0, 30);  // Posición del texto
      oled.print(capacitancia);
      oled.print(" pF");
      // Mostrar en nF
      oled.setPrintPos(0, 45);  // Posición del texto
      oled.print(capacitancia_nF, 3);
      oled.print(" nF");
      // Mostrar en uF
      oled.setPrintPos(0, 60);  // Posición del texto
      oled.print(capacitancia_uF, 6);
      oled.print(" uF");
    } while (oled.nextPage());
    delay(1000);  // Esperar 1 segundo antes de permitir otra lectura
  }
}

Credits

carlosvolt

carlosvolt

33 projects • 3 followers

Comments