Arduino Basics

The software side of this Micro computing world simply Must begin with IDE. Here there are numerous Choices.

Arduino has an excellent IDE. Their Version 1, was a bit lacking as an IDE, (and still available), but they have since produced a Arduino IDE Version 2 which has completely corrected the shortcomings of version 1. This is an excellent choice, as it behaves predictively if you are used to using IDE’s. Another plus is that it FREE.

MS Code is a FREE Alternative to the Arduino IDE. If you are an MS Code user, than you can install the Extension PlatformIO IDE, And turn MS Code into an IDE for Arduino. It is difficult to compare these two other than say they both are good; but they “think” quite a bit differently.

There is a Third Choice but it is Not free. This option is ProgramINO. I have provided a link to their website. It is not terribly expensive at 29 pounds. This IDE includes board graphics and Pin schematics, I think even wiring schematics.

Lesser known and used are

  • Eclipse has an Arduino If you’re an Eclipse user. I am not.
  • Particle has an online IDE which I understand is pretty Good. I have used this a LONG time ago, and it was not bad.
  • I remember a plugin to to the Visual Studio IDE…

As I continue I’ll be using the a mixture of the first two choices, Arduino IDE Version 2, and MS Code PlatformIO.

With “normal” programming languages, you have One Machine (maybe Two) that you are developing on and For. In the Micro Computing world you a woring on Either Windows, Mac, or Linux, BUT your code is destine for any of a Hundred different Boards. Boards like Uno, Mega, 8266,ESP32, and hundred of other names, each with its own configurations. Yes you are working ON Windows but your code will be compiled for a completely different computer.

In the Micro world there are Board Managers who handle/Control what Micro boards you will be deploying to. In Addition there are hundreds if not thousands of sensors, buttons. SD Cards, switches, buzzers, LED, Lights, servos, motors, cameras, Screens that you can attach to your Micro Board to utilize. Each flavor of these requires Drivers or Libraries to install which lets your code interact with.

Very different that building applications with C#, Java, or PureBasic which manage Data or images on a screen, now you can manipulate the physical world around you! Read a temperature gauge, and if it’s warm turn ON a fan!

You can control a vehicle driving around the floor, open and close an artificial hand.

This is in NO way an exhaustive look a boards, just mentioning “some” of the boards I’ve used.

NamePins
Analog/Digital
Memory/Speed/Wifi
UNO 6/1332KB/16 Mhz/NO
MEGA16/54256KB/16 Mhz/NO
ESP82661/11512KB-4MB/80-160Mhz/Yes
ESP32~/~25512KB/240Mhz/Yes

As you can see boards vary greatly! In every way, pin counts, speed memory size. These are some of the reasons there are Board Managers. But it also factors into your Projects, does your project need WiFi? How about Ethernet? How many and what Type Pins does it Need? What Sensors? What Interface? Answers to these and many other questions will determine which board we will choose.

Boards support Either 3.3 Volt or 5 Volt.

Complicating things a bit further, a pin, Is Not a pin, Is Not A PIN!

This is to say there are Many Type of Pins and via Pins are numerous Interface Types. I’ll discuss these here:

InterfaceShort DescriptionQty
AnalogDecimal / Floats0-10
DigitalIntegers1-50
I2CUtilizes 2 pins, SDA, SCL
Supports multiple devices
1-3
SPIUses 4 pins, SCK, MOIS, MISO, CS
SD Cards, Radios, etc, Single device
1-3
UARTRX, TX 1-4

Every board supports these interfaces, some more than others as you can see by the counts. Every board is different.