Construye un Contador Geiger-Müller Personalizado con Arduino, Elevador de Alta Tensión y Pantalla LCD 20x4
Componentes y materiales
| Arduino UNO | Puede ser cualquier placa Arduino, no necesariamente UNO | 1 |
| Módulo Elevador DC-DC 1.5-3V a 300-400V 380V | Voltaje ideal 400V, rango 350-450V (rango de alimentación del tubo GM) | 1 |
| Tubo Geiger-Müller STS-5 | Se puede encontrar en eBay (más económico). Suele enviarse desde Ucrania, 2-3 semanas de entrega | 1 |
| Módulo LCD 2004 20x4 I2C Serial para Arduino | Flexible, menos cables. Cualquier pantalla 20x4 sirve | 1 |
Herramientas necesarias
- Soldador (genérico): Para montar el circuito en placa y soldar el capacitor al transformador
- Protoboard 270 pines: Para pruebas iniciales antes de soldar
Sobre el proyecto
⚠ ADVERTENCIA DE SEGURIDAD: Este dispositivo utiliza alto voltaje (400V) que es peligroso. Aunque la corriente es baja, cualquier cantidad puede inducir arritmia cardíaca y causar la muerte. Quien construya esto debe tener experiencia en electrónica y extremar precauciones de seguridad.
Mi objetivo era adaptar el trabajo de AdNovea para crear un contador Geiger-Müller programable libremente (el original usaba scripts que no pude modificar). Esto permite entender mejor la física del tubo y crear un dispositivo a medida.
Simplifiqué el circuito de AdNovea para un contador personal que muestra las cuentas, sin complicaciones como Ethernet o conexiones a redes nacionales. Experimenté con módulos Bluetooth y zumbadores, pero opté por un contador de radiación de fondo simple.

La construcción es sencilla (ver diagrama). Lo difícil fue conseguir el tubo GM y el conversor de alta tensión. Ambos se compraron baratos en eBay desde Ucrania y China, tardando 3-4 semanas.
Empecé montando en protoboard para evaluar y modificar el circuito. Lo armé según el diagrama de AdNovea, pero omití zumbador, módulo Ethernet y la resistencia hacia el tubo GM (no había suficiente corriente). Luego soldé todo en una placa perforada.

Use Arduino UNO, pero un Nano ahorraría espacio. Fijé el tubo GM a la placa con cinta aislante y cubrí los terminales del transformador para seguridad. Como no tenía herramientas para hacer una caja bonita, usé la caja de cartón del kit de Arduino.



Probé con batería 9V pero duraba poco. Finalmente alimenté por USB y añadí más cinta aislante donde el circuito contactaba el cartón para evitar incendios y pérdidas de señal.
Funcionamiento del software
El programa toma los conteos del tubo GM cada 30 segundos, los multiplica por 2 para obtener CPM (cuentas por minuto). Convierte a µSv/h usando factor 0.0057. Calcula media progresiva y error estándar (DE/√n) de las mediciones. Por limitaciones de memoria del Arduino, el array almacena 100 valores (50 minutos), tamaño de muestra adecuado.
Quedan mejoras pendientes: zumbador con alarma si CPM supera fondo, ajustar período de registro para mediciones más rápidas. ¡Quien quiera puede seguir mejorándolo!
Código
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
unsigned long counts;
unsigned long previousMillis;
float averageCPM;
float sdCPM;
int currentCPM;
float calcCPM;
LiquidCrystal_I2C lcd(0x27, 20, 4);
float CPMArray[100];
#define LOG_PERIOD 30000
void setup() {
counts = 0;
currentCPM = 0;
averageCPM = 0;
sdCPM = 0;
calcCPM = 0;
lcd.init();
lcd.backlight();
Serial.begin(9600);
pinMode(2, INPUT);
attachInterrupt(digitalPinToInterrupt(2), impulse, FALLING);
}
void loop() {
lcd.setCursor(0,2);
lcd.print("CPM Count: ");
lcd.print(counts);
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > LOG_PERIOD) {
previousMillis = currentMillis;
CPMArray[currentCPM] = counts * 2;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("uSv/hr: ");
lcd.print(outputSieverts(CPMArray[currentCPM]));
counts = 0;
averageCPM = 0;
sdCPM = 0;
for (int x=0; x
Esquemáticos
El esquema en Fritzing puede aparecer desordenado al abrirse. Archivo: geiger_counter_4LAnJvZEpC.fzz
Proceso de manufactura
- Construya un Contador Geiger con Raspberry Pi – Tutorial de Sensor de Radiación Open‑Hardware
- Monitorización en Tiempo Real de Panel Solar con Arduino: Sistema de Adquisición de Datos de Bajo Coste
- Construye un Spybot controlado por Bluetooth con Arduino
- FlickMote: Mando IR por gestos para Smart Home
- TV‑B‑Gone DIY con Arduino: Mando universal para apagar cualquier TV
- Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
- Monitor de voltaje de termopar para piloto de calentador de agua: alertas seguras por email y SMS
- Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
- Crea un Botón de Teclado Personalizado y "Apuñalable" con Arduino: Guía Paso a Paso
- Soluciones de Alimentación Optimizadas para Proyectos Arduino
- Regalo de San Valentín: Contador DIY de Días Juntos