Arduino Basic Tutorial

Understanding Arduino Variables & Constants


Understanding how variables work in Arduino programming is fundamental for any enthusiast or hobbyist diving into the world of electronics and microcontrollers. Variables serve as the building blocks for storing and manipulating data, enabling the creation of dynamic and responsive Arduino sketches. In this article, we’ll embark on a comprehensive exploration of Arduino variables, covering essential concepts such as variable scope, declaration, types, and naming conventions. Whether you’re just starting your Arduino journey or seeking to deepen your understanding of programming with this versatile platform, this guide will equip you with the knowledge and insights needed to harness the full potential of variables in Arduino projects. Let’s delve into the fascinating realm of Arduino variables and unleash the creativity they enable in our electronic endeavors.

Arduino Variables

Variable Scope in Arduino:

In Arduino, the scope of a variable determines where it can be accessed and used. Variables can have either a global scope or a local scope. Global variables are declared outside of any function and can be accessed by any part of the program.  For example

In this sketch, ledPin is declared outside any function, making it a global variable. It can be accessed and modified from both the setup() and loop() functions.

They retain their value even when the function in which they were declared has finished executing. Global variables are useful when you need to share data between multiple functions or when you want to store values that need to persist throughout the program.

Local variables, on the other hand, are declared within a specific function and can only be accessed within that function. For example

in this sketch, the variable x is declared within the setup() function and can only be accessed within that function. Once the setup() function completes execution, x is no longer available.

They are created when the function is called and are destroyed when the function finishes executing. Local variables are useful when you need to store temporary data or when you want to encapsulate data within a specific function.

It’s important to note that local variables take precedence over global variables if they have the same name. This means that if you have a local variable with the same name as a global variable, the local variable will be used within the function instead of the global variable. This can be useful for creating temporary variables that are only needed within a specific function, without affecting the value of the global variable.

Another important concept related to variable scope is the concept of variable shadowing. Variable shadowing occurs when a local variable has the same name as a variable in an outer scope. In this case, the local variable “shadows” the outer variable, meaning that the outer variable is no longer accessible within the function. This can lead to confusion and bugs, so it’s generally best to avoid variable shadowing by using unique variable names.

Understanding variable scope is crucial for writing clean and efficient Arduino code. By properly managing the scope of your variables, you can ensure that your code is organized, easy to understand, and free from unexpected side effects.

Arduino Variables Declaration:

Declaring and using variables is a fundamental concept in programming. In Arduino, variables are used to store and manipulate data. When declaring a variable, you need to specify its name and type. The name should be descriptive and meaningful so that it is easy to understand the purpose of the variable.

Arduino supports various types of variables, including integers, floating-point numbers, characters, and boolean values. The choice of variable type depends on the type of data you want to store. For example, if you want to store whole numbers, you can use an integer variable like:

int sensorValue;

Once a variable is declared, you can assign a value to it using the assignment operator (=). This allows you to store data in the variable for later use. In the example, we assigned the value 10 to the “sensorValue” variable:

sensorValue = 10;

Variables can also be initialized during declaration, which means assigning an initial value to the variable at the same time it is declared. This can be done by specifying the initial value after the variable name, separated by an equals sign. For example:

int sensorValue = 10;

In this case, we declared the “sensorValue” variable and assigned an initial value of 10 to it. This is useful when you already know the initial value of the variable and want to save some lines of code.

Once you have assigned values to variables, you can perform operations on them. In Arduino, you can use arithmetic operators like addition (+), subtraction (-), multiplication (*), and division (/) to manipulate numerical variables. For example:

int x = 5;

int y = 3;

int sum = x + y;

In this example, we declared three integer variables: “x,” “y,” and “sum.” We assigned the values 5 and 3 to “x” and “y” respectively. The value of “sum” is then calculated by adding “x” and “y” together. In this case, the value of “sum” would be 8.

Variables are essential in programming as they allow you to store and manipulate data dynamically. By using variables effectively, you can create more flexible and powerful Arduino programs.

Types of Variables in Arduino

Arduino supports several types of variables, each designed to hold a specific kind of data. Here are some of the commonly used variable types in Arduino:


Void is a non-data type used to define functions that do not return any value. It is commonly used for functions that perform actions without returning a result. Example

Integer Variables:

Integer variables store whole numbers (both positive and negative) without decimal points. They are commonly used for counting, indexing, and arithmetic operations.

int count = 5;

Floating-Point Variables:

Floating-point variables store numbers with decimal points. They are suitable for representing values that require precision, such as sensor readings or mathematical calculations involving fractions.

float temperature = 25.5;

Character Variables: Character variables store single ASCII characters. They are often used for handling individual characters or small strings of text.

char grade = ‘A’;

Boolean Variables:

Boolean variables can have only two values: true or false. They are commonly used for conditional statements and logical operations.

bool isOn = true;

Arrays Variables:

Arrays are collections of variables of the same data type. They allow storing multiple values under a single variable name, accessible by index.

int values[5] = {10, 20, 30, 40, 50};

String Variables:

String variables are used to store sequences of characters. They are commonly used for handling textual data.

String message = “Hello, Arduino!”;

Byte Variables:

Byte variables store integer values from 0 to 255. They are useful for conserving memory when dealing with small positive integers.

byte brightness = 150;

Long Variables:

Long variables store large integer values. They are useful when dealing with numbers that exceed the range of int.

long population = 789456123;

Unsigned Variables:

Unsigned variables store only positive numbers or zero. They are useful when negative values are not required.

unsigned int distance = 1000;

Double Variables:

Double variables store double-precision floating-point numbers, providing greater precision than float.

double pi = 3.14159265359;

Short Variables:

Short variables store smaller integer values than int, saving memory when space is a concern.

short voltage = 120;

Unsigned Long Variables:

Unsigned long variables store large positive integer values without sign.

unsigned long timestamp = 1623153125;

Rules of Variable Naming in Arduino

In Arduino programming, variable names must adhere to specific rules to ensure clarity, consistency, and compatibility with the language syntax. Here are the rules for variable naming in Arduino:

Start with a letter or underscore: Variable names must begin with either a letter (a-z, A-Z) or an underscore (_).

Can contain letters, numbers, and underscores: Following the first character, variable names can consist of letters (a-z, A-Z), digits (0-9), and underscores (_).

Avoid reserved keywords: Avoid using reserved keywords such as “int”, “void”, “if”, “while”, etc., as variable names. These keywords have predefined meanings in Arduino programming and cannot be used as identifiers.

Case-sensitive: Arduino variable names are case-sensitive, meaning “myVariable” and “myvariable” would be treated as two separate variables.

Meaningful and descriptive: Choose variable names that reflect the purpose or content of the variable. This enhances code readability and understanding.

Avoid special characters: Avoid using special characters like !, @, #, $, %, etc., in variable names. Stick to alphanumeric characters and underscores for simplicity and compatibility.

Use camelCase or underscore_case: While there’s no strict rule, it’s a common convention in Arduino programming to use either camelCase (e.g., myVariableName) or underscore_case (e.g., my_variable_name) for naming variables. Choose one style and maintain consistency throughout your codebase.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button