Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Construire un compteur Geiger-Müller personnalisé avec Arduino, boost HV et écran LCD 20x4

Composants et fournitures

Arduino UNO Peut être n'importe quel appareil Arduino, pas nécessairement un UNO 1
Module convertisseur DC-DC 1,5-3V vers 300-400V 380V High Voltage Boost Step-up Tension finale idéale 400V, mais peut varier de 350 à 450V (plage d'alimentation du tube GM) 1
Tube Geiger-Müller STS-5 Trouvé sur eBay (moins cher). Attention : achat probable depuis l'Ukraine, délai 2-3 semaines 1
Module écran LCD 2004 20x4 I2C IIC TWI Serial SunFounder pour Arduino Uno Mega2560 Flexibilité d'utilisation. Affichage LED choisi pour moins de câblage. Un 20x4 conviendra parfaitement 1

Outils et machines nécessaires

Fer à souder (générique) Nécessaire pour créer le circuit sur plaque et souder le condensateur au transformateur de tension
Plaque d'essai 270 broches Projet final sur plaque soudable, mais plaque d'essai fonctionne pour version moins permanente

À propos de ce projet

AVERTISSEMENT DE SÉCURITÉ : CE DISPOSITIF UTILISE DES HAUTES TENSIONS (400 V) QUI SONT DANGEREUSES. BIEN QUE LES COURANTS SOIENT FAIBLES, TOUTE QUANTITÉ DE COURANT OU DE TENSION INTRODUITE DANS LE CORPS HUMAIN PEUT PROVOQUER UNE ARYTHMIE CARDIAQUE POUVANT L'ARRÊTER ET ENTRAÎNER LA MORT. LES PERSONNES CONSTRUISANT CE PRODUIT DOIVENT AVOIR UNE EXPÉRIENCE EN ÉLECTRONIQUE ET FAIRE PREUVE D'UNE EXTRÊME VIGILANCE QUANT AUX PRÉCAUTIONS DE SÉCURITÉ APPROPRIÉES LORS DE L'UTILISATION DE L'ASPECT HAUTE TENSION DU CIRCUIT.

Mon objectif était de reprendre le travail d'AdNovea pour créer un compteur Geiger-Müller que je pourrais programmer librement (le travail d'AdNovea utilisait des scripts que je ne pouvais pas modifier). Cela permet de mieux comprendre la physique du tube et de créer un appareil répondant à ses besoins spécifiques.

Pour ce projet, j'ai simplifié le schéma de circuit d'AdNovea pour obtenir un compteur personnel affichant les comptages, sans la complexité des connexions Ethernet et réseaux nationaux. J'ai expérimenté avec modules Bluetooth et buzzers, mais je voulais un compteur de rayonnement de fond consultable à volonté.

Construire un compteur Geiger-Müller personnalisé avec Arduino, boost HV et écran LCD 20x4

La construction est simple (voir schéma). La difficulté principale était l'obtention de certaines pièces (tube GM et convertisseur haute tension), achetées sur eBay depuis l'Ukraine et la Chine avec 3-4 semaines de délai.

J'ai commencé par assembler le circuit sur plaque d'essai pour l'évaluer et l'adapter. J'ai suivi le schéma d'AdNovea mais omis le buzzer, le module Ethernet et la résistance vers le tube GM (courant insuffisant avec ce design). Puis j'ai tout soudé sur une plaque de circuit.

Construire un compteur Geiger-Müller personnalisé avec Arduino, boost HV et écran LCD 20x4

Un Arduino Uno est cité, mais un Nano permettrait de gagner de la place. J'ai utilisé du ruban électrique pour fixer le tube GM sur la plaque et couvrir les bornes du transformateur pour la sécurité. Faute d'outils pour percer un boîtier plastique, j'ai utilisé la boîte en carton du kit Arduino.

Construire un compteur Geiger-Müller personnalisé avec Arduino, boost HV et écran LCD 20x4

J'ai découpé un trou pour l'écran LCD (renforcé au ruban) et un autre sur le côté pour le câble USB.

Construire un compteur Geiger-Müller personnalisé avec Arduino, boost HV et écran LCD 20x4
Construire un compteur Geiger-Müller personnalisé avec Arduino, boost HV et écran LCD 20x4

Les piles 9V ne tenaient pas longtemps. Du ruban électrique supplémentaire a été ajouté aux points de contact circuit-carton pour prévenir les risques d'incendie et pertes de signal.

Programme et mesures

Le programme compte les événements du tube GM toutes les 30 secondes, multiplie par 2 pour obtenir les CPM (comptages par minute), puis convertit en µSv/h (unité de référence). Il calcule la moyenne progressive et l'erreur standard (SD/√n), statistiquement plus appropriée pour un échantillonnage du rayonnement de fond moyen. Limité par la mémoire de l'Arduino, le tableau stocke 100 mesures (50 minutes), un échantillon suffisant.

Je n'ai pas implémenté d'alarmes sonores ni optimisé la période de log, mais d'autres peuvent améliorer le dispositif à volonté.

Code

#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<currentCPM+1; x++) averageCPM += CPMArray[x];
    averageCPM /= (currentCPM + 1);
    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; }

Schémas

Le schéma est particulier : lors de l'ouverture avec Fritzing, les composants sont déplacés.

geiger_counter_4LAnJvZEpC.fzz

Processus de fabrication

  1. Construire un compteur Geiger Raspberry Pi – Tutoriel capteur radiations open-hardware
  2. Surveillance temps réel de panneau solaire avec Arduino : Acquisition de données bas coût
  3. Construire un Spybot Arduino piloté par Bluetooth
  4. FlickMote : Télécommande IR à gestes pour maison connectée
  5. TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
  6. Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
  7. Sécurisez votre chauffe-eau : Moniteur de tension thermocouple pour veilleuse pilote
  8. Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
  9. Cadeau de Saint-Valentin : Compteur DIY des jours passés ensemble