Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Construa um Contador Geiger-Müller Personalizado com Arduino, Boost de Alta Tensão e LCD 20x4

Componentes e Materiais

Componente Quantidade Observações
Arduino UNO (ou compatível) 1 Qualquer placa Arduino funciona; não precisa ser especificamente UNO
Módulo Boost DC-DC 1.5-3V para 300-400V (380V) 1 Tensão ideal final: 400V; faixa operacional do tubo GM: 350-450V
Tubo Geiger-Müller STS-5 1 Geralmente adquirido no eBay (mais barato); costuma vir da Ucrânia (2-3 semanas de entrega)
Módulo LCD Serial I2C 2004 20x4 (SunFounder) 1 Menos fios que displays paralelos; qualquer 20x4 serve

Ferramentas Necessárias

Sobre o Projeto

⚠ AVISO DE SEGURANÇA: Este dispositivo utiliza altas tensões (400 V) que são perigosas. Embora as correntes sejam baixas, qualquer quantidade de corrente ou tensão introduzida no corpo humano pode induzir arritmia cardíaca, podendo levar à morte. Quem construir este projeto deve ter experiência em eletrônica e tomar extremas precauções de segurança ao lidar com a parte de alta tensão do circuito.

O objetivo foi adaptar o trabalho de AdNovea para criar um contador Geiger-Müller com maior liberdade de programação (o projeto original usava scripts que não consegui modificar). Isso permite entender melhor a física do tubo e criar um dispositivo adaptado às necessidades do usuário.

Simplifiquei o diagrama de circuito do AdNovea, removendo buzzer, módulo Ethernet e o resistor que liga ao tubo GM (que impedia corrente suficiente para o funcionamento). O resultado é um contador pessoal de radiação de fundo, sem conexões de rede complexas.

Construa um Contador Geiger-Müller Personalizado com Arduino, Boost de Alta Tensão e LCD 20x4
Circuito simplificado baseado no trabalho de AdNovea

Construção e Montagem

A montagem é direta (consulte o diagrama). A maior dificuldade foi obter o tubo GM e o conversor de alta tensão – ambos comprados no eBay da Ucrânia e China, respectivamente, com 3-4 semanas de espera.

Comecei testando em protoboard para validar o circuito e fazer ajustes. Depois, soldei tudo em uma placa de circuito impresso. Usei Arduino UNO, mas um Nano economizaria espaço. Fixei o tubo GM na placa com fita isolante (também isola os terminais do transformador por segurança). Como não tinha ferramentas para fazer uma caixa bonita, usei a caixa de papelão do kit Arduino inicial.

Construa um Contador Geiger-Müller Personalizado com Arduino, Boost de Alta Tensão e LCD 20x4
Circuito soldado em placa perfurada
Construa um Contador Geiger-Müller Personalizado com Arduino, Boost de Alta Tensão e LCD 20x4
Caixa de papelão com recorte para o LCD 20x4

Recortei a tampa para o display (reforçado com fita) e a lateral para o cabo USB. Baterias 9V não duraram; usei alimentação USB. Isolamento adicional com fita elétrica previne curtos e risco de incêndio.

Funcionamento do Software

O programa conta pulsos do tubo GM a cada 30 segundos, multiplica por 2 para obter CPM (contagens por minuto – unidade padrão). Converte para µSv/h usando fator 0.0057 (aproximação para tubo STS-5). Calcula média progressiva e erro padrão (DP/√n) das leituras. Limitação de memória do Arduino permite array de 100 amostras (50 minutos de dados), tamanho amostral adequado.

Ideias para melhorias futuras: alarme sonoro/visual quando CPM exceder radiação de fundo, ajustar período de log para medições mais rápidas, otimizar uso de memória para mais amostras.

Código

#include <LiquidCrystal_I2C.h>
#include <Wire.h>

unsigned long counts = 0;
unsigned long previousMillis = 0;
float averageCPM = 0;
float sdCPM = 0;
int currentCPM = 0;
float calcCPM = 0;

LiquidCrystal_I2C lcd(0x27, 20, 4);
float CPMArray[100];

#define LOG_PERIOD 30000 // Período de contagem em ms (30s)

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; // CPM = contagens/30s * 2
    
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("uSv/hr: ");
    lcd.print(outputSieverts(CPMArray[currentCPM]));
    
    counts = 0;
    averageCPM = 0;
    sdCPM = 0;
    
    // Calcula média
    for (int x = 0; x < currentCPM + 1; x++) {
      averageCPM += CPMArray[x];
    }
    averageCPM /= (currentCPM + 1);
    
    // Calcula desvio padrão e erro padrão
    for (int x = 0; x < currentCPM + 1; x++) {
      sdCPM += sq(CPMArray[x] - averageCPM);
    }
    sdCPM = sqrt(sdCPM / currentCPM) / sqrt(currentCPM + 1);
    
    Serial.println("Avg: " + String(averageCPM) + " +/- " + String(sdCPM) + " ArrayVal: " + String(CPMArray[currentCPM]));
    
    currentCPM++;
    displayAverageCPM();
  }
}

void impulse() {
  counts++;
}

void displayAverageCPM() {
  lcd.setCursor(0, 1);
  lcd.print("Avg: ");
  lcd.print(outputSieverts(averageCPM));
  lcd.print("+/-");
  lcd.print(outputSieverts(sdCPM));
}

float outputSieverts(float x) {
  return x * 0.0057; // Fator de conversão CPM → µSv/h para STS-5
}

Esquemático

O esquemático no Fritzing pode aparecer com componentes reposicionados. Arquivo: geiger_counter_4LAnJvZEpC.fzz

Processo de manufatura

  1. Construa um Contador Geiger com Raspberry Pi – Tutorial de Sensor de Radiação Open-Hardware
  2. Monitoramento em Tempo Real de Painel Solar com Arduino: Sistema de Aquisição de Dados de Baixo Custo
  3. Construa um Spybot Controlado por Bluetooth com Arduino
  4. FlickMote: Controle Remoto IR por Gestos para Casa Inteligente
  5. DIY Arduino TV B-Gone: Controle Remoto Universal para Todas as TVs
  6. Construa um Relógio Mestre LED Personalizado com Alarme – Visível a 12 Metros
  7. Garanta Aquecimento Seguro de Água: Monitor de Tensão do Termopar para Chama Piloto
  8. Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
  9. Crie um Botão de Teclado "Socável" Personalizado com Arduino: Guia Passo a Passo
  10. Presente de Dia dos Namorados: Contador DIY de Dias Juntos