Índice:

Contador Arduino DIY Geiger: 12 etapas (com imagens)
Contador Arduino DIY Geiger: 12 etapas (com imagens)

Vídeo: Contador Arduino DIY Geiger: 12 etapas (com imagens)

Vídeo: Contador Arduino DIY Geiger: 12 etapas (com imagens)
Vídeo: Curso de Arduino - Contador de Pessoas com Arduino Uno e Display LCD no Tinkercad - Eletrônica Fácil 2024, Novembro
Anonim
Contador Arduino DIY Geiger
Contador Arduino DIY Geiger
Contador Arduino DIY Geiger
Contador Arduino DIY Geiger

Você encomendou um contador Geiger DIY e deseja conectá-lo ao Arduino. Você fica online e tenta duplicar como outros conectaram seus contadores Geiger ao Arduino apenas para descobrir que algo está errado. Embora seu contador Geiger pareça funcionar, nada funciona conforme descrito em DIY que você está seguindo ao conectar seu contador Geiger ao Arduino.

Neste Instructable, estarei abordando como solucionar alguns desses problemas.

Lembrar; monte e codifique o Arduino uma etapa de cada vez. Se você for direto para um projeto concluído e houver um fio ou linha de código faltando, pode levar uma eternidade para encontrar o problema.

Etapa 1: Ferramentas e peças

Ferramentas e peças
Ferramentas e peças

Caixa protótipo Usei uma caixa de bombons Ferrero Rocher.

Placa de ensaio pequena

LCD 16x2

Placa Arduino éter UNO ou Nano

Resistor 220 Ω

Potenciômetro 10 kΩ resistor ajustável.

DIY Geiger Counter Kit

Jumper Wires

Conector ou chicote de bateria

Osciloscópio

Alicate de ponta fina

Chave de fenda padrão pequena

Etapa 2: monte seu contador Geiger

Monte seu contador Geiger
Monte seu contador Geiger

Qualquer dano ao tubo Geiger; e seu contador Geiger não funcionará, então use a capa protetora de acrílico para evitar danos ao seu tubo Geiger.

Este manual é sobre como consertei o mesmo contador Geiger com um tubo Geiger quebrado e coloquei a tampa protetora de acrílico para evitar quebras no futuro.

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

Etapa 3: Testar eletricamente o contador Geiger

Testando eletricamente o contador Geiger
Testando eletricamente o contador Geiger
Testando eletricamente o contador Geiger
Testando eletricamente o contador Geiger
Testando eletricamente o contador Geiger
Testando eletricamente o contador Geiger

Primeiro, use a voltagem certa para a fonte de alimentação; o cabo USB fornece 5 volts DC direto do computador, no entanto, o suporte de 3 pilhas AA é para baterias alcalinas de 1,5 volts, perfazendo uma voltagem total de 4,5 volts. Se você usar baterias NI-Cd ou NI-MH recarregáveis de 1,2 volts, precisará de um suporte de bateria 4 AA para uma tensão total de 4,8 volts. Se você usar menos de 4,5 volts, o contador Geiger pode não funcionar como deveria.

Há muito poucos circuitos na saída dos contadores Geiger; então, enquanto o alto-falante fizer um som de tique-taque e o LED piscar, você deve obter um sinal no pino VIN.

Para ter certeza do sinal de saída; conecte um osciloscópio à saída conectando o lado positivo da ponta de prova do osciloscópio ao VIN e o lado negativo da ponta de prova do osciloscópio ao terra.

Em vez de apenas esperar a radiação de fundo para acionar o contador Geiger, usei amerício-241 de uma câmara de íons de detectores de fumaça para aumentar as reações dos contadores Geiger. A saída do contador Geiger começou em +3 volts e caiu para 0 volts toda vez que o tubo Geiger reagiu às partículas alfa e voltou a +3 volts um momento depois. Este é o sinal que você gravará com o Arduino.

Etapa 4: Fiação

Fiação
Fiação
Fiação
Fiação
Fiação
Fiação
Fiação
Fiação

Existem duas maneiras de conectar o contador Geiger ao seu Arduino e ao seu computador.

Conecte o GND no Arduino ao GND no contador Geiger.

Conecte o 5V no Arduino ao 5V no contador Geiger.

Conecte o VIN no contador Geiger ao D2 no Arduino.

Com alimentação independente conectada ao contador Geiger.

Conecte o GND no Arduino ao GND no contador Geiger.

Conecte o VIN no contador Geiger ao D2 no Arduino.

Conecte o Arduino ao seu computador.

Etapa 5: Código

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

Abra o IDE do Arduino e carregue o código.

// Este esboço conta o número de pulsos por minuto.

// Conecte o GND no Arduino ao GND no contador Geiger.

// Conecte o 5V no Arduino ao 5V no contador Geiger.

// Conecte o VIN no contador Geiger ao D2 no Arduino.

contagens longas sem sinal; // variável para eventos GM Tube

unsigned long previousMillis; // variável para medir o tempo

void impulso () {// dipanggil setiap ada sinyal FALLING di pino 2

contagens ++;

}

# define LOG_PERIOD 60000 // taxa de contagem

void setup () {// setup

contagens = 0;

Serial.begin (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), impulso, FALLING); // define interrupções externas

Serial.println ("Contador inicial");

}

void loop () {// ciclo principal

currentMillis longo sem sinal = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

anteriorMillis = currentMillis;

Serial.println (contagens);

contagens = 0;

}

}

Em Ferramentas, selecione o Arduino ou outra placa que você está usando.

Em Ferramentas selecione a Porta e Com

Faça upload do código.

Assim que o código for carregado em Ferramentas, selecione Monitor Serial e observe o funcionamento do contador Geiger.

Procure por falhas. A única coisa sobre este código é que é um pouco tedioso, você deve esperar 1 minuto para cada contagem.

Etapa 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

Esta é uma das primeiras falhas que encontrei no código; portanto, preste atenção em seu código, “Serial.println (cpm);” e “Serial.print (cpm);”.

Serial.println (cpm); imprimirá cada contagem em sua própria linha.

Serial.print (cpm); parecerá um grande número imprimindo cada contagem na mesma linha, tornando impossível dizer qual é a contagem.

Etapa 7: Medição de radiação de fundo J305

Medição de radiação de fundo J305
Medição de radiação de fundo J305
Medição de radiação de fundo J305
Medição de radiação de fundo J305

A primeira é a medição da radiação de fundo, a radiação natural que já existe naturalmente. O número listado é o CPM (contagem por minuto), que é um total de partículas radioativas medidas a cada minuto.

A contagem média de fundo do J305 foi de 15,6 CPM.

Etapa 8: Medição J305 da radiação do sensor de fumaça

Medição J305 da radiação do sensor de fumaça
Medição J305 da radiação do sensor de fumaça
Medição J305 da radiação do sensor de fumaça
Medição J305 da radiação do sensor de fumaça

Não é incomum que um contador Geiger forneça a mesma contagem repetidamente, portanto, verifique com uma fonte de radiação. Usei a medição de radiação de Americium uma câmara de íons de um detector de fumaça. O sensor de fumaça utiliza Americium como fonte de partículas alfa que ionizam as partículas de fumaça no ar. Tirei a tampa de metal do sensor para que as partículas alfa e beta possam chegar ao tubo Geiger junto com as partículas gama.

Se tudo estiver bem, a contagem deve mudar.

Americium-241 de uma contagem média da câmara de íons de detectores de fumaça foi de 519 CPM.

Etapa 9: SBM-20

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

Este esboço do Arduino é uma versão modificada escrita por Alex Boguslavsky.

Este Sketch conta o número de pulsos em 15 segundos e o converte em contagens por minuto, tornando-o menos tedioso.

Código que adicionei “Serial.println (" Contador inicial ");”.

Código que mudei; “Serial.print (cpm);” para “Serial.println (cpm);”.

“#Define LOG_PERIOD 15000”; define o tempo de contagem para 15 segundos, mudei para “#define LOG_PERIOD 5000” ou 5 segundos. Não encontrei nenhuma diferença apreciável na média entre contar por 1 minuto, ou 15 segundos e 5 segundos.

#incluir

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

#define MAX_PERIOD 60000 // Período máximo de registro sem modificar este esboço

contagens longas sem sinal; // variável para eventos GM Tube

cpm longo sem sinal; // variável para CPM

multiplicador int sem sinal; // variável para cálculo de CPM neste esboço

unsigned long previousMillis; // variável para medição de tempo

void tube_impulse () {// subprocedimento para capturar eventos do Geiger Kit

contagens ++;

}

void setup () {// subprocedimento de configuração

contagens = 0;

cpm = 0;

multiplicador = MAX_PERIOD / LOG_PERIOD; // calculando o multiplicador, depende do seu período de registro

Serial.begin (9600);

attachInterrupt (0, tubo_impulse, FALLING); // define interrupções externas

Serial.println ("Contador inicial"); // código que eu adicionei

}

void loop () {// ciclo principal

currentMillis longo sem sinal = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

anteriorMillis = currentMillis;

cpm = contagens * multiplicador;

Serial.println (cpm); // código que eu mudei

contagens = 0;

}

}

A contagem média de fundo do SBM-20 foi de 23,4 CPM.

Etapa 10: Conectando o Contador Geiger a um LCD

Conectando o Contador Geiger a um LCD
Conectando o Contador Geiger a um LCD

Conexão LCD:

Pino K LCD para GND

Pino A do LCD para resistor de 220 Ω para Vcc

Pino D7 LCD para pino digital 3

Pino D6 LCD para pino digital 5

Pino D5 LCD para pino digital 6

Pino LCD D4 para pino digital 7

Habilitar LCD pino para pino digital 8

Pino R / W do LCD para aterrar

Pino RS LCD para pino digital 9

Pino VO LCD para ajustar de pot de 10 kΩ

Pin Vcc LCD para Vcc

Pino Vdd LCD para GND

Potenciômetro 10 kΩ resistor ajustável.

Vcc, Vo, Vdd

Contador Geiger

VIN para pino digital 2

5 V a + 5V

GND para aterrar

Etapa 11: Contador Geiger com LCD

Contador Geiger com LCD
Contador Geiger com LCD
Contador Geiger com LCD
Contador Geiger com LCD
Contador Geiger com LCD
Contador Geiger com LCD

// inclua o código da biblioteca:

#incluir

#incluir

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

#define MAX_PERIOD 60000 // Período máximo de registro sem modificar este esboço

#define PERIOD 60000.0 // (60 seg) período de medição de um minuto

CNT longo sem sinal volátil; // variável para contagem de interrupções do dosímetro

contagens longas sem sinal; // variável para eventos GM Tube

cpm longo sem sinal; // variável para CPM

multiplicador int sem sinal; // variável para cálculo de CPM neste esboço

unsigned long previousMillis; // variável para medição de tempo

dispPeriod long unsigned; // variável para medir o tempo

CPM longo sem sinal; // variável para medir o CPM

// inicializa a biblioteca com os números dos pinos da interface

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

void setup () {// setup

lcd.begin (16, 2);

CNT = 0;

CPM = 0;

dispPeriod = 0;

lcd.setCursor (0, 0);

lcd.print ("RH Electronics");

lcd.setCursor (0, 1);

lcd.print ("Contador Geiger");

atraso (2000);

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // Evento no pino 2

}

void loop () {

lcd.setCursor (0, 0); // imprime texto e CNT no LCD

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (millis ()> = dispPeriod + PERIOD) {// Se um minuto acabou

cleanDisplay (); // Clear LCD

// Faça algo sobre eventos CNT acumulados….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // Display CPM

CNT = 0;

dispPeriod = millis ();

}

}

void GetEvent () {// Obter evento do dispositivo

CNT ++;

}

void cleanDisplay () {// Limpar rotina de LCD

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

Etapa 12: Arquivos

Baixe e instale esses arquivos em seu Arduino.

Coloque cada arquivo.ino em uma pasta com o mesmo nome.

Recomendado: