I've tried to do a bit of research and it sounds like it's fairly straight forward to control a PMW fan with an arduino. But I've seen some suggestions that arduino's may not be able to deliver fast enough PMW speeds to allow fans such as this to perform at their full potential (which I will require). Is this true?
If I can properly control these fans with an arduino (Uno is my intention), how would you recommend I power the fans from the mains power? Should I just get a basic computer PSU, or is something else more suitable?
If you simply use analogWrite() the PWM frequency is set to 1kHz which is not sufficient for operating the PC fan. But you definitely can achieve the needed 25kHz signal with the hardware of an Arduino UNO.
I would expect your 3D printer to already contain some sort of 12V power supply. If ever possible I would use that one.
How would I go about achieving the 25kHz signal without using analogWrite()?
You can set the PWM frequency that your pins put out. That 1 kHz is the default.
You'll also need a MOSFET to control the power to/from the fans, an n-channel, logic level type, such as the IRL540. You can't connect them to the Arduino pins directly.
Now from what I've managed to gather from bits I've read, it's only possible to control 2x PWM fans at 25mHz with a single Arduino Uno, so I'm imagining to do this I'd need 3 Unos? One for each pair of fans, then an overall arduino which controls the final fan as well as the two screens and reads the temperature sensors and potentiometers.
One Mega2560 should be enough to control at least 8 fans.If I understood your description correctly you need to control only 3 PWM signals, an UNO should be able to handle that. If you take I2C LCD moduls the rest should be no problem too.
In that case you can also get a PWM port expander. Much easier to handle than multiple Arduinos. I haven't checked the specs of that one, just given as example.
If the value you supply a fan is a relative figure rather than an exact figure this would be the case. From what I understand, when controlling an PWM fan, you supply it with a figure of 0-255 (off to full speed)? If this is the case, then I could send the same value (eg 122) to both the in and out fans of one section (even though they are different fans capable of different top speeds) and this would set them both to 50%?
A Mega does sound an attractive option if it will be capable of supplying 25mHz PWM to all my fans from a single device without it struggling, especially if it can also cope with the rest of my requirements!
Are these easy to work with in terms of programming multiple PWM devices through one of these?
A PWM signal is a rectangle wave where the percentage of the HIGH value of one cycle is equal to the PWM value. So if you set the value to 127 you should get a PWM signal with 50% duty. The translation of this PWM to actual rotations is done by the fan.I don't see any problems here.Yes, these chips are quite easy to work with. The problem might be to get one that support 25kHz.