Review of Arduino Uno Board

View table of contents

RoadTest: Arduino Uno Board

Author: migration.user

Creation date:

Evaluation Type: Independent Products

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Raspberry PI. But as of the time of this review, I have not received my backordered unit, yet, from the Raspberry PI vendor.

What were the biggest problems encountered?: Using a digital input pin as a "peak detector" was a bit difficult to manage through hardware and software configuration, but it may have mainly been my fault, being a "newbie" at the Arduino architecture.

Detailed Review:

I was glad to find that the Arduino board was relatively small in size, making it easy to use for microcontrolled hardware in a limited space.

 

Setting my impressions of the Arduino IDE itself aside, the first thing I tried to get working was a 128x64 HD44780 based LCD dot matrix display. After playing around with various third party libraries, I was soon making characters, dots, lines, etc. appear on the display. I didn't find the process too difficult to understand, I was easily able to connect and configure the appropriate I/O lines to drive the display. Since output from a microcontoller is a very important aspect of the architecture, being able to drive an LCD display like this with only a few wires and existing code is a good thing. I like how managable it is with the available third party software libraries.

 

On a side note, I mainly powered the board with the USB connection, but it works just as well when using batteries or an A/C adaptor.

 

The next thing I wanted to do is test the I/O ports by attaching a makeshift antenna to one of the ports, then looping through code to count the "peaks" of any sine wave signal induced on the wire. The easiest way I found to do that is use the existing energy being emanated from the household wiring. Since I'm in the USA, I wrote the timing values in the code to check for peaks every 1/60 of a second. Using two second sample periods, if I had a majority of detected peak values, then it was assumed I was detecting 60Hz signals (or multiples thereof). Changing the timing values would have altered the moment when peak detection timing could occur. Therefore, when the timing values were correct, the detection was accurate.

 

I needed to determine the correct timing value. Since there was an unknown timing overhead in the actual execution of code, I cheated a bit and used a trimmer potentiometer on an analog input to create a "number" as a seed value for the timing loop, which I added to a static timing value. I calibrated the loop by turning the potentiometer and got as close to 60Hz as I could.

 

How did I know I was at 60Hz? I held the board, antenna, and display near a light switch. The display was configured to "sweep" one pixel at a time and show an indication that it detected something. Over time, as the antenna got nearer a 60Hz signal, the display was programmed to draw a dot higher on the display. This assumed the code would work as expected. I'm happy to note that it did! At a certain point on the potentiometer, the display would indicate the presense of a signal. As I backed away from the lightswitch, the signal could not be detected anymore. This "detector circuit" worked consistently at other light switches throughout the house and even near known points in the wall where electrical wires run through.

 

It was the first idea that came to mind when trying to implement a useful input and output for the Arduino board. Who knows how far this "Signal Detector" concept could go. I simply wanted to test out various aspects of the Arduino system to determine its ease of use.

 

My opinion of the Arduino board is quite positive. It's not very fast compared to other microcontroller solutions that are out there, if for the latter, price is no object, but it has proved its usefulness to me in the low-cost category. I, myself, would end up putting the Arduino to use in other projects, such as robotics and other hardware control.

 

As for the IDE, I'll just state that everybody is different. I found the IDE mildly cumbersome, but not difficult to use. Others may find its operation second nature. So, lets just set my official opinion at, "the IDE will most likely continue to grow up over time"

Anonymous
  • That idea of using the analogue ports as an EMF scanner is also mentioned in the book "Environmental Monitoring with Arduino" but they don't try to do the frequency detection you mention. I'm not quite sure why you needed to calibrate the counts over the 2 second period, it should have been good enough to look for 120 pulses.

     

    I don't know about the USA but in the UK there are slight variations in the mains frequency depending on the power domain http://www.dynamicdemand.co.uk/grid.htm#

     

    So perhaps your monitor could be adapted to check for this variation. Check if the demand goes up during the commercial break for the Superbowl etc.

     

    If you want to get serious about frequency detection you could have a look at the FFT library http://wiki.openmusiclabs.com/wiki/Example

     

    I agree that the IDE is a little cumersome at times, in particular I found libraries awkward to use, but that's likely because I did not read the manual and extract the 3rd party libraries into the libraries sub folder.