The Arduino Integrated Development Environment (IDE) is the programming software that interfaces your Arduino board with the program. The Arduino IDE software features a compiler that transforms your program into machine language that can be understood by the Arduino board.
The Arduino IDE is a derivative of Processing. It’s open source and can be used to program boards other than the Arduino.
There are two ways to create a program for your Arduino board:
Line-of-code programming, which is what we’re going to do here.
In other words, you’ll write the lines of code in the Arduino language yourself, without the need for graphical aids.
You can download the Arduino IDE software from the Arduino website. It’s available on Windows, Mac and Linux, and is open source.
You can also find it on your system’s store by typing Arduino on the Microsoft Store, Apple Store and Linux App store.
The Arduino IDE software has a number of features that you’ll find useful when making your programs.
We will now look at the most useful functions of the Arduino IDE menu.
File: contains examples of programs already created. You can also change the text font in the preferences, or print your program.
Edit: we can copy our program to put it directly on the Arduino forum, or in html. You can also find a word in your program, and increase the font size.
Sketch: This menu contains the same functions as the buttons below: verification, uploading. You can also add a file to your project and manage libraries.
Tools: The tools section contains the library manager, the serial monitor and the various Arduino boards you need to select for uploading.
Help: Contains information on the software version and how to use it.
Let’s take a look at the most useful buttons in the Arduino IDE.
The verify button enables the software to compile your program, i.e. transform it into machine language.
This will check that all syntax is correct, i.e. that you haven’t forgotten a semicolon or parenthesis, for example. If you have a compilation problem, you can watch our course on it.
The transfer button sends your program to your Arduino board.
The software will first check your program as with the check function, so you’ll also get syntax problems displayed.
This program will then be sent via a cable to the Arduino board. If you have problems uploading, you can take a look at our course on uploading.
This button allows you to create a new program. The software will open a second tab, so you won’t lose your first project.
This button opens an existing program. The program will open in a new page.
It saves your program.
The Arduino language is derived from the simplified C and C++ languages. These two languages are widely used for programming electronic boards, so it’s logical that the Arduino language is inspired by them. When you open a new program, you’ll see two functions: void setup and void loop. Let’s see how they work.
The void setup function is launched once at the start of the program.
It can be used to assign a value to a variable, associate a component with a pin and initialize a library or serial monitor.
The void loop function will loop through your program.
We’ll now take a look at how a program is structured, to give you an idea of what you need to control your components.
There are two important rules for starting to code in the Arduino language:
All written actions must be terminated by a semicolon so that the arduino board understands that the action has been completed.
All functions begin and end with square brackets, so that the arduino board understands when the function begins and ends.
These are two things we often forget when we write our program, and which will cause problems when we check it.
Now let’s move on to the program.
Here’s an example of the program we’re going to describe in detail:
const int Led = 2; // declare the Led
void setup() { //initialization function
pinMode(Led, OUTPUT); //Led is assigned as output pin
}
void loop() { //main function executes ad infinitum
digitalWrite(Led, HIGH); //turn Led on
}
The first part comes before the void setup. This is where you declare your program’s variables.
Variables are very useful in a program because they represent the component you want to control. It’s by changing the state of the variable that your LED will turn on or off.
So if you want to turn an LED on, you can declare an LED variable.
Before the void setup, you can also call the libraries you’ll need to drive your component. To do this, you need to call your library using square brackets.
We’ll look at a few key commands that are often useful before the void setup:
#include "Arduino Factory.h" // We include the library we're going to need
const int pin_INTERRUPTEUR = 2; // The switch is attached to pin 2
The void setup is a function that is executed only once at the start of the program. It allows you to assign a value to a variable, associate a component with a pin and initialize a library or serial monitor.
Here are a few key commands often used in a void setup:
void setup(){
Serial.begin(9600); // Serial monitor initialization at 9600 bit/s or bauds.
Serial.println("IR Receiver Button Decode"); // A message is written to the serial monitor at the start of the program and once
pinMode(2, OUTPUT); // Initialize pin 2 at output
}
The void loop function loops through your program. This function contains all the actions in your program. This is where you turn on a LED, control a motor…
We’ll look at a few key commands often used in a void loop:
void loop () {
boolean buttonstatus = digitalRead(pin_INTERRUPTEUR); // Retrieves the status of the button connected to a digital pin
analogWrite(led_Broche, HIGH); // Send the value to the LED connected to analog
scanf("%d", &value); // Asks user to enter a number
delay(30); // Wait before asking again
}
We’ll now take a look at a number of functions you’ll come across frequently in programs.
The for instruction is used to repeat a block of instructions contained within braces. It’s an incrementing counter that stops once the counter has reached the end of its increment. It is used for repetitive operations.
for (int i = 0; i <= 255; i++) {
//thing you want to do
}
Here, the for loop starts at 0 and increments to 255. This means that the instruction block will execute 255 times.
The if statement checks an instruction and executes the instruction block in the brace if the condition is true.
int x=150;
if (x > 120) {
// Code you want to execute
}
Here we can see that the code executes only if x is greater than 120.
A while loop executes indefinitely until the value in the parenthesis becomes false.
var = 0;
while (var < 200) {
// We do something that will be repeated 200 times.
var++;
}
Here, the while loop will run until the var variable is greater than 200.
In many programs, you’ll see delays in the middle of execution, so that the user can see the value returned by the sensor, for example. This works with the delay() function, which is in milliseconds:
delay(1000); // Wait one second
On the Arduino IDE, you’ll find pre-made codes. They can be useful to see how a component works and to test it quickly. You’ll find these codes in files and examples.
The example section contains a huge amount of code that will be useful whether you’re a beginner or an expert. You can use it as a code base for your projects, and then modify it to suit your needs!
Once you’ve finished your program, it’s time to check that it works. To do this, you need to click on the verification button we saw earlier.
If it says “Done compiling”, then your code is correct. This doesn’t mean that it will do what you want, but it does mean that there are no syntax errors.
If you have a red line, you’ve probably made a syntax error.
If you have problems clicking on check program, there’s a syntax error in your code. You can take a look at our course on compilation problems, which will help you resolve this error.
To operate a particular component, a library may be required.
Libraries are a set of functions designed to simplify the use of a sensor or functionality.
As soon as an Arduino program contains a line beginning with #include, it calls a library.
Arduino IDE allows you to install and manage libraries in .zip or from the library manager. To find out more, take a look at our course on libraries!
Once the program has been checked and completed, it’s time to upload it to the board. To do this, you need to connect your Arduino board to your computer.
The Arduino IDE software will not download the program in the same way to an Arduino Uno or Nano board, because the microprocessor inside is not the same. You must therefore specify which board you have chosen in the board manager:
If you can’t find your board in the list, you can click on Board Manager and download the module corresponding to your board.
We’re now going to choose the COM port to which the Arduino board is connected. Often, the Arduino IDE software will suggest it directly, as follows:
All that’s left is to upload the program using the button we saw earlier. If you get an error, you’re having an upload problem.
When uploading your program, you may encounter problems, such as an unrecognized Arduino board. You can take a look at our course on uploading problems, which covers most problems.
The serial monitor is an interface between the user and the Arduino board, which receives information from the Arduino board and displays it on the Arduino IDE. This information may be the temperature in degrees given by a sensor, or the angle of a servomotor.
The serial monitor can only be opened when the Arduino board is connected and the program is uploaded to it. It can be opened with the button on the left.
The user can also enter values from the serial monitor to control a servomotor, for example.
To have values on the serial monitor, you must set it up in your code:
void setup() {
Serial.begin(9600); // Initialize communication with serial monitor (9600 bits/s)
}
void loop() {
Serial.print("Distance in cm:"); // Display on serial monitor on same line
Serial.println(distanceSensor.measureDistanceCm()); // Skip one line after the text.
}
The serial monitor must be set to a precise number of bit/s, in this case 9600. This will be useful for capturing information from the serial monitor. The serial monitor and the value you set on the Arduino board must be the same. You can leave the default 9600 bit/s if you don’t have a project that requires a precise value.
Arduino IDE is just one of many programming environments. The Arduino is an open source world with numerous solutions for programming your board. In particular, there are block programming environments, and environments for programming your board in Python…
Ardublock is a module that can be added to the Arduino IDE.
It lets you program in block form. You can create variables, loops and control your components. Once your code is complete, it is displayed directly as a program in the Arduino IDE.
b) Pyfirmata
Ever wanted to control your Arduino board from your computer using Python rather than the Arduino language? You’ve got Pyfirmata, a Python library based on the Firmata protocol.