Inhaltsverzeichnis:
- Schritt 1: Werkzeuge und Teile
- Schritt 2: Bauen Sie Ihren Geigerzähler zusammen
- Schritt 3: Elektrischer Test des Geigerzählers
- Schritt 4: Verkabelung
- Schritt 5: Code
- Schritt 6: Serial.println Vs Serial.print
- Schritt 7: J305 Hintergrundstrahlungsmessung
- Schritt 8: J305 Messung der Rauchsensorstrahlung
- Schritt 9: SBM-20
- Schritt 10: Verdrahten des Geigerzählers mit einem LCD
- Schritt 11: Geigerzähler mit LCD
- Schritt 12: Dateien
Video: Arduino DIY Geigerzähler - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Sie haben also einen DIY-Geigerzähler bestellt und möchten ihn mit Ihrem Arduino verbinden. Sie gehen online und versuchen zu duplizieren, wie andere ihren Geigerzähler mit Arduino verbunden haben, nur um festzustellen, dass etwas nicht stimmt. Obwohl Ihr Geigerzähler zu funktionieren scheint, funktioniert nichts wie in dem DIY beschrieben, dem Sie folgen, wenn Sie Ihren Geigerzähler mit Ihrem Arduino verbinden.
In diesem Instructable werde ich behandeln, wie man einige dieser Störungen beheben kann.
Erinnern; Arduino Schritt für Schritt zusammenbauen und codieren. Wenn Sie direkt zu einem fertigen Projekt gehen und ein Kabel oder eine Codezeile fehlt, kann es ewig dauern, das Problem zu finden.
Schritt 1: Werkzeuge und Teile
Prototypenbox Ich habe eine Ferrero Rocher Bonbonbox verwendet.
Kleines Steckbrett
16x2 LCD
Arduino Board Ether ein UNO oder Nano
220 Ω Widerstand
Pot 10 kΩ einstellbarer Widerstand.
DIY-Geigerzähler-Kit
Überbrückungsdrähte
Batteriestecker oder Kabelbaum
Oszilloskop
Spitzzange
Kleiner Standard-Schraubendreher
Schritt 2: Bauen Sie Ihren Geigerzähler zusammen
Schäden an Ihrem Geiger Tube; und Ihr Geigerzähler funktioniert nicht, verwenden Sie also die schützende Acrylabdeckung, um Schäden an Ihrer Geigerröhre zu vermeiden.
Dieses Instructable ist, wie ich den gleichen Geigerzähler mit einem gebrochenen Geigerrohr repariert und die schützende Acrylabdeckung angebracht habe, um in Zukunft einen Bruch zu verhindern.
www.instructables.com/id/Repairing-a-DIY-G…
Schritt 3: Elektrischer Test des Geigerzählers
Verwenden Sie zuerst die richtige Spannung für die Stromversorgung; Das USB-Kabel liefert 5 Volt Gleichstrom direkt von Ihrem Computer, jedoch ist der 3 AA-Batteriehalter für 1,5-Volt-Alkalibatterien mit einer Gesamtspannung von 4,5 Volt geeignet. Wenn Sie wiederaufladbare 1,2 Volt NI-Cd- oder NI-MH-Akkus verwenden, benötigen Sie einen 4 AA-Batteriehalter für eine Gesamtspannung von 4,8 Volt. Wenn Sie weniger als 4,5 Volt verwenden, funktioniert der Geigerzähler möglicherweise nicht wie er sollte.
Es gibt sehr wenig Schaltkreise am Ausgang des Geigerzählers; Solange der Lautsprecher ein tickendes Geräusch macht und die LED blinkt, sollten Sie ein Signal am VIN-Pin erhalten.
Um sich des Ausgangssignals zu vergewissern; Schließen Sie ein Oszilloskop an den Ausgang an, indem Sie die positive Seite des Oszilloskop-Tastkopfs an die VIN und die negative Seite des Oszilloskop-Tastkopfs an Masse anschließen.
Anstatt nur auf die Hintergrundstrahlung zu warten, um den Geigerzähler auszulösen, habe ich Americium-241 aus einer Ionenkammer eines Rauchmelders verwendet, um die Reaktionen des Geigerzählers zu erhöhen. Der Ausgang des Geigerzählers begann bei +3 Volt und fiel jedes Mal auf 0 Volt, wenn die Geigerröhre auf die Alphateilchen reagierte, und kehrte einen Moment später auf +3 Volt zurück. Dies ist das Signal, das Sie mit Arduino aufnehmen.
Schritt 4: Verkabelung
Es gibt zwei Möglichkeiten, den Geigerzähler mit Ihrem Arduino und Ihrem Computer zu verbinden.
Verbinden Sie den GND von Arduino mit dem GND des Geigerzählers.
Verbinden Sie die 5V auf Arduino mit den 5V auf dem Geigerzähler.
Verbinden Sie die VIN des Geigerzählers mit dem D2 auf Arduino.
Mit unabhängiger Stromversorgung an den Geigerzähler angeschlossen.
Verbinden Sie den GND von Arduino mit dem GND des Geigerzählers.
Verbinden Sie die VIN des Geigerzählers mit dem D2 auf Arduino.
Verbinden Sie Arduino mit Ihrem Computer.
Schritt 5: Code
Öffnen Sie die Arduino IDE und laden Sie den Code.
// Diese Skizze zählt die Anzahl der Impulse pro Minute.
// Verbinden Sie die GND von Arduino mit der GND des Geigerzählers.
// Verbinden Sie die 5V auf Arduino mit den 5V auf dem Geigerzähler.
// Verbinden Sie die VIN des Geigerzählers mit dem D2 auf Arduino.
lange Zählungen ohne Vorzeichen; //variabel für GM Tube-Events
unsigned lange vorherigeMillis; // variabel für Messzeit
Void Impuls () {// dipanggil setiap ada sinyal FALLING di Pin 2
zählt++;
}
#define LOG_PERIOD 60000 // Zählrate
Void setup () {//Setup
zählt = 0;
Serial.begin (9600);
pinMode (2, EINGANG);
attachInterrupt (digitalPinToInterrupt(2), Impuls, FALLING); // externe Interrupts definieren
Serial.println ("Startzähler");
}
Void Schleife () {//Hauptzyklus
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > LOG_PERIOD) {
vorherigeMillis = aktuelleMillis;
Serial.println (zählt);
zählt = 0;
}
}
Wählen Sie in Tools das Arduino oder ein anderes Board aus, das Sie verwenden.
Wählen Sie in Tools den Port und Com
Laden Sie den Code hoch.
Sobald der Code in Tools hochgeladen wurde, wählen Sie Serial Monitor und beobachten Sie, wie Ihr Geigerzähler arbeitet.
Suchen Sie nach Störungen. Das einzige an diesem Code ist, dass es etwas mühsam ist, dass Sie für jede Zählung 1 Minute warten müssen.
Schritt 6: Serial.println Vs Serial.print
Dies ist einer der ersten Fehler, die ich im Code gefunden habe; Achten Sie also in Ihrem Code darauf, „Serial.println(cpm);“und „Seriendruck (cpm);“.
Serial.println (cpm); wird jede Zählung in einer eigenen Zeile ausgeben.
Serial.print (cpm); sieht aus wie eine große Zahl, die jede Zählung in derselben Zeile druckt, so dass es unmöglich ist, zu sagen, was die Zählung ist.
Schritt 7: J305 Hintergrundstrahlungsmessung
Erstens die Messung der Hintergrundstrahlung, der natürlichen Strahlung, die bereits in der Natur vorhanden ist. Die aufgeführte Zahl ist der CPM (Count per Minute), der die Summe der gemessenen radioaktiven Partikel pro Minute darstellt.
Der durchschnittliche J305-Hintergrundzähler betrug 15,6 CPM.
Schritt 8: J305 Messung der Rauchsensorstrahlung
Es ist nicht ungewöhnlich, dass ein Geigerzähler wiederholt den gleichen Wert anzeigt, also überprüfen Sie ihn mit einer Strahlungsquelle. Ich habe die Strahlungsmessung von Americium und eine Ionenkammer von einem Rauchmelder verwendet. Der Rauchsensor verwendet Americium als Quelle für Alphapartikel, die Rauchpartikel in der Luft ionisieren. Ich habe die Metallkappe vom Sensor entfernt, damit die Alpha- und Beta-Partikel zusammen mit den Gamma-Partikeln in die Geigerröhre gelangen können.
Wenn alles in Ordnung ist, sollten sich die Zählungen ändern.
Americium-241 aus einer Ionenkammer eines Rauchmelders betrug im Durchschnitt 519 CPM.
Schritt 9: SBM-20
Diese Arduino-Skizze ist eine modifizierte Version, die von Alex Boguslavsky geschrieben wurde.
Diese Skizze zählt die Anzahl der Impulse in 15 Sekunden und wandelt sie in Zählungen pro Minute um, was es weniger mühsam macht.
Code, den ich hinzugefügt habe "Serial.println ("Startzähler");".
Code habe ich geändert; "Seriendruck (cpm);" zu „Serial.println(cpm);“.
„#define LOG_PERIOD 15000“; setzt die Zählzeit auf 15 Sekunden, ich habe sie auf „#define LOG_PERIOD 5000“oder 5 Sekunden geändert. Ich fand keinen nennenswerten Unterschied im Durchschnitt zwischen dem Zählen von 1 Minute oder 15 Sekunden und 5 Sekunden.
#enthalten
#define LOG_PERIOD 15000 //Logging-Zeitraum in Millisekunden, empfohlener Wert 15000-60000.
#define MAX_PERIOD 60000 //Maximale Protokollierungsdauer ohne diese Skizze zu ändern
lange Zählungen ohne Vorzeichen; //variabel für GM Tube-Events
lange cpm ohne Vorzeichen; //variabel für CPM
unsigned int Multiplikator; //Variable zur Berechnung des CPM in dieser Skizze
unsigned lange vorherigeMillis; // variabel für Zeitmessung
void tube_impulse(){//Unterprozedur zum Erfassen von Ereignissen aus dem Geiger-Kit
zählt++;
}
Void setup () {//Setup-Unterprozedur
zählt = 0;
cpm = 0;
Multiplikator = MAX_PERIOD / LOG_PERIOD; // Berechnungsmultiplikator, abhängig von Ihrem Log-Zeitraum
Serial.begin (9600);
attachInterrupt(0, tube_impulse, FALLING); // externe Interrupts definieren
Serial.println ("Startzähler"); // Code, den ich hinzugefügt habe
}
Void Schleife () {//Hauptzyklus
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > LOG_PERIOD){
vorherigeMillis = aktuelleMillis;
cpm = zählt * Multiplikator;
Serial.println (cpm); // Code habe ich geändert
zählt = 0;
}
}
Die durchschnittliche Hintergrundzählung von SBM-20 betrug 23,4 CPM.
Schritt 10: Verdrahten des Geigerzählers mit einem LCD
LCD-Anschluss:
LCD-K-Pin an GND
LCD A-Pin an 220 Ω Widerstand an Vcc
LCD D7-Pin zu digitalem Pin 3
LCD D6-Pin auf Digital-Pin 5
LCD D5-Pin auf Digital-Pin 6
LCD D4-Pin zu digitalem Pin 7
LCD-Enable-Pin zu digitalem Pin 8
LCD-R/W-Pin auf Masse
LCD-RS-Pin zu digitalem Pin 9
LCD VO-Pin zum Einstellen von 10 kΩ Pot
LCD-Vcc-Pin zu Vcc
LCD Vdd-Pin an GND
Pot 10 kΩ einstellbarer Widerstand.
Vcc, Vo, Vdd
Geigerzähler
VIN zu digitalem Pin 2
5 V bis +5 V
GND an Masse
Schritt 11: Geigerzähler mit LCD
// den Bibliothekscode einfügen:
#enthalten
#enthalten
#define LOG_PERIOD 15000 //Logging-Zeitraum in Millisekunden, empfohlener Wert 15000-60000.
#define MAX_PERIOD 60000 //Maximale Protokollierungsdauer ohne diese Skizze zu ändern
#define PERIOD 60000.0 // (60 Sek.) eine Minute Messzeit
flüchtige unsignierte lange CNT; // Variable zum Zählen von Interrupts vom Dosimeter
lange Zählungen ohne Vorzeichen; //variabel für GM Tube-Events
lange cpm ohne Vorzeichen; //variabel für CPM
unsigned int Multiplikator; //Variable zur Berechnung des CPM in dieser Skizze
unsigned lange vorherigeMillis; // variabel für Zeitmessung
unsigned long dispPeriod; // variabel für die Zeitmessung
unsignierter langer CPM; // Variable zur Messung von CPM
// die Bibliothek mit den Nummern der Schnittstellenpins initialisieren
Flüssigkristallanzeige (9, 8, 7, 6, 5, 3);
Void setup () {// setup
lcd.begin(16, 2);
CNT = 0;
CPM = 0;
dispPeriod = 0;
lcd.setCursor(0, 0);
lcd.print("RH-Elektronik");
lcd.setCursor(0, 1);
lcd.print("Geigerzähler");
Verzögerung (2000);
cleanDisplay();
attachInterrupt(0, GetEvent, FALLING); // Ereignis an Pin 2
}
Leere Schleife () {
lcd.setCursor(0, 0); // Text und CNT auf dem LCD drucken
lcd.print("CPM:");
lcd.setCursor(0, 1);
lcd.print("CNT:");
lcd.setCursor(5, 1);
lcd.print (CNT);
if (millis() >=dispPeriod + PERIOD) { // Wenn eine Minute vorbei ist
cleanDisplay(); // LCD löschen
// Etwas gegen angesammelte CNT-Ereignisse unternehmen….
lcd.setCursor(5, 0);
CPM = CNT;
lcd.print (CPM); //CPM anzeigen
CNT = 0;
dispPeriod = millis();
}
}
void GetEvent(){ // Hole Ereignis vom Gerät
CNT++;
}
void cleanDisplay () {// LCD-Routine löschen
lcd.clear();
lcd.setCursor(0, 0);
lcd.setCursor(0, 0);
}
Schritt 12: Dateien
Laden Sie diese Dateien herunter und installieren Sie sie auf Ihrem Arduino.
Legen Sie jede.ino-Datei in einem Ordner mit demselben Namen ab.
Empfohlen:
DIY So zeigen Sie die Zeit auf dem M5StickC ESP32 mit Visuino an - Einfach zu tun: 9 Schritte
DIY So zeigen Sie die Zeit auf dem M5StickC ESP32 mit Visuino an - Einfach zu machen: In diesem Tutorial lernen wir, wie Sie den ESP32 M5Stack StickC mit Arduino IDE und Visuino programmieren, um die Zeit auf dem LCD anzuzeigen
DIY, wie man eine cool aussehende Uhr macht – StickC – Einfach zu tun: 8 Schritte
DIY Wie man eine cool aussehende Uhr macht - StickC - Einfach zu machen: In diesem Tutorial lernen wir, wie man ESP32 M5Stack StickC mit Arduino IDE und Visuino programmiert, um eine Zeit auf dem LCD anzuzeigen und die Zeit auch mit den StickC-Tasten einzustellen
DIY Bluetooth Boombox Lautsprecher - HOW TO: 13 Schritte (mit Bildern)
DIY Bluetooth Boombox Lautsprecher | WIE MAN: Hallo! Vielen Dank, dass Sie sich dieses Projekt angesehen haben, dieses ist auf meiner Favoritenliste! Ich freue mich sehr, dieses tolle Projekt realisiert zu haben. Während des gesamten Projekts wurden viele neue Techniken verwendet, um die Gesamtqualität und das Finish der Spea
Rocola (DIY): 3 Schritte
Rocola (DIY): Rocola interactive que te allowirá reproducir tu música favorita en cualquier lugar que cuente con un toma corriente! Esta rocola cuenta con 3 canciones establecidas que puedes conservar o cambiar según tu gusto musical.La rocola cuenta con 3 boton
DIY Batterie Arduino und Raspberry Pi 3: 4 Schritte (mit Bildern)
DIY Batterie Arduino und Raspberry Pi 3: Hallo Also in diesem anweisbaren zeige ich Ihnen, wie ich meine Batterie für meinen Roboter mache. Ich brauche Strom für mein Arduino-Board (mich Auriga Makeblock Board basierend auf ATmega2560) und mein Himbeer-Pi (mit PS-Auge; Festplatte 2g …) Also brauche ich:_output 7.4v für die Ar