Tabla de contenido:

Contador Geiger DIY de Arduino: 12 pasos (con imágenes)
Contador Geiger DIY de Arduino: 12 pasos (con imágenes)

Video: Contador Geiger DIY de Arduino: 12 pasos (con imágenes)

Video: Contador Geiger DIY de Arduino: 12 pasos (con imágenes)
Video: Sensor LIDAR Casero Con Arduino | Rotativo + Sensor Láser Pr#97 2024, Mes de julio
Anonim
Contador Geiger DIY de Arduino
Contador Geiger DIY de Arduino
Contador Geiger DIY de Arduino
Contador Geiger DIY de Arduino

Entonces ha pedido un contador Geiger de bricolaje y desea conectarlo a su Arduino. Te conectas e intentas duplicar cómo otros han conectado su contador Geiger a Arduino solo para descubrir que algo anda mal. Aunque su contador Geiger parece funcionar, nada funciona como se describe en el bricolaje que está siguiendo cuando conecta su contador Geiger a su Arduino.

En este Instructable, cubriré cómo solucionar algunos de estos problemas técnicos.

Recordar; ensamble y codifique Arduino paso a paso, si va directamente a un proyecto terminado y hay un cable o línea de código perdido, podría llevarle una eternidad encontrar el problema.

Paso 1: herramientas y piezas

Herramientas y repuestos
Herramientas y repuestos

Caja de prototipo Usé una caja de dulces Ferrero Rocher.

Placa de pruebas pequeña

LCD de 16x2

Placa arduino ether a UNO o Nano

Resistencia de 220 Ω

Resistencia Pot 10 kΩ ajustable.

Kit de contador Geiger de bricolaje

Cables de puente

Conector o arnés de batería

Osciloscopio

Alicates de punta fina

Destornillador estándar pequeño

Paso 2: arma tu contador Geiger

Arme su contador Geiger
Arme su contador Geiger

Cualquier daño a su tubo Geiger; y su contador Geiger no funcionará, así que use la cubierta acrílica protectora para evitar daños a su tubo Geiger.

Este Instructable trata sobre cómo reparé el mismo contador Geiger con un tubo Geiger roto y coloqué la cubierta acrílica protectora para evitar roturas en el futuro.

www.instructables.com/id/Repairing-a-DIY-G…

Paso 3: Prueba eléctrica del contador Geiger

Prueba eléctrica del contador Geiger
Prueba eléctrica del contador Geiger
Prueba eléctrica del contador Geiger
Prueba eléctrica del contador Geiger
Prueba eléctrica del contador Geiger
Prueba eléctrica del contador Geiger

Primero use el voltaje correcto para la fuente de alimentación; el cable USB suministra 5 voltios CC directamente desde su computadora, sin embargo, el soporte de 3 pilas AA es para pilas alcalinas de 1,5 voltios, lo que hace un voltaje total de 4,5 voltios. Si usa baterías NI-Cd o NI-MH recargables de 1.2 voltios, necesitará un soporte de batería 4 AA para un voltaje total de 4.8 voltios. Si usa menos de 4.5 voltios, es posible que el contador Geiger no funcione como debería.

Hay muy pocos circuitos en la salida de los contadores Geiger; de modo que siempre que el altavoz emita un sonido de tictac y el LED parpadee, debería recibir una señal en el pin VIN.

Para estar seguro de la señal de salida; conecte un osciloscopio a la salida conectando el lado positivo de la sonda del osciloscopio al VIN y el lado negativo de la sonda del osciloscopio al suelo.

En lugar de esperar a que la radiación de fondo active el contador Geiger, utilicé americio-241 de una cámara de iones de detectores de humo para aumentar las reacciones de los contadores Geiger. La salida del contador Geiger comenzó a +3 voltios y cayó a 0 voltios cada vez que el tubo Geiger reaccionaba a las partículas alfa y volvía a +3 voltios un momento después. Esta es la señal que grabará con Arduino.

Paso 4: cableado

Alambrado
Alambrado
Alambrado
Alambrado
Alambrado
Alambrado
Alambrado
Alambrado

Hay dos formas de conectar el contador Geiger a tu Arduino y a tu computadora.

Conecte el GND en Arduino al GND en el contador Geiger.

Conecte el 5V en Arduino al 5V en el contador Geiger.

Conecte el VIN en el contador Geiger al D2 en Arduino.

Con alimentación independiente conectada al contador Geiger.

Conecte el GND en Arduino al GND en el contador Geiger.

Conecte el VIN en el contador Geiger al D2 en Arduino.

Conecta Arduino a tu computadora.

Paso 5: Código

Código
Código
Código
Código
Código
Código

Abra Arduino IDE y cargue el código.

// Este Sketch cuenta el número de pulsos por minuto.

// Conecte el GND en Arduino al GND en el contador Geiger.

// Conecte el 5V en Arduino al 5V en el contador Geiger.

// Conecte el VIN en el contador Geiger al D2 en Arduino.

cuentas largas sin firmar; // variable para eventos de GM Tube

unsigned long previousMillis; // variable para medir el tiempo

impulso vacío () {// dipanggil setiap ada sinyal FALLING di pin 2

cuenta ++;

}

#define LOG_PERIOD 60000 // tasa de recuento

configuración vacía () {// configuración

cuenta = 0;

Serial.begin (9600);

pinMode (2, ENTRADA);

attachInterrupt (digitalPinToInterrupt (2), impulso, FALLING); // definir interrupciones externas

Serial.println ("Contador de inicio");

}

bucle vacío () {// ciclo principal

currentMillis largo sin firmar = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

Serial.println (recuentos);

cuenta = 0;

}

}

En Herramientas, seleccione el Arduino u otra placa que esté utilizando.

En Herramientas, seleccione el Puerto y Com

Sube el código.

Una vez que se cargue el código en Herramientas, seleccione Monitor de serie y observe cómo funciona su contador Geiger.

Busque fallas. Lo único de este código es que es un poco tedioso, debes esperar 1 minuto para cada conteo.

Paso 6: Serial.println Vs Serial.print

Serial.println Vs Serial.print
Serial.println Vs Serial.print
Serial.println Vs Serial.print
Serial.println Vs Serial.print

Este es uno de los primeros fallos que encontré en el código; así que búsquelo en su código, "Serial.println (cpm);" y “Serial.print (cpm);”.

Serial.println (cpm); imprimirá cada recuento en su propia línea.

Serial.print (cpm); se verá como un número grande imprimiendo cada conteo en la misma línea, lo que hace imposible saber cuál es el conteo.

Paso 7: Medición de radiación de fondo J305

Medición de radiación de fondo J305
Medición de radiación de fondo J305
Medición de radiación de fondo J305
Medición de radiación de fondo J305

Primero está la medición de la radiación de fondo, la radiación natural que ya existe de forma natural. El número indicado es el CPM (recuento por minuto), que es un total de partículas radiactivas medidas cada minuto.

El recuento promedio de fondo de J305 fue de 15,6 CPM.

Paso 8: Medición J305 de la radiación del sensor de humo

Medición J305 de la radiación del sensor de humo
Medición J305 de la radiación del sensor de humo
Medición J305 de la radiación del sensor de humo
Medición J305 de la radiación del sensor de humo

No es raro que un contador Geiger le dé el mismo recuento repetidamente, así que verifíquelo con una fuente de radiación. Usé la medición de radiación de Americium en una cámara de iones de un detector de humo. El sensor de humo utiliza americio como fuente de partículas alfa que ionizan las partículas de humo en el aire. Quité la tapa de metal del sensor para que las partículas alfa y beta pudieran llegar al tubo Geiger junto con las partículas gamma.

Si todo está bien, las cuentas deberían cambiar.

El recuento promedio de americio-241 de una cámara de iones de detectores de humo fue de 519 CPM.

Paso 9: SBM-20

SBM-20
SBM-20
SBM-20
SBM-20

Este boceto de Arduino es una versión modificada escrita por Alex Boguslavsky.

Este boceto cuenta el número de pulsos en 15 segundos y lo convierte en conteos por minuto, lo que lo hace menos tedioso.

Código que agregué “Serial.println (" Contador de inicio ");”.

Código que cambié; "Serial.print (cpm);" a "Serial.println (cpm);".

"#Define LOG_PERIOD 15000"; establece el tiempo de conteo en 15 segundos, lo cambié a “#define LOG_PERIOD 5000” o 5 segundos. No encontré una diferencia apreciable en el promedio entre contar durante 1 minuto, o entre 15 segundos y 5 segundos.

#incluir

#define LOG_PERIOD 15000 // Período de registro en milisegundos, valor recomendado 15000-60000.

#define MAX_PERIOD 60000 // Periodo máximo de registro sin modificar este boceto

cuentas largas sin firmar; // variable para eventos de GM Tube

cpm largo sin firmar; // variable para CPM

multiplicador int sin signo; // variable para el cálculo de CPM en este esquema

unsigned long previousMillis; // variable para la medición del tiempo

void tube_impulse () {// subprocedimiento para capturar eventos de Geiger Kit

cuenta ++;

}

void setup () {// subprocedimiento de configuración

cuenta = 0;

cpm = 0;

multiplicador = MAX_PERIOD / LOG_PERIOD; // calculando el multiplicador, depende de su período de registro

Serial.begin (9600);

attachInterrupt (0, tube_impulse, FALLING); // definir interrupciones externas

Serial.println ("Contador de inicio"); // código que agregué

}

bucle vacío () {// ciclo principal

currentMillis largo sin firmar = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

cpm = cuenta * multiplicador;

Serial.println (cpm); // código que cambié

cuenta = 0;

}

}

El recuento promedio de fondo de SBM-20 fue de 23,4 CPM.

Paso 10: Cableado del contador Geiger con una pantalla LCD

Cableado del contador Geiger con una pantalla LCD
Cableado del contador Geiger con una pantalla LCD

Conexión LCD:

Pin LCD K a GND

LCD A pin a 220 Ω resistencia a Vcc

Pin LCD D7 a pin digital 3

Pin LCD D6 a pin digital 5

Pin LCD D5 a pin digital 6

Pin LCD D4 a pin digital 7

LCD Habilitar pin a pin digital 8

Pin LCD R / W a tierra

Pin LCD RS a pin digital 9

Pin LCD VO para ajustar el potenciómetro de 10 kΩ

Pin Vcc LCD a Vcc

LCD Vdd pin a GND

Resistencia Pot 10 kΩ ajustable.

Vcc, Vo, Vdd

Contador Geiger

VIN al pin digital 2

5 V hasta + 5V

GND a tierra

Paso 11: Contador Geiger con LCD

Contador Geiger con LCD
Contador Geiger con LCD
Contador Geiger con LCD
Contador Geiger con LCD
Contador Geiger con LCD
Contador Geiger con LCD

// incluye el código de la biblioteca:

#incluir

#incluir

#define LOG_PERIOD 15000 // Período de registro en milisegundos, valor recomendado 15000-60000.

#define MAX_PERIOD 60000 // Periodo máximo de registro sin modificar este boceto

#define PERIOD 60000.0 // (60 segundos) período de medición de un minuto

CNT largo sin firmar volátil; // variable para contar las interrupciones del dosímetro

cuentas largas sin firmar; // variable para eventos de GM Tube

cpm largo sin firmar; // variable para CPM

multiplicador int sin signo; // variable para el cálculo de CPM en este esquema

unsigned long previousMillis; // variable para la medición del tiempo

unsigned long dispPeriod; // variable para medir el tiempo

CPM largo sin firmar; // variable para medir el CPM

// inicializa la biblioteca con los números de los pines de la interfaz

LiquidCrystal lcd (9, 8, 7, 6, 5, 3);

configuración vacía () {// configuración

lcd. comienzo (16, 2);

CNT = 0;

CPM = 0;

dispPeriod = 0;

lcd.setCursor (0, 0);

lcd.print ("Electrónica RH");

lcd.setCursor (0, 1);

lcd.print ("Contador Geiger");

retraso (2000);

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // Evento en el pin 2

}

bucle vacío () {

lcd.setCursor (0, 0); // imprime texto y CNT en la pantalla LCD

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (millis ()> = dispPeriod + PERIOD) {// Si ha pasado un minuto

cleanDisplay (); // LCD claro

// Haga algo acerca de los eventos CNT acumulados….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // Display CPM

CNT = 0;

dispPeriod = millis ();

}

}

void GetEvent () {// Obtener evento del dispositivo

CNT ++;

}

void cleanDisplay () {// Borrar rutina de LCD

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

Paso 12: Archivos

Descargue e instale estos archivos en su Arduino.

Coloque cada archivo.ino en una carpeta con el mismo nombre.

Recomendado: