Mouse locomotor activity tracker

Track mouse locomotor activity non-invasively with IR beam breaks.

Public Chat
Similar projects worth following
IR beam break system for mouse locomotor activity tracking. Sensors attach to the outside of a mouse’s home cage. Connects to PC and logs data by open-source terminal program.

The code is written to control 24 sensors arranged as 12 pairs. Accordingly, the components list has 24 IR sensors. If you don't want/need the full complement, just don't connect them. The code will still run fine, it will just give readings of 0 for any unconnected sensors.

The code is set to tally beam breaks every 10 seconds, then upload them and reset the counter. This means your .csv data file will have a new row of time-stamped beam breaks tallies every 10 seconds. If you want to change the timing, it needs to be done in the Arduino code. Go to the bit that says "if(t - previousT >= 10)" and modify the 10 to whatever time bin (in seconds) you want.

Performing experiments like this, you will often find the mice are uncooperative and push their tubes/bedding in the way of the sensors. Historically, we would therefore have to remove the bedding from the cages, which is not good for the animal welfare. A good workaround for this is to buy the same neodymium magnets on the components list and use them to pin the tube/bedding out of the way. This lets the animals keep their bedding while having a very small chance of interfering with the sensors.

ino - 15.41 kB - 05/05/2022 at 08:34


IR Beam break sensor holder with magnet.stl

Has a hole underneath for a neodymium magnet to allow magnetic attachment.

Standard Tesselated Geometry - 12.19 kB - 05/05/2022 at 06:59


IR Beam break sensor holder.stl

Hooks onto side rails of Tecniplast green line cage.

Standard Tesselated Geometry - 3.79 kB - 05/05/2022 at 06:59


View all 10 components

  • 1
    Solder components

    Solder each pair of IR LED's and sensors to one of the single ethernet ports: red leads (+) to pin 1, black leads (ground) to pin 2, one yellow lead (sensor 1) to pin 3 and the other yellow lead (sensor 2) to pin 4.

    Solder a jumper wire to the corresponding pin on the 6-way ethernet port for each sensor, and a normal wire each for + and ground. WARNING: ETHERNET PINS DO NOT ALWAYS MATCH UP BETWEEN BRANDS SO CHECK THE CONNECTIONS WITH A MULTIMETER!!

    Solder jumper wire to each LED anode pin, and a 330 ohm resistor to the cathode pin; then a wire to the resistor.

    Jumper wires make it easy to connect to the Arduino I/O pins, but there aren't sufficient ground or 5V pins, so you need to use normal wires, then solder those together.

    Any exposed regions can be shielded with heat-shrink tubing or electrical tape if there is any concern of movement/contacting other bits.

  • 2
    Connect to Arduino

    Plug the collated ground wires into the Arduino Ground pin and the collated + wires in the Arduino 5V pin. Then plug the other jumper wires into the correct I/O pins:

    Pilot LED's - 2-13 (in order)

    IR sensors - 22-45 (in order of sensor pairs)

  • 3
    Upload code

    Download the .ino file and upload the code to your Arduino Mega.

View all 7 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates