Universelle Bestimmung der Zählimpulsrate von Sensoren für Radioaktivität mit dem Arduino Bernd Laquai , Update

Ähnliche Dokumente
Tino Das Arduino-Shield für Radioaktivitätsmessung mit einem Sparkfun seriellen 7-Segment Display als Anzeige Bernd Laquai, 22.5.

Das Zählrohr-Modul von 4N-Galaxy (SBM-Driver) Bernd Laquai

P(k, λ) = λ k /k!*exp(-λ) angegeben werden kann.

Ein Arduino-basierter Radioaktivitäts-Messknoten für das LoRaWAN IOT- Netzwerk The Things Network mit dem PiGI-Geigerzähler-Modul

Tino Ein Messgerät für radioaktive Strahlung als Arduino-Shield auf Basis eines Teviso Sensormoduls Bernd Laquai,

Arduino Mikrocontroller Interface für Geigerzähler Bernd Laquai,

v= s/ t r=counts / t σ(r) = r / (counts)

Das Radiation Measurement Shield Tino für den Arduino und Arduino-kompatible Mikro-Controller

Velleman VM200 Radioaktivitätsmonitor versus Stuttgarter Geigerle Bernd Laquai,

Arduino - Einfacher Teiler

Der Geiguino - Ein Geigerzähler auf Zählrohrbasis kombiniert mit Arduino UNO zur Auswertung und Anzeige

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

Ein Umwelt-Radioaktivitäts-Messknoten für das LoRaWAN IOT-Netzwerk The Things Network

Der Maker-Geiger: Geigerzähler und LoRaWAN Radioaktivitäts-Messstation auf Basis der Arduino Maker-Familie

PMT-zu-Arduino Adapter zum Betrieb eines Szintillations-Detektors mit Photomultiplier an einem Arduino Mikrocontroller

analoge Ein- und Ausgänge

Kontrollmessungen am radioaktiven Trümmerteil auf dem Monte Scherbelino Bernd Laquai,

Arbeitsblatt Nr.19: RFID Kit

Erste Gehversuche mit ARDUINO (DL6OAA)

Kalibrierung des Stuttgarter Geigerle PIN-Dioden Zählers Bernd Laquai

Abbildung 4-4-1: Ein prellender Taster

Die Pocket Geiger App auf dem Handy als Auswerte- und Anzeigeeinheit Bernd Laquai

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Ideal für: Raspberry Pi, Gooseberry Board, Hackberry, Wandboard, Mele A 1000, ODROID und andere µc Boards. Auch für PC geeignet.

LED Skalenbeleuchtung mit einem Arduino

Joy-IT Ultraschall Abstandssensor

Einführung Arduino - Aufbau

Für den CTC-Mode kann demnach TCCR1A komplett auf 0 gesetzt werden, weil WGM11 und WGM10 in diesem Register liegen und beide laut Tabelle 0 sind:

Geiger-Müller Zähler mit eingebautem Zählrohr

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:

TCS3200 Farbsensor. Schritt 1 Anschließen des Sensors. Bild 1: TCS3200 Farbsensor

Ein Arduino-basierter Szintillationszähler mit LCD-Display, Real-Time-Clock und Datalogging Bernd Laquai, Update

Arduino für FunkAmateure

Vorbereitung. Teil D Analog-Digital-Wandler 1

Wir hätten nie gedacht das drei Computer und Elektronik-Fans soweit kommen!! Mit diesem Video sagen wir vielen Dank!

Intelligentes Dosis- und Dosisleistungs-Meßsystem

Einführung in Mikrokontroller Benutzung mit dem Arduino Board. Ramon Hofer ICVR

Geiger-Müller Zähler, Handgerät [ BAD_ doc ]

Gewerblich Wareneingangskontrolle Sicherung und Nachweis des Kundenschutzes. Schule und Bildung Laboreinsatz Experimenteller Nachweis von Strahlung

myavr Programmierung in C

Eine tastergesteuerte LED

D.1 Vorbereitung. Teil D Analog-Digital-Wandler 1

Haftkünstler auf dem Prüfstand. Online Ergänzung HOLGER FLORIAN BOHN OLGA SPECK THOMAS SPECK

SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE:

Microcontroller im Amateurfunk

DE

Abb. 1: Der Low Cost Multikopter RC Eye One Xtreme von RCLogger mit aufgesetztem Arduino, SD-Karten Shield und Teviso-Shield

Arduino, IR Fernbedienung dekodieren

Felder und Schleifen. Themen heute. Felder Schleifen Heartbleed. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Was so passieren wird:

Arduino Kurs Timer und Interrupts. Stephan Laage-Witt FES Lörrach

Geigerzähler-Shield für den Arduino von Libelium Bernd Laquai

Arduino Kurs Bits und Bytes. Stephan Laage-Witt FES Lörrach

EINE MHZ FUNKSTRECKE MIT ARDUINOS AUFBAUEN [GEBEN SIE IHRE ADRESSE EIN]

Die Sonne spielt Musik

Girls Day 2018 Programmiereinführung

Universelles Zählermodul UCM-5

foexlab-materialien Arduino-Schaltungen First Steps Gottfried Wilhelm Leibniz Universität Hannover

Arduino Interrupt-Handling (Teil 1) Seite 2

ARDUINO Übung. Inhalt:

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

Selbstschließende Hand (SsH)

4. Ditzinger Makerspace. Arduino Teil 1. Ein Projekt von Repair-Café und Stadtbücherei Ditzingen Stadtbücherei Ditzingen UG

SMP Übung 8 - Lösungsvorschlag

TaT-Maker Steuerung. Selbstbauanleitung. von. Kurt Sepke

Eine tastengesteuerte Ampelanlage

Rotary Encoder (RE)

Zusammenhang. Aktivität Zählrate - Dosisleistung. Strahlungsquelle Aktivität Becquerel. Strahlenbelastung Äquivalentdosisleistung

Weiterführende Entwicklungen

Arduino Digispark. Ausgabe Copyright by Joy-IT 1

Messungen mit dem Lichtsensor

Zeiger vom Typ (void *) sind am besten für Zeigerarithmetik geeignet, da sie kompatibel zu jedem Zeigertyp sind.

Mikrocontrollerplatine vorbereiten

Anwendung und Programmierung von Mikrocontrollern. Anwendung und Programmierung von Mikrocontrollern

Laborversuch Digitaler Regler

Programmieren des ESP8266 mit OLED

1. Apple - Design, Kult und faszinierende Technik.

ESP32 Pico-Board. und Node-RED GUI ESP32 Addon. ESP32 und Node-RED Datenversand. Vers. 1.0

Wunderst du dich auch manchmal, wo die ganzen Kekse hin sind? Mit diesem Projekt kommst du dem Dieb schnell auf die Schliche.

Messen von Gasmengen mit einfachen Mitteln. Version: 1.1 Datum: Autor: Dave Hoffmann

Die Darstellung von Radioaktivitäts-Messdaten im Internet Bernd Laquai

Vergleich SBM-20 vs. SI-39G

Arduino für FunkAmateure

HelvePic32 Breadboard. Internet Data Logger

saarland Prof. Dr. Andreas Zeller Verantw. Tutor: Florian Groß Übungsblatt 6

Erste Gehversuche mit ARDUINO (Teil 3) (DL6OAA) Die 7-Segmentanzeige (1-stellig)

JX6-SB / JX6-SB-I Versions Update von V2.14 auf V2.15

Internet of Things - Projektvortrag

Erneuerung der Peilersteuerung

Projektworkshop Digitales Haustier. Digitales Haustier. Bau dir ein Digitales Haustier, das schnurrt, wenn du es streichelst. 1/8

Eine Roboter-Kanone. Projekt 20

Einführung in die Arduino-Programmierung II

IR NEC Empfänger mit 4x7 LED Anzeige (ATtiny2313)

BAUANLEITUNG ROBO-REGENTRUDE

Einführung DIP & AVR EVK1100

Android + Arduino Hardware steuern mit Android. Entwicklertag Karlsruhe, Sebastian Wastl

Praktikum Physik Radioaktivität 13GE RADIOAKTIVITÄT VERSUCHSAUSWERTUNG

f) Was versteht man beim Zugriff auf I/O-Register unter dem Begriff "Memory-mapped"?

KY-001 Temperatur Sensor Modul

Transkript:

Universelle Bestimmung der Zählimpulsrate von Sensoren für Radioaktivität mit dem Arduino Bernd Laquai 8.9.2014, Update 28.10.18 Ob ein Pin-Dioden Sensormodul oder ein Geigermüller-Zählrohr als Sensor für Radioaktivität genutzt wird, am Ende ist in der Regel immer das Ziel sehr kurze digitale Zählpulse zu erzeugen, wenn man eine Zählrate als Maß für die Radioaktivität quantitativ erfassen möchte. Oft kann man sich bereits fertiger Mess-Module für radioaktive Strahlung bedienen, die lediglich eine einfache Spannungsversorgung benötigen und einen Ausgang besitzen, an dem bereits digitale Zählimpulse abgeliefert werden, die man digital weiterverarbeiten kann. Man muss sich dann nicht mehr um eine entsprechende Hochspannungserzeugung oder Impulsverstärkung kümmern. Beispiele für Zählrohr-basierten Sensoren sind der Pollin- Geigerzähler bzw. das SBM-20 Driver Modul von 4N-Galaxy und für PIN-Dioden basierte Sensoren das Stuttgarter Geigerle oder das Teviso-Modul. Prinzipiell kann man also den Strahlungs-Sensor als Black-Box betrachten, die pro registriertem Strahlungsquantum einen sehr kurzen Zählimpuls liefert, der eine Dauer im Mikrosekundenbereich hat, annähernd rechteckförmig ist, zwischen 0 und 5V bzw. 0 und 3.3V wechselt und entweder low-aktiv oder high-aktiv ist. Um aus diesen Zählimpulsen das berühmte Knacken eines Geigerzählers zu erzeugen, muss man die Pulse in den Millisekundenbereich verlängern und in einen Strom umwandeln der einen Lautsprecher oder einen Signalgeber treiben kann. Wenn man sich aber nicht nur am Knacken erfreuen will, sondern auch eine quantitative Aussage über die Radioaktivität treffen will, muss man eine mittlere Zählrate bestimmen, mit der die Zählimpulse auftreten. Abb. 1: High aktiver Puls mit 5V Amplitude des Teviso PIN-Dioden Sensor Moduls

Abb. 2: Low aktiver Puls mit 3V Amplitude des Zählrohr-Moduls von 4N-Galaxy Dazu bietet sich ein Mikrocontroller an, und dabei vor allem der Arduino wegen seiner einfachen Bedienbarkeit. Bereits das einfachste Arduino-Modell, der Uno ist dafür bestens geeignet. In der einfachsten Form kann er die Zählrate über den Serial Monitor auf den Bildschirm eines angeschlossenen PC ausgeben, gleichzeitig die Impulsverlängerung vornehmen und ein Ausgangssignal liefern, das einen digitalen Signalgeber ansteuern kann, so, dass man gleich das Knacken als Funktionskontrolle bekommt. Für die Zählraten-Bestimmung hat man prinzipiell zwei Möglichkeiten. Entwender man gibt eine Zeit vor und zählt wie viele Impulse man in dieser Zeit bekommt oder aber man gibt die Zahl der Impulse vor, die man abwarten will und misst die Zeit, die man benötigt, bis man die vorgegebene Impulsanzahl erreicht. In beiden Fällen ergibt sich die Impulsrate in dem man die Impulszahl durch die Zeit dividiert. In vielen Fällen wird die erste Variante gewählt, weil sie naheliegender scheint. Die zweite Variante hat aber einen großen Vorteil gegenüber der ersten: Die Statistik (die Streuung) des Ergebnisses bleibt unabhängig von der Aktivität. Das liegt daran, dass durch die Zufälligkeit der Zählimpulse immer eine Unsicherheit in der berechneten Zählrate bleibt, die sich darin äußert, dass sie bei gleichbleibender Aktivität streut, da man sich auf eine endliche Anzahl an Zählpulsen zur Berechnung beschränken muss. Diese Streuung hängt von der Zahl an Zählimpulsen ab und nicht von der Zeit. Wenn man daher immer die gleiche Zahl an Zählimpulsen abwartet, dann bleibt auch die Streuung des Ergebnisses gleich. Dabei passt sich die Messzeit automatisch an die Verhältnisse an. Wenn man eine hohe Aktivität hat, erhält man aktualisierte Zählraten in rascher Folge, nur, wenn die Zählrate niedrig ist, dauert die Messung länger. Damit wartet man bei einer Änderung der Zählrate immer die kürzestmögliche Zeit (bei gegebener Statistik) für den nächsten Messwert. Daher wird in diesem Beispiel die zweite Methode gezeigt.

Start Schnittstellen Initialisierung Interrupt aktivieren Interrupt Service Routine MAXCNT erreicht? Interrupt deaktivieren J N Zähler inkrementieren Zählsignal ausgeben Return Zeitdifferenzmessung Dosisrate = MAXCNT / Zeitdifferenz[min] / CalFaktor Ausgabe Zähler zurücksetzen Interrupt aktivieren Abb.3: Flussdiagramm des universellen Arduino Zählprogramms Bei einem Mikrocontroller wie dem Arduino, bietet es sich zur Erfassung der völlig unvorhersehbar eintreffenden Zählimpulse an, die Interrupt-Logik zu benutzen um die Zählimpulse zu erfassen. Damit kann sichergestellt werden, dass in einem Zählintervall keine Zählimpulse verloren gehen, was mit einer Abfrage eines digitalen Eingangs in einer Schleife nicht unbedingt der Fall wäre. Die Interrupt-Logik sorgt dafür, dass die normale Programmausführung unterbrochen wird und eine spezielle Interrupt Service Routine (ISR) abgearbeitet wird, die in dieser Anwendung einen Zähler hochzählt. Durch diese

Ereignissteuerung und Priorisierung wird also jeder Impuls erfasst, auch wenn er nur ein paar Mikrosekunden lange anliegt. Die Interrupt Service Routine sollte allerdings so kurz wie möglich gehalten werden, da sonst das Betriebssystem eventuell Probleme bekommt, wenn es in dieser Zeit gewisse wichtige Dinge nicht tun kann. Daher sollte man Berechnungen und Bildschirmausgaben in der normalen Programmschleife machen und nur das Zählen der Impulse in der Interrupt Service Routine durchführen. Das unten aufgeführte Programm (Sketch) erledigt nun den besagten Job der Zählraten- Bestimmung auf dem Arduino. Zunächst wird die Zahl der Impulse MAXCNT vereinbart, auf die gewartet werden soll. Diese Zahl bestimmt die Statistik. Bei einem PIN-Dioden Zähler ist 10 ein sinnvoller Wert für MAXCNT. Da ein Zählrohr aber unter Umständen deutlich mehr Zählpulse liefert, kann man MAXCNT für ein Zählrohr durchaus auch auf den Wert 100 oder höher setzen. #define MAXCNT 10 #define CalFactor 1 volatile int counter = 0; unsigned long oldtime = 0; int speaker = 5; void setup() { pinmode(speaker, OUTPUT); digitalwrite(speaker, LOW); Serial.begin(9600); attachinterrupt(0, count, FALLING); void loop() { unsigned long time; unsigned long dt; float rate; if (counter == MAXCNT) { detachinterrupt(0); time = millis(); dt = time-oldtime; rate = (float)maxcnt*60.0*1000.0/(float)dt/calfactor; Serial.println(rate); oldtime = time; counter = 0; attachinterrupt(0, count, FALLING); void count() { counter++; digitalwrite(speaker, HIGH); delaymicroseconds(50000); digitalwrite(speaker, LOW); Der Wert, der für CalFactor definiert wird, dient einer eventuellen Umrechnung der Zählrate in eine Dosisleistung in µsv/h und hat die Einheit cpm / (µsv/h). Das Zählprogramm bestimmt die Zählrate in Counts Per Minute (cpm). Wenn der Hersteller eines Sensors einen

Kalibrierfaktor in cpm / (µsv/h) angibt, so wie beispielsweise der Hersteller Teviso, dann kann dieser Wert hier eingetragen werden (z.b. 3.4 für das Teviso Modul RD2007), damit stellt dann der berechnete Wert die Dosisleistung in µsv/h dar. Man kann natürlich auch selbst versuchen einen solchen Kalibrierfaktor zu finden, indem man die Zählrate für einen bekannten Prüfstrahler vermisst. Eine genaue Kalibrierung im Sinne von internationalen Standards ist aber denkbar schwierig, müsste die Strahlungsgeometrie und vieles mehr noch berücksichtigen und kann kaum mit den üblichen Hobbymitteln erreicht werden. Links /1/ Teviso PIN-Dioden Sensor Module für Radioaktivität https://www.teviso.com/en/products.htm /2/ 4N-Galaxy: Geigerzähler, SBM-20 Driver Interface (Prod. Nr. #R02) http://www.4n-gx.de/r02_de.html /3/ Stuttgarter Geigerle als Sensor für Radioaktivität http://www.opengeiger.de/stuttgartergeigerlev1.pdf