My students need to learn LabVIEW —I know, it’s proprietary software, and expensive, but until a viable open-source equivalent comes along we’re stuck with it— and one of the exercises I have them do is to make a program to analyze radioactive decay. This gives them experience in using counters, plotting data in real time, curve fitting, etc.
The problem arises when I have a dozen students and not so many good sources and detectors. During the students’ development of their LabVIEW program, they need multiple re-starts on the measurement. The program NEVER works right the first time, and if you’re using neutron-activated indium as a source it’s hard to “reset” it when you realize that your block diagram isn’t wired right.
I have a dozen Arduinos, though, and I’ve programmed them to behave as if they were radioactive sources. This way the students can try their program, fix their program, push the reset button on the Arduino and try the program again.
Here’s the code. I use pin 13 as an output since the LED allows students to see that it’s working, even when their program isn’t. The plot shown at the top of this page is actual data from the Arduino, as collected via a student LabVIEW program and plotted in Python. There’s a step in the data at about 80 seconds —not sure if that’s the Arduino or LabVIEW— but it works well enough for the job.
For more detail: Radioactive isotope decay simulation