Comment faire un compteur Geiger

compteur geiger fait maison

Ile des Trois Milles, Tchernobyl, Fukushima, et même certains sur le territoire national comme le réacteur Coral-I à Madrid ou le réacteur Vandellós-I en Catalogne. Il y a beaucoup de accidents nucléaires qui ont eu lieu tout au long de l'histoire, et malgré les terribles conséquences, il semble que ce thème de radiación il continue de susciter un certain attrait. Mais ce que peu de gens savent, c'est que, quotidiennement, nous sommes tous exposés au rayonnement naturel, à la fois celui qui vient de l'espace extra-atmosphérique et celui qui provient des minéraux de la terre ...

Eh bien, si vous souhaitez mesurer le rayonnement autour de vous, dans ce nouveau guide nous vous montrons étape par étape la procédure de comment pouvez-vous construire un compteur geiger, c'est-à-dire un appareil capable de mesurer la radioactivité. Fondamentalement, c'est un appareil qui peut mesurer les particules qui impactent avec le capteur, comme les rayonnements ionisants, c'est pourquoi on l'appelle un compteur, car il peut compter le nombre d'impacts et donc le niveau de rayonnement d'un objet ou d'un lieu.

Que dois-je savoir avant?

symboles de rayonnement non ionisant et ionisant

Avant de commencer le projet DIY, j'aimerais faire un commentaire sur le rayonnement, pour ceux qui ne le savent pas. Ceux d'entre vous qui ont déjà des connaissances préalables, vous pouvez sauter cette section et aller directement voir ce qui suit ...

Qu'est-ce que le rayonnement?

C'est un phénomène de programmation énergétique sous forme d'ondes électromagnétiques ou de particules subatomiques à travers un milieu. Par conséquent, nous pouvons avoir différents types de rayonnement.

Quels types de rayonnement existe-t-il?

spectre électromagnétique

Il y a beaucoup de types de rayonnement, comme thermique, électromagnétique, etc., mais ceux qui nous intéressent ici sont deux grands groupes:

  • Non ionisant: c'est une onde ou une particule qui ne peut pas éliminer les électrons de la matière, c'est-à-dire qu'elle ne peut pas s'ioniser. Des exemples peuvent être les ondes électromagnétiques des micro-ondes, de la radio, de la lumière, etc.
  • Ionisant: c'est une onde ou une particule qui peut arracher des électrons à la matière, c'est-à-dire qu'elle peut s'ioniser en raison de sa haute énergie. C'est donc le plus dangereux de tous. Dans ce groupe, nous avons les lasers, les rayons X, alpha, bêta, gamma, les radiations de freinage ou bremsstrahlung), etc.

Si on regarde dans le spectre électromagnétique, les ondes de plus grande longueur d'onde, comme la radio ou les micro-ondes, sont les moins pénétrantes, celles qui ont le moins d'énergie (fréquence la plus basse). Alors que, en nous déplaçant vers la droite, nous voyons qu'à chaque fois que la longueur d'onde est plus courte et la fréquence de vibration plus grande, ils ont donc plus d'énergie et sont plus pénétrants et dommageables.

Types de rayonnements ionisants:

Alpha, bêta et gamma

Si nous nous concentrons sur rayonnement ionisant, capable de mesurer le compteur Geiger, il faut à nouveau filtrer et se concentrer sur trois fondamentaux dus aux phénomènes nucléaires:

  • Alfa: ils ont une charge positive et sont composés de deux protons et de deux neutrons, c'est-à-dire qu'ils sont un atome d'hélium. Ce sont les moins dangereux et les moins pénétrants, car ils peuvent être arrêtés à l'aide d'un simple papier. L'effet sur la santé dépend de certains problèmes, car ils ne peuvent même pas traverser la couche externe de la peau, mais s'ils pénètrent dans le corps, ils peuvent être nocifs. L'inhalation, l'ingestion ou l'injection dans le corps de sources qui produisent ce rayonnement pourrait endommager les tissus vivants.
  • bêta: ce sont des particules de charge électrique négative, des électrons. Ils sont plus pénétrants et énergiques que les précédents, et pour les arrêter, nous pourrions le faire avec une feuille d'aluminium de cuisine. Bien qu'ils soient plus pénétrants, ils ne sont pas aussi nocifs pour les tissus vivants et l'ADN que les précédents, car les ionisations qu'ils provoquent se produisent plus largement. Cela pourrait causer des brûlures cutanées, et si elles pénètrent dans le corps, cela pourrait être mais ...
  • Gamma: les rayons gamma sont ceux qui ont le pouvoir et l'énergie les plus pénétrants, donc les plus dangereux de tous. Ce sont des photons, de l'énergie pure qui ne peut pas être facilement arrêtée, uniquement avec des feuilles de plomb, du béton, etc. Ils traversent facilement notre corps et provoquent de graves lésions tissulaires, des mutations d'ADN, etc., avec ce que cela implique, comme le cancer et même la mort subite si la dose est élevée.

Par conséquent, ce n'est pas un jeu, et de hwlibre nous vous encourageons à prends toutes les précautions et sachez bien ce que vous faites. Nous ne prenons pas en charge d'éventuels problèmes ...

Tubes Geiger-Müller:

tube Geiger

Ils sont la pierre angulaire de chaque compteur Geiger, car c'est l'appareil o capteur qui est responsable de la réception du rayonnement et de la transformation de ce nombre de chocs en une impulsion électrique susceptible d'être interprétée par le reste du circuit. Il est connu sous le nom de tube Geiger-Müller ou simplement de tube Geiger, et vous pouvez l'acheter dans divers magasins en ligne, tels que Amazon, Aliexpress, etc. Une autre option est de le supprimer d'un compteur Geiger que nous avons vieux ou en désuétude.

Ils sont nombreux, différents modèles (SBT-9, LND-712, J408y,…) et différents fabricants (GSTube, LND, North Optic,…). Les plus populaires sont américains et russes, bien qu'il y ait aussi des chinois. Certains d'origine soviétique ont tendance à avoir des prix bon marché, le plus cher étant le LND. Ce qu'il faut être clair, ce sont les valeurs de tension entre lesquelles il se déplace, car le signal analogique qu'il émet sera plus ou moins intense en fonction du rayonnement capté.

Fonctionnement du tube Geiger avec impact de particules

Pays Vendeur Modèle Particules qu'il capture Tension Matières PRIX
Russie GSTube SBM-20 Bêta / Gamma 400V aluminium Faible
Russie GSTube SBM-21 Bêta / Gamma 650V aluminium Faible
Russie GSTube Oui-1g Gamma 440V aluminium Faible
Russie GSTube SBT-9 Bêta / Gamma 389V aluminium Faible
Russie GSTube Oui-3bg Bêta / Gamma 400V aluminium Faible
États-Unis LND LND-712 Alpha / Bêta / Gamma 500V Mica moyenne
États-Unis LND LND-7124 Alpha / Bêta / Gamma 500V Mica Alto
États-Unis LND LND-7224 Alpha / Bêta / Gamma 500V Mica Alto
Chine Optique Nord J408y Gamma 420V cristal Faible
Chine Optique Nord J305B Bêta / Gamma 350V cristal Faible
Chine Optique Nord J306B Bêta / Gamma 420V cristal Faible

Par conséquent nous devrons calibrer notre circuit pour convertir ces signaux dans les unités dans lesquelles le rayonnement est habituellement mesuré, comme Sievert (Sv), roentgen ou Rem, entre autres ... Comme nous le ferions avec un capteur de température, nous devons transformer ces tensions de sortie en degrés Celsius ou dans l'échelle que nous mesurons.

Unité SI pour mesurer le rayonnement:

Le Système international (SI) a pour unité la Sievert (Sv), rappelez-vous qu'il existe des tableaux qui indiquent le danger ou les effets du rayonnement que nous captons pour la santé:

mSv Effets sur la santé
50-100 Changements dans la chimie du sang
500 Nausée en quelques heures
700 vomitifs
750 Chute de cheveux en 2-3 semaines
900 Diarrhée
1000 Hémorragies
4000 Mort possible dans deux mois

Vous savez déjà que cela dépend non seulement de la dose, mais aussi de la exposition. Autrement dit, nous pouvons recevoir une dose de 100 mSv une fois et rien ne se passe, mais si nous recevons 50 mSv pendant des mois, les effets à long terme pourraient être très négatifs ...

Sources de rayonnement pour les tests:

Cristaux d'uranium et détecteur de fumée

À tests de rayonnement, sachez qu'il existe plusieurs options. Il y a des cristaux d'uranium comme ceux que vous voyez sur cette image (à gauche) avec lesquels les compteurs Geiger sont testés en laboratoire. Mais il existe d'autres sources plus proches desquelles nous pouvons obtenir des radiations ou des matières radioactives, comme les détecteurs de fumée dans les détecteurs d'incendie.

À l'intérieur de ces détecteurs, il y a une source de rayonnement ionisant d'américium et produisent un rayonnement alpha. Il faut même savoir que de nombreux aliments riches en potassium ont un isotope appelé Potassium-40 qui émet des radiations, bien que ce ne soit pas du tout un problème pour notre corps, ce sont de très faibles doses, tout comme les radiations que nous recevons de la nature elle-même (certains roches granitiques) ou le cosmos.

Nous sommes nous-mêmes radioactifs, nous sommes faits de carbone et le carbone 14 l'est. Mais va surprendre Sachant que nous manipulons de nombreux objets radioactifs tous les jours sans le savoir: des boutons, de la céramique, du marbre, certaines lampes de camping, des cigarettes, du papier couché, des mèches, etc. Tout ce que je pourrais utiliser pour tester votre compteur Geiger et voir s'il fonctionne ou non ...

Mais je le répète, vous devez être prudent lorsque vous manipulez certaines polices.

Matériaux nécessaires:

Une fois tout cela connu, on passe directement à lister tous les composants dont nous avons besoin pour construire notre compteur Geiger maison:

  1. Module convertisseur / régulateur DC-DC haute tension (par exemple: SODIAL). Cela nous aidera à ajuster les hautes tensions gérées par le Geiger-Müller et à transformer cette tension en une petite tension comparable aux cartes Arduino et autres composants. N'oubliez pas qu'il doit résister à la tension d'entrée du tube que vous avez choisi.
  2. Module de charge. Par exemple il est.
  3. Module buste Convertisseur CC-CC 3-5v.
  4. Arduino Nano, bien que tout autre soit également utile, mais afin de ne pas trop augmenter la taille, le Nano est préférable.
  5. Écran OLED 128 × 64 ou 128 × 32 que nous utiliserons comme écran pour afficher les résultats de mesure.
  6. 2n3904 transistor pour notre tube.
  7. Résistances 10M ohms et un autre 10K.
  8. Condenseur de 470pf.
  9. Changer par intermittence.
  10. Avertisseur sonore ou petit haut-parleur.
  11. Pile AAA.

Ceci en termes de composants, même si vous aurez également besoin outils comme les fers à souder, le câblage pour certaines articulations, l'IDE Arduino pour programmer la carte, la batterie ou les batteries, et aussi un boîtier personnalisé si vous souhaitez protéger votre compteur. Si vous avez une imprimante 3D, vous pouvez créer la boîte en plastique personnalisée.

Construction du compteur Geiger étape par étape:

Schéma du circuit du compteur Geiger

La prochaine chose, une fois que vous avez tous les composants, est d'assembler tous les composants du puzzle selon ce schéma que nous vous présentons. le montaje il est relativement simple et n'a pas besoin d'explications supplémentaires. Il s'agit simplement de connecter tous les éléments comme celui-ci. Vous pouvez le faire en un planche à pain avant de tester que tout fonctionne correctement, puis procédez à la soudure de tous les composants pour le rendre permanent.

Étapes:

Les pas à suivre sont les suivants:

  1. Avec un multimètre, vous pouvez étalonner la tension (image 1). Par exemple, si vous avez choisi un tube Geiger-Müller 410V, vous devez régler le potentiomètre du module DC-DC pour qu'il fonctionne à cette tension.
  2. Alors limitez-vous à souder ou joindre tous les composants tels qu'ils apparaissent dans le diagramme précédent comme dans l'image 2.
  3. Vous pouvez utiliser un boîte à protéger tous les composants ou non.
  4. Connectez la carte Arduino à votre PC à l'aide d'un câble USB et avec IDE Arduino écrivez le programme suivant (Vous pouvez le télécharger ici) pour le programmer et qu'il peut convertir les tensions avec lesquelles nous travaillons dans les mesures dans l'unité que vous avez choisie. Vous pouvez utiliser d'autres unités si vous préférez ou faire des ajustements en modifiant le code source de l'esquisse ...
/*
*
* SCL - A5
* SDA - A4
*
*
* Voltmeter - A3
*
* PWM - D9
* Input - D2
*
* buzzer - D7
*
*/

#include <Bounce2.h>

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2

//////////////////////////////////////////////////////////////////////////////

unsigned long previousMillis = 0;
unsigned long previousMillis1 = 0;
const long interval = 40000;
const long interval1 = 500;

static const unsigned char PROGMEM lcd_bmp[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x1C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x0E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x1F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x1F, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x1F, 0xC0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x3F, 0xE0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xE0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xF0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xC0, 0x3F, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF8,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x40, 0x38,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x80, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0x80, 0x18,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3F, 0xC0, 0x10,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7F, 0xC0, 0x30,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFF, 0xE0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xF0, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xFF, 0xF8, 0xC0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF9, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFC, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

static const unsigned char PROGMEM logo[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x1C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x0E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x80, 0x1F, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x1F, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x1F, 0xC0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x7F, 0xC0, 0x3F, 0xE0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0xE0, 0x00, 0x00, 0xFF, 0xC0, 0x3F, 0xF0,
0x07, 0x9E, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0xFF, 0xE0, 0x7F, 0xF8,
0x07, 0x9E, 0x3E, 0x73, 0x9C, 0x00, 0x78, 0x3E, 0x3E, 0xF0, 0xF0, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x07, 0x9E, 0x7F, 0x33, 0x98, 0x00, 0x78, 0x7F, 0x3E, 0xF1, 0xF8, 0x01, 0xFF, 0xFF, 0xFF, 0xF8,
0x07, 0x9E, 0x7F, 0x33, 0xB8, 0x00, 0x78, 0x7F, 0x3E, 0xF3, 0xFC, 0x01, 0xFF, 0xF0, 0x7F, 0xF8,
0x07, 0xFE, 0xE7, 0x33, 0xB8, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0xFF, 0xE0, 0x7F, 0xF8,
0x07, 0xFE, 0xE7, 0x3F, 0xF9, 0xF0, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0xFF, 0xC0, 0x3F, 0xF8,
0x07, 0xFE, 0xE7, 0x3F, 0xF9, 0xF0, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0xF8, 0x00, 0x03, 0xF8,
0x07, 0xFE, 0xE7, 0x3F, 0xF8, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0x00, 0x20, 0x40, 0x38,
0x07, 0x9E, 0xE7, 0x3F, 0xF0, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0x00, 0x10, 0x80, 0x08,
0x07, 0x9E, 0xE7, 0x1F, 0xF0, 0x00, 0x78, 0x73, 0xBE, 0xF3, 0x9C, 0x01, 0x00, 0x09, 0x00, 0x08,
0x07, 0x9E, 0xE7, 0x1E, 0xF0, 0x00, 0x78, 0x73, 0xBF, 0xF3, 0x9C, 0x01, 0x00, 0x0F, 0x00, 0x08,
0x07, 0x9E, 0xE7, 0x1E, 0xF0, 0x00, 0x78, 0x73, 0xBF, 0xF3, 0x9C, 0x00, 0x80, 0x1F, 0x80, 0x18,
0x07, 0x9E, 0x7F, 0x1E, 0xF0, 0x00, 0x78, 0x7F, 0x3F, 0xE3, 0xFC, 0x00, 0x80, 0x3F, 0xC0, 0x10,
0x07, 0x9E, 0x7E, 0x1E, 0xF0, 0x00, 0x78, 0x3F, 0x3F, 0xC1, 0xF8, 0x00, 0xC0, 0x7F, 0xC0, 0x30,
0x07, 0x9E, 0x1C, 0x1C, 0xE0, 0x00, 0x78, 0x1C, 0x3F, 0x00, 0xF0, 0x00, 0x40, 0xFF, 0xE0, 0x20,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF, 0xF0, 0x40,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xFF, 0xF8, 0xC0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF9, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFE, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFC, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

static const unsigned char PROGMEM fl[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

static const unsigned char PROGMEM bt1[] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

const int buttonPin = 2;
const int ledPin = 13;

int buttonState = 0;
int bt = 0;
int pbt = 0;
int s1 = 0;
unsigned long j;
unsigned long CR = 0;

unsigned long cs;
int sec;
/////////////////////////////////

float input_voltage = 0.0;
float temp=0.0;

///////////////////////////////////

Bounce bouncer = Bounce();

void setup() {

Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x32)

display.display();

display.clearDisplay();

display.drawBitmap(0, 0, logo, 128, 32, WHITE);
display.display();
delay(2000);
display.clearDisplay();

TCCR1A = TCCR1A & 0xe0 | 2;
TCCR1B = TCCR1B & 0xe0 | 0x09;
analogWrite(9,22 ); // на выводе 9 ШИМ=10%

pinMode(ledPin, OUTPUT); //

pinMode (7, OUTPUT); // buzzer

pinMode(2 ,INPUT); // кнопка на пине 2
digitalWrite(2 ,HIGH); // подключаем встроенный подтягивающий резистор
bouncer .attach(2); // устанавливаем кнопку
bouncer .interval(5); // устанавливаем параметр stable interval = 5 мс

}

void loop() {

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned long currentMillis = millis();
unsigned long currentMillis1 = millis();

if (bouncer.update())
{ //если произошло событие
if (bouncer.read()==0)
{ bt++;
}
}

if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
CR = bt;
bt = 0;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (bt != pbt) {
pbt = bt;
s1 = 1;
}
////////////////////////////////////////////VOLTMETER PIN A3////////////////////////////////////////////////////////////////////

int analog_value = analogRead(A3);
input_voltage = (analog_value * 5.0) / 1024.0;

if (input_voltage < 0.1)
{
input_voltage=0.0;
}

///////////////////////////////////////////////TEXT ON DISPLAY//////////////////////////////////////////////////////////////////
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(10,0);
display.clearDisplay();
display.println(CR);
display.setCursor(10,18);
display.println(bt);
display.setCursor(40,18);
display.println();
display.setTextSize(1);
display.setCursor(40,0);
display.println("mR/hr");

/////////////////////////////////////////////////BATTERY INDICATION////////////////////////////////////////////
display.drawBitmap(0, 0, fl, 128, 32, WHITE);

if (input_voltage > 3.3) {
display.drawBitmap(0, 0, bt1, 128, 32, WHITE);
if (input_voltage > 3.4) {
display.drawBitmap(0, -5, bt1, 128, 32, WHITE);
if (input_voltage > 3.5) {
display.drawBitmap(0, -10, bt1, 128, 32, WHITE);
if (input_voltage > 3.6) {
display.drawBitmap(0, -15, bt1, 128, 32, WHITE);
if (input_voltage > 3.8) {
display.drawBitmap(0, -20, bt1, 128, 32, WHITE);
}
}
}
}
}

////////////////////////////////////////////////////RADIATION ICON AND BUZZER/////////////////////////////////////////////////////////////
if (s1 == 1){
display.drawBitmap(-10, 0, lcd_bmp, 128, 32, WHITE);
digitalWrite (7, HIGH); // buzzer ON
}
else
{
digitalWrite (7, LOW); // buzzer OFF
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (currentMillis1 - previousMillis1 >= interval1) {
previousMillis1 = currentMillis1;
if (s1 == 1){
s1=0;
}
}
display.display();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Comment pouvez-vous vérifier très simple (Bien que cela semble long à cause de ces paramètres d'affichage), il vous suffit de faire cette conversion de la tension que la carte Arduino reçoit en une série de données pouvant être capturées à l'écran ou à l'affichage.

Si tout s'est bien passé, vous devriez voir les informations sur l'écran et le bruit sur le buzzer lorsque vous confrontez votre compteur Geiger à une source radioactive.

Fuentes:

Instructables - Compteur DIY Arduino Geiger

Cuisine-Hacks - Compteur Geiger: Carte de capteur de rayonnement pour Arduino et Raspberry Pi


2 commentaires, laissez le vôtre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Paola dit

    Bonjour, j'aimerais le faire avec arduino uno et je me demandais quel serait le schéma pour le monter et si quelque chose d'autre changerait

    1.    Isaac dit

      Salut Paola,
      La connexion est la même dans ONE. Et vous pouvez même modifier certaines connexions sur d'autres broches si vous préférez, la seule chose que vous devez également modifier le code du croquis pour qu'il corresponde à ceux que vous mettez. Mais c'est pareil. Respectez les connexions GND et Vcc, et le reste, comme je l'ai dit, vous pouvez le mettre dans un numéro différent ou dans le même numéro sur votre carte ... (oui, respectez les E / S numériques et analogiques telles qu'elles sont sur le Nano board)
      Salutations!