Similar problem solved by hard setting the wireless channel!
I had similar problems detecting my Wifi connection at time from my laptop. The issue was that the router (a relatively new one) was using a channel not supported by my laptop WLAN card.
The router channel selection was set to Auto and the current channel was set to 13 where as my laptop does not even support channel 13.
To check the channel setting on your Wifi router: Go to the router configuration (usually 192.168.1.1), go to the Wireless option and look for an option which deals with Channels. If this is set to auto, you should usually see which Channel your router is using.
To check the channel setting for your Laptop WLAN card (Windows 7):
1. Go to "Network and Sharing Center" in Control Panel
2. Click on Change Adapter Settings
3. Right click the WLAN device and select Properties
4. In Networking tab, click on Configure
5. In Advanced tab, go to WZC IBSS Channel Number property and look at the value.
6. If this value differs from your router value, you might have trouble detecting the Wifi connection.
You can use a utility called inSSIDer or an android app called Wifi Analyzer as well, to find out which channel your router is using. You can then switch to manual selection of channel on router and select an appropriate channel which is supported by both your router and laptop.
Hope this helps!