Table des matières:

Compteur Geiger Arduino DIY : 12 étapes (avec photos)
Compteur Geiger Arduino DIY : 12 étapes (avec photos)

Vidéo: Compteur Geiger Arduino DIY : 12 étapes (avec photos)

Vidéo: Compteur Geiger Arduino DIY : 12 étapes (avec photos)
Vidéo: Compteur de passage avec arduino et le détecteur infrarouge 2024, Novembre
Anonim
Compteur Geiger DIY Arduino
Compteur Geiger DIY Arduino
Compteur Geiger DIY Arduino
Compteur Geiger DIY Arduino

Vous avez donc commandé un compteur Geiger DIY et vous souhaitez le connecter à votre Arduino. Vous allez en ligne et essayez de dupliquer comment d'autres ont connecté leur compteur Geiger à Arduino pour découvrir que quelque chose ne va pas. Bien que votre compteur Geiger semble fonctionner, rien ne fonctionne comme décrit dans le bricolage que vous suivez lorsque vous connectez votre compteur Geiger à votre Arduino.

Dans ce Instructable, je couvrirai comment résoudre certains de ces problèmes.

Rappelles toi; assemblez et codez Arduino une étape à la fois, si vous allez directement à un projet terminé et qu'il y a un fil ou une ligne de code manqué, cela pourrait vous prendre une éternité pour trouver le problème.

Étape 1: Outils et pièces

Outils et pièces
Outils et pièces

Boîte prototype J'ai utilisé une bonbonnière Ferrero Rocher.

Petite planche à pain

ACL 16x2

Carte Arduino ether a UNO ou Nano

Résistance 220

Pot de résistance réglable de 10 kΩ.

Kit de compteur Geiger bricolage

Fils de cavalier

Connecteur ou faisceau de batterie

Oscilloscope

Pince à bec fin

Petit tournevis standard

Étape 2: Assemblez votre compteur Geiger

Assemblez votre compteur Geiger
Assemblez votre compteur Geiger

Tout dommage à votre tube Geiger; et votre compteur Geiger ne fonctionnera pas, alors utilisez le couvercle de protection en acrylique pour éviter d'endommager votre tube Geiger.

Ce Instructable explique comment j'ai réparé le même compteur Geiger avec un tube Geiger cassé et installé le couvercle de protection en acrylique pour éviter les bris à l'avenir.

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

Étape 3: Test électrique du compteur Geiger

Test électrique du compteur Geiger
Test électrique du compteur Geiger
Test électrique du compteur Geiger
Test électrique du compteur Geiger
Test électrique du compteur Geiger
Test électrique du compteur Geiger

Utilisez d'abord la bonne tension pour l'alimentation électrique; le cordon USB fournit 5 volts CC directement à partir de votre ordinateur, mais le support de 3 piles AA est destiné aux piles alcalines de 1,5 volt, soit une tension totale de 4,5 volts. Si vous utilisez des piles rechargeables NI-Cd ou NI-MH de 1,2 volt, vous aurez besoin d'un support de 4 piles AA pour une tension totale de 4,8 volts. Si vous utilisez moins de 4,5 volts, le compteur Geiger peut ne pas fonctionner comme il le devrait.

Il y a très peu de circuits sur la sortie des compteurs Geiger; tant que le haut-parleur émet un son de tic-tac et que la LED clignote, vous devriez obtenir un signal sur la broche VIN.

Pour être sûr du signal de sortie; connectez un oscilloscope à la sortie en connectant le côté positif de la sonde de l'oscilloscope au VIN et le côté négatif de la sonde de l'oscilloscope à la terre.

Plutôt que d'attendre simplement le rayonnement de fond pour déclencher le compteur Geiger, j'ai utilisé de l'américium-241 provenant d'une chambre à ions de détecteurs de fumée pour augmenter les réactions des compteurs Geiger. La sortie du compteur Geiger a commencé à +3 volts et est tombée à 0 volt à chaque fois que le tube Geiger a réagi aux particules alpha et est revenu à +3 volts un instant plus tard. C'est le signal que vous allez enregistrer avec Arduino.

Étape 4: Câblage

Câblage
Câblage
Câblage
Câblage
Câblage
Câblage
Câblage
Câblage

Il existe deux manières de connecter le compteur Geiger à votre Arduino et à votre ordinateur.

Connectez le GND sur Arduino au GND sur le compteur Geiger.

Connectez le 5V sur Arduino au 5V sur le compteur Geiger.

Connectez le VIN sur le compteur Geiger au D2 sur Arduino.

Avec alimentation indépendante connectée au compteur Geiger.

Connectez le GND sur Arduino au GND sur le compteur Geiger.

Connectez le VIN sur le compteur Geiger au D2 sur Arduino.

Connectez Arduino à votre ordinateur.

Étape 5: Coder

Code
Code
Code
Code
Code
Code

Ouvrez l'IDE Arduino et chargez le code.

// Ce croquis compte le nombre d'impulsions par minute.

// Connectez le GND sur Arduino au GND sur le compteur Geiger.

// Connectez le 5V sur Arduino au 5V sur le compteur Geiger.

// Connectez le VIN sur le compteur Geiger au D2 sur Arduino.

comptes longs non signés; //variable pour les événements GM Tube

non signé depuis longtemps Millis; //variable pour mesurer le temps

void impulse () { // dipanggil setiap ada sinyal FALLING di pin 2

compte++;

}

#define LOG_PERIOD 60000 // taux de comptage

void setup() { //setup

compte = 0;

Serial.begin(9600);

pinMode(2, INPUT);

attachInterrupt(digitalPinToInterrupt(2), impulsion, FALLING); //définir les interruptions externes

Serial.println("Démarrer le compteur");

}

boucle vide() { //cycle principal

non signé long currentMillis = millis();

if (currentMillis - previousMillis > LOG_PERIOD) {

précédentMillis = currentMillis;

Serial.println(comptes);

compte = 0;

}

}

Dans Outils, sélectionnez l'Arduino ou une autre carte que vous utilisez.

Dans Outils, sélectionnez le Port et Com

Téléchargez le code.

Une fois le code téléchargé dans Outils, sélectionnez Serial Monitor et regardez votre compteur Geiger fonctionner.

Recherchez les défauts. La seule chose à propos de ce code est qu'il est un peu fastidieux, vous devez attendre 1 minute pour chaque comptage.

Étape 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

C'est l'un des premiers défauts que j'ai trouvés dans le code; alors surveillez-le dans votre code, "Serial.println (cpm);" et "Impression.série(cpm);".

Serial.println(cpm); imprimera chaque compte sur sa propre ligne.

Serial.print(cpm); ressemblera à un grand nombre imprimant chaque compte sur la même ligne, ce qui rend impossible de dire quel est le compte.

Étape 7: Mesure du rayonnement de fond J305

J305 Mesure du rayonnement de fond
J305 Mesure du rayonnement de fond
J305 Mesure du rayonnement de fond
J305 Mesure du rayonnement de fond

Le premier est la mesure du rayonnement de fond, le rayonnement naturel qui existe déjà naturellement. Le nombre indiqué est le CPM (compte par minute), qui est un total de particules radioactives mesurées chaque minute.

Le compte moyen de fond J305 était de 15,6 CPM.

Étape 8: J305 Mesure du rayonnement du capteur de fumée

J305 Mesure du rayonnement du capteur de fumée
J305 Mesure du rayonnement du capteur de fumée
J305 Mesure du rayonnement du capteur de fumée
J305 Mesure du rayonnement du capteur de fumée

Il n'est pas rare qu'un compteur Geiger vous donne le même nombre à plusieurs reprises, alors vérifiez-le avec une source de rayonnement. J'ai utilisé la mesure du rayonnement d'Americium et une chambre ionique d'un détecteur de fumée. Le capteur de fumée utilise l'américium comme source de particules alpha qui ionisent les particules de fumée dans l'air. J'ai retiré le capuchon métallique du capteur afin que les particules alpha et bêta puissent atteindre le tube Geiger avec les particules gamma.

Si tout va bien, les comptes devraient changer.

L'américium-241 provenant d'une chambre ionique de détecteurs de fumée, le nombre moyen était de 519 CPM.

Étape 9: SBM-20

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

Ce croquis Arduino est une version modifiée écrite par Alex Boguslavsky.

Ce croquis compte le nombre d'impulsions en 15 secondes et le convertit en coups par minute, ce qui le rend moins fastidieux.

Code que j'ai ajouté "Serial.println("Démarrer le compteur");".

Code que j'ai changé; "Impression.série(cpm);" à "Série.println(cpm);".

"#define LOG_PERIOD 15000"; définit le temps de comptage à 15 secondes, je l'ai changé en "#define LOG_PERIOD 5000" ou 5 secondes. Je n'ai trouvé aucune différence appréciable dans la moyenne entre compter pendant 1 minute, ou 15 secondes et 5 secondes.

#comprendre

#define LOG_PERIOD 15000 //Période d'enregistrement en millisecondes, valeur recommandée 15000-60000.

#define MAX_PERIOD 60000 //Période d'enregistrement maximum sans modifier ce sketch

comptes longs non signés; //variable pour les événements GM Tube

cpm long non signé; //variable pour le CPM

multiplicateur entier non signé; //variable pour le calcul CPM dans cette esquisse

non signé depuis longtemps Millis; //variable pour la mesure du temps

void tube_impulse(){ //sous-procédure de capture d'événements à partir du kit Geiger

compte++;

}

void setup(){ //configuration de la sous-procédure

compte = 0;

cpm = 0;

multiplicateur = MAX_PERIOD / LOG_PERIOD; //calcul du multiplicateur, dépend de la période de votre journal

Serial.begin(9600);

attachInterrupt(0, tube_impulse, FALLING); //définir les interruptions externes

Serial.println("Démarrer le compteur"); // code que j'ai ajouté

}

boucle vide(){ //cycle principal

non signé long currentMillis = millis();

if(currentMillis - previousMillis > LOG_PERIOD){

précédentMillis = currentMillis;

cpm = nombres * multiplicateur;

Serial.println(cpm); // code que j'ai modifié

compte = 0;

}

}

Le compte moyen de fond SBM-20 était de 23,4 CPM.

Étape 10: Câblage du compteur Geiger avec un écran LCD

Câblage du compteur Geiger avec un écran LCD
Câblage du compteur Geiger avec un écran LCD

Connexion LCD:

Broche LCD K vers GND

LCD A broche à 220 Ω résistance à Vcc

Broche LCD D7 à broche numérique 3

Broche LCD D6 à broche numérique 5

Broche LCD D5 à broche numérique 6

Broche LCD D4 à broche numérique 7

LCD Activer la broche à la broche numérique 8

Broche LCD R/W à la terre

Broche LCD RS à broche numérique 9

Pin LCD VO pour régler un potentiomètre de 10 kΩ

Broche LCD Vcc vers Vcc

Broche LCD Vdd vers GND

Pot de résistance réglable de 10 kΩ.

Vcc, Vo, Vdd

Compteur Geiger

VIN à la broche numérique 2

5V à +5V

GND à la terre

Étape 11: Compteur Geiger avec écran LCD

Compteur Geiger avec écran LCD
Compteur Geiger avec écran LCD
Compteur Geiger avec écran LCD
Compteur Geiger avec écran LCD
Compteur Geiger avec écran LCD
Compteur Geiger avec écran LCD

// inclure le code de la bibliothèque:

#comprendre

#comprendre

#define LOG_PERIOD 15000 //Période d'enregistrement en millisecondes, valeur recommandée 15000-60000.

#define MAX_PERIOD 60000 //Période d'enregistrement maximum sans modifier ce sketch

#define PERIOD 60000.0 // (60 sec) période de mesure d'une minute

CNT long non signé volatile; // variable pour compter les interruptions du dosimètre

comptes longs non signés; //variable pour les événements GM Tube

cpm long non signé; //variable pour le CPM

multiplicateur entier non signé; //variable pour le calcul CPM dans cette esquisse

non signé depuis longtemps Millis; //variable pour la mesure du temps

longue période de diffusion non signée; // variable pour mesurer le temps

CPM long non signé; // variable de mesure du CPM

// initialise la bibliothèque avec les numéros des broches de l'interface

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

void setup() { // setup

lcd.begin (16, 2);

CNT = 0;

CPM = 0;

dispPériode = 0;

lcd.setCursor(0, 0);

lcd.print("RH Electronics");

lcd.setCursor(0, 1);

lcd.print(" Compteur Geiger ");

retard (2000);

cleanDisplay();

attachInterrupt(0, GetEvent, FALLING); // Evénement sur la broche 2

}

boucle vide() {

lcd.setCursor(0, 0); // imprime le texte et le CNT sur l'écran LCD

lcd.print("CPM:");

lcd.setCursor(0, 1);

lcd.print("CNT:");

lcd.setCursor(5, 1);

lcd.print(CNT);

if (millis() >=dispPeriod + PERIOD) { // Si une minute est écoulée

cleanDisplay(); // Effacer l'écran LCD

// Faire quelque chose à propos des événements CNT accumulés….

lcd.setCursor(5, 0);

CPM = CNT;

lcd.print(CPM); //Afficher le CPM

CNT = 0;

dispPeriod = millis();

}

}

void GetEvent(){ // Obtenir l'événement du périphérique

CNT++;

}

void cleanDisplay (){ // Effacer la routine LCD

lcd.clear();

lcd.setCursor(0, 0);

lcd.setCursor(0, 0);

}

Étape 12: Fichiers

Téléchargez et installez ces fichiers sur votre Arduino.

Placez chaque fichier.ino dans un dossier du même nom.

Conseillé: