I tried to make this as simple as possible. Basically the arduino reads the lm35 value which I send to an array to get an average somewhat stable reading. Then I convert it to celsius with the formula found on http://www.learningaboutelectronics.com/Articles/LM35-temperature-sensor-circuit.php. I then filtered it out even more by adding a check, which checks to see if the readings are +-1-2 degrees from the previous reading. This part is essential and the most time consuming to making this work properly. It also prevents your computer from sounding like it's revving its engine because I've found that the temperature sensor fluctuates 1-9 degrees randomly without it. Even after getting an average reading. I used millis to multitask so that the controller can read and adjust each fan independently from the other fans based on its own sensor. Figuring out how to map the output was tricky and took almost as long as the second filter, but once I had it I was able to figure out my limits easily. Even though it is working like I want it to I am still not satisfied with it. In the coming weeks I will be building a better controller for it because I don't like the layout and the components I used for this one.