Inhoudsopgave:
- Stap 1: Gereedschap en onderdelen
- Stap 2: monteer uw geigerteller
- Stap 3: Elektrisch testen van de geigerteller
- Stap 4: Bedrading
- Stap 5: Coderen
- Stap 6: Serial.println versus Serial.print
- Stap 7: J305 Achtergrondstralingsmeting
- Stap 8: J305 Meting van de straling van de rooksensor
- Stap 9: SBM-20
- Stap 10: Bedrading van de geigerteller met een LCD
- Stap 11: Geigerteller met LCD
- Stap 12: Bestanden
Video: Arduino DIY Geigerteller - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Je hebt dus een doe-het-zelf geigerteller besteld en je wilt deze aansluiten op je Arduino. Je gaat online en probeert te dupliceren hoe anderen hun geigerteller op Arduino hebben aangesloten om te ontdekken dat er iets mis is. Hoewel je geigerteller lijkt te werken, werkt niets zoals beschreven in de DIY die je volgt wanneer je je geigerteller aansluit op je Arduino.
In deze Instructable zal ik bespreken hoe u enkele van deze problemen kunt oplossen.
Onthouden; assembleer en codeer Arduino stap voor stap, als je rechtstreeks naar een voltooid project gaat en er is een gemiste draad of regel code, kan het een eeuwigheid duren om het probleem te vinden.
Stap 1: Gereedschap en onderdelen
Prototype doos Ik gebruikte een Ferrero Rocher snoepdoos.
Kleine broodplank
16x2 LCD
Arduino board ether een UNO of Nano
220 weerstand
Pot 10 kΩ instelbare weerstand.
DIY Geigerteller Kit
Doorverbindingsdraden
Batterijconnector of harnas
Oscilloscoop
Fijnbektang
Kleine standaard schroevendraaier
Stap 2: monteer uw geigerteller
Eventuele schade aan uw Geiger Tube; en je geigerteller werkt niet, dus gebruik de beschermende acrylkap om schade aan je geigerbuis te voorkomen.
Deze Instructable gaat over hoe ik dezelfde geigerteller heb gerepareerd met een kapotte geigerbuis en de beschermende acrylafdekking heb aangebracht om breuk in de toekomst te voorkomen.
www.instructables.com/id/Repairing-a-DIY-G…
Stap 3: Elektrisch testen van de geigerteller
Gebruik eerst de juiste spanning voor de voeding; de USB-kabel levert 5 volt gelijkstroom vanaf uw computer, maar de 3 AA-batterijhouder is voor 1,5 volt alkalinebatterijen, wat een totale spanning van 4,5 volt oplevert. Als u 1,2 volt oplaadbare NI-Cd- of NI-MH-batterijen gebruikt, hebt u een 4 AA-batterijhouder nodig voor een totale spanning van 4,8 volt. Als u minder dan 4,5 volt gebruikt, werkt de geigerteller mogelijk niet zoals zou moeten.
Er is heel weinig circuit op de uitgang van de geigerteller; dus zolang de luidspreker een tikkend geluid maakt en de LED knippert, zou u een signaal op de VIN-pin moeten krijgen.
Om zeker te zijn van het uitgangssignaal; sluit een oscilloscoop aan op de uitgang door de positieve kant van de oscilloscoop-sonde aan te sluiten op de VIN en de negatieve kant van de oscilloscoop-sonde op de grond.
In plaats van alleen maar te wachten op achtergrondstraling om de geigerteller te activeren, gebruikte ik americium-241 uit een ionenkamer van een rookdetector om de reacties van de geigerteller te verhogen. De output van de geigerteller begon bij +3 volt en zakte naar 0 volt telkens als de geigerbuis reageerde op de alfadeeltjes en keerde even later terug naar +3 volt. Dit is het signaal dat je gaat opnemen met Arduino.
Stap 4: Bedrading
Er zijn twee manieren waarop u de geigerteller op uw Arduino en uw computer kunt aansluiten.
Verbind de GND op Arduino met de GND op de geigerteller.
Verbind de 5V op Arduino met de 5V op de geigerteller.
Verbind het VIN op de geigerteller met de D2 op Arduino.
Met onafhankelijke voeding aangesloten op de geigerteller.
Verbind de GND op Arduino met de GND op de geigerteller.
Verbind het VIN op de geigerteller met de D2 op Arduino.
Sluit Arduino aan op uw computer.
Stap 5: Coderen
Open Arduino IDE en laad de code.
// Deze schets telt het aantal pulsen per minuut.
// Verbind de GND op Arduino met de GND op de geigerteller.
// Verbind de 5V op Arduino met de 5V op de geigerteller.
// Verbind het VIN op de geigerteller met de D2 op Arduino.
ongetekende lange tellingen; //variabele voor GM Tube-evenementen
ongetekende lange vorigeMillis; //variabele voor het meten van tijd
void impulse () {// dipanggil setiap ada sinyal FALLING di pin 2
telt++;
}
#define LOG_PERIOD 60000 // telsnelheid
void setup () { // setup
telt = 0;
Serieel.begin(9600);
pinMode(2, INPUT);
attachInterrupt(digitalPinToInterrupt(2), impuls, FALLING); //definieer externe interrupts
Serial.println("Start teller");
}
void loop () { // hoofdcyclus
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > LOG_PERIOD) {
vorigeMillis = huidigeMillis;
Serial.println(tellingen);
telt = 0;
}
}
Selecteer in Tools de Arduino of een ander bord dat u gebruikt.
Selecteer in Extra de Poort en Com
Upload de code.
Zodra de code is geüpload in Tools, selecteert u Serial Monitor en ziet u hoe uw geigerteller werkt.
Zoek naar storingen. Het enige aan deze code is dat het een beetje vervelend is, je moet 1 minuut wachten voor elke telling.
Stap 6: Serial.println versus Serial.print
Dit is een van de eerste glitches die ik in de code vond; dus let erop in uw code, "Serial.println(cpm);" en "Serial.print(cpm);".
Serieel.println(cpm); zal elke telling op zijn eigen regel afdrukken.
Seriële.afdruk (cpm); zal eruitzien als één groot getal dat elke telling op dezelfde regel afdrukt, waardoor het onmogelijk is om te vertellen wat de telling is.
Stap 7: J305 Achtergrondstralingsmeting
De eerste is het meten van achtergrondstraling, de natuurlijke straling die van nature al bestaat. Het vermelde getal is de CPM (count per minute), dat is een totaal van gemeten radioactieve deeltjes per minuut.
Het gemiddelde aantal op de achtergrond van de J305 was 15,6 CPM.
Stap 8: J305 Meting van de straling van de rooksensor
Het is niet ongebruikelijk dat een geigerteller u herhaaldelijk dezelfde telling geeft, dus controleer deze met een stralingsbron. Ik gebruikte de stralingsmeting van Americium een ionenkamer van een rookmelder. De rooksensor gebruikt Americium als bron van alfadeeltjes die rookdeeltjes in de lucht ioniseren. Ik heb de metalen dop van de sensor verwijderd zodat de alfa- en bètadeeltjes samen met de gammadeeltjes in de Geigerbuis kunnen komen.
Als alles in orde is, moeten de tellingen veranderen.
Americium-241 van een rookmelders ionenkamer gemiddelde telling was 519 CPM.
Stap 9: SBM-20
Deze Arduino-schets is een aangepaste versie geschreven door Alex Boguslavsky.
Deze schets telt het aantal pulsen in 15 seconden en zet dit om in tellingen per minuut, waardoor het minder vervelend wordt.
Code Ik heb "Serial.println ("Start counter");”.
Code die ik heb gewijzigd; “Serial.print(cpm);” naar "Serial.println(cpm);".
“#define LOG_PERIOD 15000”; zet de teltijd op 15 seconden, ik heb het veranderd in "#define LOG_PERIOD 5000" of 5 seconden. Ik vond geen merkbaar verschil in het gemiddelde tussen 1 minuut tellen, of 15 seconden en 5 seconden.
#erbij betrekken
#define LOG_PERIOD 15000 // Loggingsperiode in milliseconden, aanbevolen waarde 15000-60000.
#define MAX_PERIOD 60000 //Maximale logperiode zonder deze schets te wijzigen
ongetekende lange tellingen; //variabele voor GM Tube-evenementen
ongetekende lange cpm; //variabele voor CPM
niet-ondertekende int multiplier; //variabele voor berekening CPM in deze schets
ongetekende lange vorigeMillis; //variabele voor tijdmeting
void tube_impulse() {//subprocedure voor het vastleggen van gebeurtenissen van Geiger Kit
telt++;
}
void setup () { // setup-subprocedure
telt = 0;
cpm = 0;
vermenigvuldiger = MAX_PERIOD / LOG_PERIOD; // berekenen vermenigvuldiger, afhankelijk van uw logperiode
Serieel.begin(9600);
attachInterrupt(0, tube_impulse, FALLING); //definieer externe interrupts
Serial.println("Start teller"); // code die ik heb toegevoegd
}
void loop () { // hoofdcyclus
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > LOG_PERIOD){
vorigeMillis = huidigeMillis;
cpm = telt * vermenigvuldiger;
Serieel.println(cpm); // code die ik heb gewijzigd
telt = 0;
}
}
De gemiddelde telling van de SBM-20 op de achtergrond was 23,4 CPM.
Stap 10: Bedrading van de geigerteller met een LCD
LCD-verbinding:
LCD K-pin naar GND
LCD A pin naar 220 Ω weerstand naar Vcc
LCD D7 pin naar digitale pin 3
LCD D6 pin naar digitale pin 5
LCD D5 pin naar digitale pin 6
LCD D4-pin naar digitale pin 7
LCD Schakel pin naar digitale pin 8. in
LCD R/W-pin naar aarde
LCD RS-pin naar digitale pin 9
LCD VO-pin om 10 kΩ pot aan te passen
LCD Vcc-pin naar Vcc
LCD Vdd-pin naar GND
Pot 10 kΩ instelbare weerstand.
Vcc, Vo, Vdd
Geigerteller
VIN naar digitale pin 2
5 V tot +5 V
GND naar aarde
Stap 11: Geigerteller met LCD
// voeg de bibliotheekcode toe:
#erbij betrekken
#erbij betrekken
#define LOG_PERIOD 15000 // Loggingsperiode in milliseconden, aanbevolen waarde 15000-60000.
#define MAX_PERIOD 60000 //Maximale logperiode zonder deze schets te wijzigen
#define PERIOD 60000.0 // (60 sec) meetperiode van één minuut
vluchtige niet-ondertekende lange CNT; // variabele voor het tellen van interrupts van dosimeter
ongetekende lange tellingen; //variabele voor GM Tube-evenementen
ongetekende lange cpm; //variabele voor CPM
niet-ondertekende int multiplier; //variabele voor berekening CPM in deze schets
ongetekende lange vorigeMillis; //variabele voor tijdmeting
niet-ondertekende lange dispPeriod; // variabele voor het meten van tijd
niet-ondertekende lange CPM; // variabele voor het meten van CPM
// initialiseer de bibliotheek met de nummers van de interface-pinnen
LiquidCrystal lcd (9, 8, 7, 6, 5, 3);
void setup() { // setup
lcd.begin (16, 2);
CNT = 0;
CPM = 0;
dispPeriode = 0;
lcd.setCursor(0, 0);
lcd.print(" RH Electronics ");
lcd.setCursor(0, 1);
lcd.print(" Geigerteller ");
vertraging (2000);
schoonDisplay();
attachInterrupt(0, GetEvent, FALLING); // Gebeurtenis op pin 2
}
lege lus() {
lcd.setCursor(0, 0); // print tekst en CNT op het LCD
lcd.print("CPM:");
lcd.setCursor(0, 1);
lcd.print("CNT:");
lcd.setCursor(5, 1);
lcd.print (CNT);
if (millis() >=dispPeriod + PERIOD) { // Als een minuut voorbij is
schoonDisplay(); // Helder LCD-scherm
// Doe iets aan de verzamelde CNT-gebeurtenissen….
lcd.setCursor (5, 0);
CPM = CNT;
lcd.print (CPM); //CPM weergeven
CNT = 0;
dispPeriod = millis();
}
}
void GetEvent(){ // Evenement ophalen van apparaat
CNT++;
}
void cleanDisplay (){ // Clear LCD-routine
lcd.wissen();
lcd.setCursor(0, 0);
lcd.setCursor(0, 0);
}
Stap 12: Bestanden
Download en installeer deze bestanden op uw Arduino.
Plaats elk.ino-bestand in een map met dezelfde naam.
Aanbevolen:
DIY-gameconsole met Arduino: 4 stappen
DIY-gameconsole met Arduino: in deze tutorial laat ik je zien hoe je een gameconsole kunt maken met Arduino nano. Dus als je een gedetailleerde video erover wilt zien, bekijk het dan op mijn YouTube-kanaal
Home Assistant Geigerteller-integratie: 8 stappen
Home Assistant Geigerteller-integratie: in deze tutorial laat ik zien hoe je aangepaste sensoren toevoegt aan HASS (thuisassistent), meer specifiek een geigerteller, maar het proces is ook vergelijkbaar voor andere sensoren. We zullen het NodeMCU-bord gebruiken, een op Arduino gebaseerde geigerteller
DIY Ambilight met Raspberry Pi en GEEN Arduino! Werkt op elke HDMI-bron: 17 stappen (met afbeeldingen)
DIY Ambilight met Raspberry Pi en GEEN Arduino! Werkt op elke HDMI-bron.: Ik heb een vrij basaal begrip van elektronica, daarom ben ik supertrots op mijn doe-het-zelf Ambilight-opstelling in een eenvoudige houten behuizing met de mogelijkheid om de lichten aan en uit te zetten wanneer en wanneer ik wil. Voor wie niet weet wat een Ambilight is;
DIY Goedkope Arduino Gameboy: 5 stappen (met afbeeldingen)
DIY Goedkope Arduino Gameboy: iedereen verveelt zich tijdens lange reizen en wil iets om ze op te vrolijken !! Het lezen van romans kan een keuze zijn: / Maar ze worden na een tijdje ook saai !! Dus in deze Instructable zal ik je laten zien hoe je een handheld gaming-apparaat met behulp van Arduin
Goedkoopste Arduino -- Kleinste Arduino -- Arduino Pro Mini -- Programmeren -- Arduino Neno: 6 stappen (met afbeeldingen)
Goedkoopste Arduino || Kleinste Arduino || Arduino Pro Mini || Programmeren || Arduino Neno:…………………………….. ABONNEER aub op mijn YouTube-kanaal voor meer video's……. Dit project gaat over hoe je een kleinste en goedkoopste arduino ooit kunt aansluiten. De kleinste en goedkoopste arduino is arduino pro mini. Het lijkt op arduino