First of all if you want to do it yourself using an Arduino then I would recommend using the Arduino Nano to save on weight.
If you don't want to rely on noises (as used by some battery monitors) then you could program the Arduino to trigger something off, maybe a visible LED or some other physical thing on the quadcopter. Or it could simply gently reduce power to all motors so that the quad lands slowly and safely.
You could also consider the use of telemetry (i.e. sending back information from the quadcopter) if your r/c transmitter supports it. This will give you a real time reading of the battery voltage as well as temperature etc.
Many r/c transmitters also allow you to set a simple timer on the transmitter which you would set based on ground testing to know when approximately you should bring the quadcopter back to base.This is the least technical of the solutions but apparently works well if you allow a bit of safety leeway to compensate for variations due to varying flight conditions.