Another place to get free yarn is at local churches. If you want to make prayer shawls they will give you the yarn.
I went with my sister on Yarn Day and they spend over $1,000 worth of yarn. When done with some shawls the minister will say a prayer on them. and they pass them out to needy people. It's a great cause.