IMPORTANT INFORMATION ABOUT THE ARDUINO MICROS
Before proceeding any further with this project, it is advisable to establish a common ground of (hard to get) knowledge and experience with Arduino. I apologise to those experienced who are aware of what follows, but I think this info will be useful to many. Please bear in mind that the discussion which follows concerns ONLY the following Micros: Arduino UNO, Arduino ZERO, Arduino M0 and Arduino M0 PRO. I have no experience whatsoever of the many other Arduino Micros. Arduino ZERO is marketed by Arduino c.c., while Arduino M0 and Arduino M0 PRO are marketed by Arduino Org. All these boards use the same, very powerful ARM Processor, but the Bootloaders and IDES are different, as explained below.
1) IDE SOURCES
Arduino mIcro operation is IDE based. When an IDE is selected and downloaded, not only the basic software, but the Micro drivers, basic software examples ("sketches") and libraries also get to the PC HD. A library is a self contained software module that can be added to a sketch to easily provide functionalities which would otherwise require much heavier software writing. So libraries are very useful. With Arduino UNO the I2C communications are based on the WIRE library (Wire.h). So the relationship between the chosen IDE and the libraries one needs to use is a very important issue.
Another important point to remeber is this: if you have an Arduino IDE resident on the PC and you wish to download another IDE, no matter if same, earlier or later, the System will delete the resident IDE and install the newly downloaded specimen. Two IDES can co-exist on the same PC only if you install a Virtual Machine on it. Further complication is introduced by the Operating System you use, as described below.
Original IDEs, which have been available from the Developers, were and are available from the Arduino c.c. site. Unfortunately in the course of 2015 the Developers split into two groups and now we have the additional Arduino org. site. Because of controversy, the IDE's of the two Organisations are NOT compatible, for a variety of reasons, the most important being that they use different Bootloaders and accept different libraries. According to my experience:
2) Arduino c.c
For Arduino UNO use IDE 1.0.6. To have better Serial Monitor functionality you can add Arduino ERW which can co-exist with IDE 1.0.6. All 8 Bit sketches which will be downloaded work best with 1.0.6, for the simple reason that this IDE accepts the WIRE as well as many old, but very well established Libraries. If you work with the Windows XP O.S., keep in mind never to disconnect the Micro from the USB cable with an open sketch. At times, doing this will corrupt the drivers and the PC will not reconize the Micro any more, with big difficulties with the COM PORT, compelling you to re-install the IDE. To recover operation in one extreme case, I had to install IDE 1.6.7 (more on this IDE below) and once the PC recognized the Micro, re-install IDE 1.0.6. To summarise: for simple operation Windows XP + IDE 1.0.6 + ERW are a very good and reliable set-up. Arduino c.c. is the vendor of the powerful Arduino ZERO, with Programming and Native USB ports equipped with the new ARM Processor.
If you are prepared to write (or look for) libraries which are not accepted any more by IDEs 1.6.6, 1.6.7 or 1.6.8 (newest), you can install one of these. They handle the COM PORT connections between PC and Micro better and seldom lose the COM PORT. Also they solve the problem of auto-opening of the Serial Port that required the ERW addition with IDE 1.0.6. Unfortunately these newer IDES do not recognise the WIRE and several other useful Libraries any more. Amended 10/5/16: IDE 1.6.6 and later work fine with the WIRE library. Apologies for this wrong info! On the other hand these IDES work well with Windows 7 and 8 and I have read they also work with Windows 10. Furthermore when upgrading to Arduino ZERO you will have to say good-bye to IDE 1.0.6 in any case, because 1.6.6 or later is required with this new board.
3) Arduino org.
This Developer offers IDE 1.7.8 or later. This IDE does not work with Arduino ZERO, but only with Arduino M0 and Arduino M0 PRO. The converse is also true: if you buy an M0, it will not work with IDE 1.6.7. the M0 is a low cost version of the M0 PRO and does not have the in-board EDBG chip which provides a NATIVE USB port and allows new Bootloader upload (as the ZERO of Arduino c.c.) I have not tested Arduino UNO with IDE 1.7.8, because I did not see any point in moving from IDE 1.0.6 with this device. The new ZERO/M0/M0 PRO boards incorporate a new and very powerful ARM processor and both the Developers look far behind in software and information development, so that the users have to write their own commands direct to the processor. Now the remarkable thing that happened to me is that, if you develop a sketch with ZERO, it will not work with M0 or M0 PRO, even though you are using standard ARM commands.
After having worked with devices & IDES from both Developers, I have decided to stick with Ardino c.c. and with their IDE's, both for Arduino UNO and Arduino ZERO. An added bonus is that going from Arduino UNO (8 Bit) to Arduino ZERO (up to 16 Bit) the software will change, but the circuit diagrams and the shields will stay (almost) the same.
5) Arduino UNO clones
We have now come to the point where Arduino UNO clones work faultlessly as the original, while costing 50 to 75% less. All the project under description has been tested with an original and then with a clone without the slightest problem. The only thing to remember is that clones generally need an additional set of drivers, as they use different circuitry for the USB communications with the PC.