Πίνακας περιεχομένων:

Arduino DIY Geiger Counter: 12 βήματα (με εικόνες)
Arduino DIY Geiger Counter: 12 βήματα (με εικόνες)

Βίντεο: Arduino DIY Geiger Counter: 12 βήματα (με εικόνες)

Βίντεο: Arduino DIY Geiger Counter: 12 βήματα (με εικόνες)
Βίντεο: #162 Build your own 50$ connected Geiger Counter (ESP32) 2024, Νοέμβριος
Anonim
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter

Έτσι, έχετε παραγγείλει ένα DIY Geiger μετρητή και θέλετε να το συνδέσετε στο Arduino σας. Συνεχίζετε στο διαδίκτυο και προσπαθείτε να αντιγράψετε πώς άλλοι έχουν συνδέσει τον πάγκο Geiger τους στο Arduino μόνο για να διαπιστώσουν ότι κάτι δεν πάει καλά. Παρόλο που ο μετρητής Geiger φαίνεται να λειτουργεί, τίποτα δεν λειτουργεί όπως περιγράφεται στο DIY που ακολουθείτε όταν συνδέετε τον μετρητή Geiger στο Arduino.

Σε αυτό το Instructable θα καλύψω τον τρόπο αντιμετώπισης προβλημάτων ορισμένων από αυτές τις δυσλειτουργίες.

Θυμάμαι; συναρμολογήστε και κωδικοποιήστε το Arduino ένα βήμα τη φορά, αν πάτε κατευθείαν σε ένα ολοκληρωμένο έργο και υπάρχει χαμένο καλώδιο ή γραμμή κώδικα που θα μπορούσε να σας πάρει για πάντα για να βρείτε το πρόβλημα.

Βήμα 1: Εργαλεία και ανταλλακτικά

Εργαλεία και ανταλλακτικά
Εργαλεία και ανταλλακτικά

Πρωτότυπο κουτί Χρησιμοποίησα ένα κουτί καραμελών Ferrero Rocher.

Μικρή σανίδα ψωμιού

LCD 16x2

Arduino σανίδα αιθέρας UNO ή Nano

Αντίσταση 220 Ω

Ρυθμιζόμενη αντίσταση δοχείου 10 kΩ.

DIY Geiger Counter Kit

Jumper Wires

Υποδοχή μπαταρίας ή πλεξούδα

Παλμοσκόπιο

Πένσα λεπτής μύτης

Μικρό τυπικό κατσαβίδι

Βήμα 2: Συναρμολογήστε τον μετρητή Geiger

Συγκεντρώστε τον μετρητή Geiger σας
Συγκεντρώστε τον μετρητή Geiger σας

Οποιαδήποτε ζημιά στο Geiger Tube σας. και ο μετρητής Geiger δεν θα λειτουργήσει, οπότε χρησιμοποιήστε το προστατευτικό ακρυλικό κάλυμμα για να αποφύγετε ζημιά στον σωλήνα Geiger.

Αυτό το Instructable είναι για το πώς επισκευάστηκα τον ίδιο πάγκο Geiger με σπασμένο σωλήνα Geiger και τοποθέτησα το προστατευτικό ακρυλικό κάλυμμα για να αποτρέψω το σπάσιμο στο μέλλον.

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

Βήμα 3: Ηλεκτρική δοκιμή του μετρητή Geiger

Ηλεκτρική δοκιμή του μετρητή Geiger
Ηλεκτρική δοκιμή του μετρητή Geiger
Ηλεκτρική δοκιμή του μετρητή Geiger
Ηλεκτρική δοκιμή του μετρητή Geiger
Ηλεκτρική δοκιμή του μετρητή Geiger
Ηλεκτρική δοκιμή του μετρητή Geiger

Χρησιμοποιήστε πρώτα τη σωστή τάση για το τροφοδοτικό. Το καλώδιο USB παρέχει 5 βολτ DC απευθείας από τον υπολογιστή σας, ωστόσο η θήκη μπαταρίας 3 ΑΑ είναι για αλκαλικές μπαταρίες 1,5 βολτ με συνολική τάση 4,5 βολτ. Εάν χρησιμοποιείτε επαναφορτιζόμενες μπαταρίες NI-Cd ή NI-MH 1,2 βολτ, θα χρειαστείτε μια υποδοχή μπαταρίας 4 AA για συνολική τάση 4,8 βολτ. Εάν χρησιμοποιείτε λιγότερο από 4,5 βολτ, ο μετρητής Geiger ενδέχεται να μην λειτουργεί όπως θα έπρεπε.

Υπάρχει πολύ λίγο κύκλωμα στην έξοδο των μετρητών Geiger. Εφόσον το ηχείο κάνει έναν ήχο και το LED αναβοσβήνει, θα πρέπει να λαμβάνετε ένα σήμα στον πείρο VIN.

Για να είστε σίγουροι για το σήμα εξόδου. συνδέστε έναν παλμογράφο στην έξοδο συνδέοντας τη θετική πλευρά του αισθητήρα παλμογράφου στο VIN και την αρνητική πλευρά του αισθητήρα παλμογράφου στο έδαφος.

Αντί να περιμένω ακτινοβολία στο παρασκήνιο για να πυροδοτήσει τον μετρητή Geiger, χρησιμοποίησα το αμερίκιο-241 από έναν θάλαμο ιόντων ανιχνευτών καπνού για να αυξήσω τις αντιδράσεις των μετρητών Geiger. Η έξοδος του μετρητή Geiger ξεκίνησε στα +3 βολτ και έπεσε στα 0 βολτ κάθε φορά που ο σωλήνας Geiger αντέδρασε στα σωματίδια άλφα και επέστρεψε στα +3 βολτ μια στιγμή αργότερα. Αυτό είναι το σήμα που θα ηχογραφήσετε με το Arduino.

Βήμα 4: Καλωδίωση

Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση

Υπάρχουν δύο τρόποι με τους οποίους μπορείτε να συνδέσετε τον μετρητή Geiger με το Arduino και τον υπολογιστή σας.

Συνδέστε το GND στο Arduino με το GND στον μετρητή Geiger.

Συνδέστε το 5V στο Arduino με το 5V στον πάγκο Geiger.

Συνδέστε το VIN στον μετρητή Geiger με το D2 στο Arduino.

Με ανεξάρτητη τροφοδοσία συνδεδεμένη στον μετρητή Geiger.

Συνδέστε το GND στο Arduino με το GND στον μετρητή Geiger.

Συνδέστε το VIN στον μετρητή Geiger με το D2 στο Arduino.

Συνδέστε το Arduino στον υπολογιστή σας.

Βήμα 5: Κωδικός

Κώδικας
Κώδικας
Κώδικας
Κώδικας
Κώδικας
Κώδικας

Ανοίξτε το Arduino IDE και φορτώστε τον κωδικό.

// Αυτό το σκίτσο μετράει τον αριθμό των παλμών το λεπτό.

// Συνδέστε το GND στο Arduino με το GND στον μετρητή Geiger.

// Συνδέστε το 5V στο Arduino με το 5V του μετρητή Geiger.

// Συνδέστε το VIN στον μετρητή Geiger με το D2 στο Arduino.

ανυπόγραφες μεγάλες μετρήσεις? // μεταβλητή για εκδηλώσεις GM Tube

ανυπόγραφο προηγουμένωςMillis; // μεταβλητή για τη μέτρηση του χρόνου

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

μετράει ++;

}

#define LOG_PERIOD 60000 // ποσοστό μέτρησης

void setup () {// setup

μετράει = 0;

Serial.begin (9600);

pinMode (2, ΕΙΣΟΔΟΣ);

attachInterrupt (digitalPinToInterrupt (2), impulse, FALLING); // καθορισμός εξωτερικών διακοπών

Serial.println ("Μετρητής έναρξης");

}

void loop () {// κύριος κύκλος

ανυπόγραφο μακρύ ρεύμαMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

Serial.println (μετράει)

μετράει = 0;

}

}

Στα Εργαλεία επιλέξτε το Arduino ή άλλη πλακέτα που χρησιμοποιείτε.

Στα Εργαλεία επιλέξτε Θύρα και Com

Ανεβάστε τον κωδικό.

Μόλις μεταφορτωθεί ο κώδικας στα Εργαλεία, επιλέξτε Serial Monitor και παρακολουθήστε την εργασία του μετρητή Geiger.

Αναζητήστε δυσλειτουργίες. Το μόνο πράγμα για αυτόν τον κώδικα είναι ότι είναι λίγο κουραστικό, πρέπει να περιμένετε 1 λεπτό για κάθε μέτρηση.

Βήμα 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

Αυτό είναι ένα από τα πρώτα προβλήματα που βρήκα στον κώδικα. γι 'αυτό προσέξτε τον στον κωδικό σας, "Serial.println (cpm);" και "Serial.print (cpm);".

Serial.println (cpm); θα εκτυπώσει κάθε αριθμό στη δική του γραμμή.

Serial.print (cpm); θα μοιάζει με έναν μεγάλο αριθμό που εκτυπώνει κάθε μέτρηση στην ίδια γραμμή καθιστώντας αδύνατο να πούμε ποια είναι η καταμέτρηση.

Βήμα 7: Μέτρηση ακτινοβολίας παρασκηνίου J305

J305 Μέτρηση ακτινοβολίας υποβάθρου
J305 Μέτρηση ακτινοβολίας υποβάθρου
J305 Μέτρηση ακτινοβολίας υποβάθρου
J305 Μέτρηση ακτινοβολίας υποβάθρου

Πρώτα είναι η μέτρηση της ακτινοβολίας υποβάθρου, της φυσικής ακτινοβολίας που υπάρχει ήδη φυσικά. Ο αναφερόμενος αριθμός είναι το CPM (μέτρηση ανά λεπτό), το οποίο είναι ένα σύνολο μετρημένων ραδιενεργών σωματιδίων κάθε λεπτό.

Ο μέσος όρος υποβάθρου J305 ήταν 15,6 CPM.

Βήμα 8: J305 Μέτρηση της ακτινοβολίας αισθητήρα καπνού

J305 Μέτρηση Ακτινοβολίας Αισθητήρα Καπνού
J305 Μέτρηση Ακτινοβολίας Αισθητήρα Καπνού
J305 Μέτρηση Ακτινοβολίας Αισθητήρα Καπνού
J305 Μέτρηση Ακτινοβολίας Αισθητήρα Καπνού

Δεν είναι ασυνήθιστο για έναν μετρητή Geiger να σας δίνει τον ίδιο αριθμό κατ 'επανάληψη, οπότε ελέγξτε το με μια πηγή ακτινοβολίας. Χρησιμοποίησα τη μέτρηση της ακτινοβολίας από το Americium έναν θάλαμο ιόντων από έναν ανιχνευτή καπνού. Ο αισθητήρας καπνού χρησιμοποιεί το Americium ως πηγή σωματιδίων άλφα που ιονίζουν τα σωματίδια καπνού στον αέρα. Αφαίρεσα το μεταλλικό καπάκι στον αισθητήρα, ώστε τα σωματίδια άλφα και βήτα να φτάσουν στον σωλήνα Geiger μαζί με τα σωματίδια γάμμα.

Εάν όλα είναι εντάξει, οι μετρήσεις πρέπει να αλλάξουν.

Η μέση μέτρηση του Americium-241 από τον θάλαμο ιόντων ανιχνευτών καπνού ήταν 519 CPM.

Βήμα 9: SBM-20

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

Αυτό το σκίτσο Arduino είναι τροποποιημένη έκδοση που γράφτηκε από τον Alex Boguslavsky.

Αυτό το σκίτσο μετρά τον αριθμό των παλμών σε 15 δευτερόλεπτα και το μετατρέπει σε μετρήσεις ανά λεπτό καθιστώντας το λιγότερο κουραστικό.

Κώδικας πρόσθεσα "Serial.println (" Έναρξη μετρητή ");".

Κωδικός άλλαξα? "Serial.print (cpm);" στο "Serial.println (cpm);".

"#Define LOG_PERIOD 15000"; ορίζει τον χρόνο μέτρησης στα 15 δευτερόλεπτα, το άλλαξα σε "#define LOG_PERIOD 5000" ή 5 δευτερόλεπτα. Δεν βρήκα αξιοσημείωτη διαφορά στο μέσο όρο μεταξύ της μέτρησης για 1 λεπτό ή 15 δευτερολέπτων και 5 δευτερολέπτων.

#περιλαμβάνω

#define LOG_PERIOD 15000 // Περίοδος καταγραφής σε χιλιοστά του δευτερολέπτου, προτεινόμενη τιμή 15000-60000.

#define MAX_PERIOD 60000 // Μέγιστη περίοδος καταγραφής χωρίς τροποποίηση αυτού του σκίτσου

ανυπόγραφες μεγάλες μετρήσεις? // μεταβλητή για εκδηλώσεις GM Tube

ανυπόγραφο μακρύ cpm. // μεταβλητή για CPM

ανυπόγραφο int πολλαπλασιαστή? // μεταβλητή για υπολογισμό CPM σε αυτό το σκίτσο

ανυπόγραφο προηγουμένωςMillis; // μεταβλητή για μέτρηση χρόνου

void tube_impulse () {// υποδιαδικασία για τη λήψη συμβάντων από το Geiger Kit

μετράει ++;

}

void setup () {// setup subprocedure

μετράει = 0;

cpm = 0;

πολλαπλασιαστής = MAX_PERIOD / LOG_PERIOD; // υπολογισμός του πολλαπλασιαστή, εξαρτάται από την περίοδο καταγραφής σας

Serial.begin (9600);

attachInterrupt (0, tube_impulse, FALLING); // καθορισμός εξωτερικών διακοπών

Serial.println ("Μετρητής έναρξης"); // κώδικας που πρόσθεσα

}

void loop () {// κύριος κύκλος

ανυπόγραφο μακρύ ρεύμαMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

cpm = μετράει * πολλαπλασιαστής

Serial.println (cpm); // κωδικός άλλαξα

μετράει = 0;

}

}

Ο μέσος όρος υποβάθρου SBM-20 ήταν 23,4 CPM.

Βήμα 10: Καλωδίωση του μετρητή Geiger με οθόνη LCD

Καλωδίωση του μετρητή Geiger με οθόνη LCD
Καλωδίωση του μετρητή Geiger με οθόνη LCD

Σύνδεση LCD:

Ακίδα LCD K σε GND

LCD Αντίσταση ακροδέκτη 220 V σε Vcc

Ακίδα LCD D7 σε ψηφιακή ακίδα 3

LCD D6 pin σε ψηφιακή ακίδα 5

Ακίδα LCD D5 σε ψηφιακή ακίδα 6

LCD D4 pin σε ψηφιακή ακίδα 7

LCD Ενεργοποιήστε την καρφίτσα στην ψηφιακή ακίδα 8

Πείρος LCD R/W στη γείωση

Ακροδέκτης LCD RS σε ψηφιακή ακίδα 9

Καρφίτσα LCD VO για ρύθμιση δοχείου 10 kΩ

Καρφίτσα LCD Vcc σε Vcc

Καρφίτσα LCD Vdd σε GND

Ρυθμιζόμενη αντίσταση δοχείου 10 kΩ.

Vcc, Vo, Vdd

Μέτρο ραδιενέργειας

VIN στην ψηφιακή ακίδα 2

5 V έως +5V

GND στο έδαφος

Βήμα 11: Μετρητής Geiger με οθόνη LCD

Μετρητής Geiger με LCD
Μετρητής Geiger με LCD
Μετρητής Geiger με LCD
Μετρητής Geiger με LCD
Μετρητής Geiger με LCD
Μετρητής Geiger με LCD

// περιλαμβάνει τον κωδικό της βιβλιοθήκης:

#περιλαμβάνω

#περιλαμβάνω

#define LOG_PERIOD 15000 // Περίοδος καταγραφής σε χιλιοστά του δευτερολέπτου, προτεινόμενη τιμή 15000-60000.

#define MAX_PERIOD 60000 // Μέγιστη περίοδος καταγραφής χωρίς τροποποίηση αυτού του σκίτσου

#define PERIOD 60000.0 // (60 δευτερόλεπτα) μια περίοδος μέτρησης ενός λεπτού

πτητική ανυπόγραφη μακρά CNT. // μεταβλητή για την καταμέτρηση διακοπών από το δοσιμετρητή

ανυπόγραφες μεγάλες μετρήσεις? // μεταβλητή για εκδηλώσεις GM Tube

ανυπόγραφο μακρύ cpm. // μεταβλητή για CPM

ανυπόγραφο int πολλαπλασιαστή? // μεταβλητή για υπολογισμό CPM σε αυτό το σκίτσο

ανυπόγραφο προηγουμένωςMillis; // μεταβλητή για μέτρηση χρόνου

ανυπόγραφο μεγάλο διάστημα // μεταβλητή για τη μέτρηση του χρόνου

ανυπόγραφο μακρύ CPM. // μεταβλητή για τη μέτρηση του CPM

// προετοιμάστε τη βιβλιοθήκη με τους αριθμούς των ακίδων διεπαφής

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

void setup () {// setup

lcd.αρχή (16, 2);

CNT = 0;

CPM = 0;

dispPeriod = 0;

lcd.setCursor (0, 0);

lcd.print ("RH Electronics");

lcd.setCursor (0, 1);

lcd.print ("Μετρητής Geiger");

καθυστέρηση (2000).

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // Συμβάν στο pin 2

}

void loop () {

lcd.setCursor (0, 0); // εκτύπωση κειμένου και CNT στην οθόνη LCD

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

εάν (millis ()> = dispPeriod + PERIOD) {// Εάν τελειώσει ένα λεπτό

cleanDisplay (); // Εκκαθάριση LCD

// Κάντε κάτι για τα συσσωρευμένα γεγονότα CNT….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // Εμφάνιση CPM

CNT = 0;

dispPeriod = millis ();

}

}

void GetEvent () {// Λήψη συμβάντος από τη συσκευή

CNT ++;

}

void cleanDisplay () {// Εκκαθάριση ρουτίνας LCD

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

Βήμα 12: Αρχεία

Κατεβάστε και εγκαταστήστε αυτά τα αρχεία στο Arduino σας.

Τοποθετήστε κάθε αρχείο.ino σε ένα φάκελο με το ίδιο όνομα.

Συνιστάται: