Arduino advice for a first timer

Hi everyone!

I am super excited about learning to play with Arduino, but I am bit stumped about which board I should buy. I am en Electronics Engineering major, but I haven't started the courses about electronics yet. I do know a bit of C++, so i wanted to get started with Arduino right away.

What I want to do for my first project is make a fan whose RPM depends on ambient temperature. So if temperature is high, RPM goes up, and vice versa. I would also like to have a seperate "mode" where it allows the user to switch from temperature controlled speed, to pre-defined speeds. So I figure I will need a temperature sensor, a button of sorts, a motor, and the board, ofcourse. the plan is to 3D print the fan blades and attach to the motor. Also, I would want to have an LCD readout of ambient temperature, and perhaps the mode the fan is on.

I need advice on what kind of board I should get, as there seem to be many types, and the Uno seems to be the general purpose one. I want to keep in mind future uses for it as well, and projects that I have in mind involve tracking gps coordinates of a drone, and some inputs from accelerometer sensors. So it would be nice if the board weighs less. Secondly, any advice of what kind of motor to use would also be greatly appreciated.

Thanks a ton in advance!


An Uno would be perfectly well able to do what you want and it is the best beginners board because most software and add-ons work with it.

The Nano is an Uno with a smaller footprint - but then you lose the physical compatibility with shields.

My recommendation is to start with an Uno and then at some future date, when you know more, consider which smaller board would be appropriate.

Planning and Implementing a Program

The Uno should be fine unless you need more inputs for user-input.

How big of a fan? i.e. 12V computer fans are common and easy to control. AC powered fans are a little trickier and you need to isolate the Arduino (and yourself) from the lethal power line voltages.

the plan is to 3D print the fan blades and attach to the motor.


If you haven't done so already, read through the [u]Arduino Language Reference[/u]. And, then read-through some of the example programs, and try a few of them.

Take it one small step at a time (the same way you develop a C++ software project). You can start with the input (temperature measurement) or output (motor speed control).

Since your goal is a motor speed control, I'd start with that. The Arduino can't directly supply the voltage & current required to power a motor and for a DC motor you'll need a transistor or MOSFET driver circuit and an appropriate power supply. You control the speed of a DC motor with [u]PWM[/u] the same way you [u]dim an LED[/u].

For temperature measurement, the [u]LM34/LM35[/u] is inexpensive and easy to use (or there are other semiconductor temperature sensors). Use the serial monitor (as in the [u]Analog Read Serial Example[/u]) for "see" the temperature sensor output and for testing/development/debugging purposes. (The Arduino's analog-to-digital converter won't directly read temperature... It gives you a numerical reading proportional to the voltage and you'll have to convert that to Fahrenheit or Centigrade in software.

Speaking of the serial monitor... Since the basic Arduino has no display, the serial monitor is your best debugging tool. You can "watch" variables and send-out messages about what your program is doing.

After you've got the motor control and temperature reading figured-out you can work on the LCD. (There's an LCD library.)

I am en Electronics Engineering major, but I haven't started the courses about electronics yet.

You'll start-out learning basic passive AC & DC circuits. Then semiconductors, op-amps, and basic logic circuits. It probably won't be until your 3rd or 4th year until you get into microcontrollers or anything useful/practical. But that's OK. Most Arduino hobbyists have little or no formal electronics or programming education.

Thank you for the amazing responses guys. DVDdoug thank you so much for all that information; I need to start reading up on the all the links that you have provided... I have ordered the Genuino Starter Kit, as it seemed to have most of the components I thought I would need, and going by what you have provided me with. As I wait for it to arrive, I will start learning the syntax for the Arduino Reference Language.




Start slow (to avoid frustration.)

Your 1st year of EE will provide you with some life-long knowledge that will help with the Arduino: Voltage, Current, Resistance, and Power calculations all apply to the uC pins.

You know a little C++. Arduino commands and language are generally built from C++ as are most libraries although this is not mandatory. Low-level core functions are generally C to reduce resources. As you learn C++ on a PC, realize that when programming a uC some techniques are not appropriate!

When you write code, try to keep the idea of "re-use" in mind - that is, write an LCD displag routune to be used over-and-over rather than wasting time rewriting each time. Evolve routines as you move forward... try to do so in such a way that many generations down line, that revised LCD routindcould be "dropped" into older code without breaking something! Not always possible, but should be a goal.

Good luck,


I'll agree with Robin2 on the UNO as the first board and add some more thoughts.

The UNO is to prototype, designed for the bench and designed to take daughter cards called shields.

Most of the shields are very general purpose therefore are more general purpose and not specific purpose. you cannot get every style LCD or every motor controller.

A NANO costs less than $3 and you can port the program directly from the UNO to the NANO without any modifications whatsoever.

The NANO is not a direct clone as some of the on-board chips are different some power ratings change, but the pin-out allows you to move up to the NANO.

The UNO will typically have a DIP chip and the UNO has 6 Analogue inputs.
the NANO uses the SMT chip and has 8 Analog inputs. means you cannot always go from the NANO to the UNO.

Once you find what you need in size, you can use a NANO for your embedded projects, for $5 you should care. and having your bench UNO allows you to keep playing.

As for shields, the RTC/ SD is nice one of my favourites.
and the 16x2 LCD with buttons offers some benefits at the cost of dedicated pins for the LCD.

I’ll agree with Robin2 on the UNO as the first board and add some more thoughts.

The UNO is to prototype, designed for the bench and designed to take daughter cards called shields.

I used to say this when an UNO was $25 (or more.) But today on eBay, with free shipping, an UNO clone is under $4.

But I can see where the low-cost might allow the UNO clone to be deployed as a prototype or even deployed as-is in situations where size does not matter.