Urgent help needed - relay with load resetting Arduino

I have been developing a basketball scoreboard with Arduino UNO r3 and Big 7-segments displays:

http://www.sureelectronics.net/goods.php?id=721

Here you can find more information if you are interested:
http://code.google.com/p/display-group/
https://plus.google.com/photos/109652469005118520122/albums/5799213099932281809

I am using this power supply:
http://www.ebay.it/itm/300761494964?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

I decide to user a car horn to signal the end of the period, like this one, at 12v 5a:
http://www.ebay.it/itm/310690188112?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

This board with a relay and a phototransistor has everything i needed, and is controllable directly from Arduino:

The board is powered from Arduino (5v and GND) and output 8 is used to switch the relay. Arduino power also a small controller with 12 buttons to control the scoreboard, using 3 analog inputs, as you can see in the electrical layout I have attached. (I am not a professional so the layout is not perfect: I used the most similar symbol for some components.. like the display).

If I trigger the relay without a load everything goes well (I can hear the relay click), but if I connect the horn, as soon as it is turned on, and for all the time it's on, all the displays visualize "8" (all the segment are turned on).
When the relay switches the horn back off (after a time from the cpu), all the displays show the correct digit again. So it obvious that the cpu did not reset.

I have heard that I should decouple the power line of the horn from the reset of the circuit, because of some spikes at the relay activation.
The whole circuit is working pretty well, but I would like to use the horn without having the display going crazy! XD
Do you have any ideas?

Thanks in advance!!

Main.pdf (40.9 KB)

Main.sch (246 KB)