Actually I'm engineer but I'm totally new to Arduino. Also, my knowledge in programming is considered to be moderate or less.
I'd like to ask about "serial monitor", what does it mean and what's its function??
Also, when i went to download the Arduino programming language, I found 4 different versions as follows:
arduino-1.0.5-r2-windows
arduino-1.5.6-r2-windows
arduino-nightly-windows
Intel_Galileo_Arduino_SW_1.5.3_on_Windows_v1.0.0
what are the main differences between them and which one I would use for now?
The serial monitor is a way to get your program to send messages from your program to your monitor. For example, if you are receiving a value from a sensor connected to the arduino and you save it as variable x, you can do Serial.println(x);
to print the value to your monitor. The monitor can be navigated to by clicking on the last button in the toolbar (see link in reply above). As for which arduino version to use, I personally use arduino-1.0.5-r2-windows.
These are the two main distributions for windows machines. The 1.5xxxx is a beta that supports the 32 bit Due board along with the other arduino boards
the 1.0.5r2 is the stable release for all the 8 bit boards. So it depends on which board you use. I've stuck with using the 1.0xxx series as I own no Due boards.
This version works fine for all older Arduino boards also. It has a big plus for me: The Windows version allows the list of sketches and libraries to scroll. I have so many of both that I can not see many of the entries in the earlier version.
It also gives a nice report of the amount of program and RAM memory used by a sketch when you Verify it.
I just wanted to add, that the Serial Monitor is mostly a tool to help debug your program. However the Arduino's Serial port(s) can be used for much more than just sending debug messages to the Serial Monitor: to communicate with other devices or programs, such as another Arduino, or a custom program on your PC, or even to your smartphone via a cheap Serial <-> Bluetooth module (HC-07 for example).