Arduino · material didático

Cap. 1 — Programando com Arduino

Prof. Clayton J A Silva Rev 2026.2

1. Programando com Arduino

1.1 O que é Arduino?

O Arduino é uma plataforma de hardware e software open-source que facilita a criação de projetos eletrônicos. Usando a linguagem de programação baseada em C/C++, os usuários podem escrever programas que controlam o comportamento de microcontroladores, permitindo que dispositivos físicos interajam com o mundo ao seu redor.

1.2 O que é um programa para Arduino?

Um programa para Arduino, também chamado de sketch, é um conjunto de instruções que seguem a sintaxe e semântica da linguagem de programação do Arduino (baseada em C/C++). O termo shield refere-se a placas de expansão que podem ser conectadas à placa Arduino para adicionar funcionalidades específicas, como controle de motores, comunicação sem fio, ou interfaces de sensores. O conjunto de Arduino com sensores, atuadores e demais componentes é considerado um sistema Arduino ou projeto Arduino.

1.3 Compilação no Arduino

Assim como em C, a linguagem Arduino é compilada.
O processo de compilação converte o código escrito no ambiente Arduino, chamado de sketch, em código em linguagem de máquina que será carregado e executado no microcontrolador.
O programa responsável por essa conversão é o compilador do Arduino.

1.4 Ambiente de desenvolvimento no Arduino

1.4.1 O que é a IDE do Arduino?

A IDE do Arduino é um ambiente de desenvolvimento integrado (IDE) que fornece uma interface simples para escrever, compilar e carregar programas (sketches) para a placa Arduino. Ele também permite o acesso ao monitor serial, que pode ser usado para depuração e comunicação com o microcontrolador durante a execução.

Exemplos de IDEs para Arduino:

1.4.2 IDEs online para Arduino

Também é possível usar uma IDE online, como o Arduino Web Editor, que permite programar e compartilhar projetos Arduino diretamente no navegador.

Funcionalidades do Arduino Web Editor:

Para usar o Arduino Web Editor:

1.5 Estrutura de um programa Arduino

1.5.1 Visão geral

Os programas Arduino (sketches) são organizados de forma semelhante aos programas em C, mas têm algumas particularidades:


  1. Instruções de pré-processamento (como inclusão de bibliotecas);
  2. Declaração de variáveis globais;
  3. Função setup(), que é executada uma vez no início;
  4. Função loop(), que é executada repetidamente;
  5. Definição de funções adicionais conforme necessário.

As instruções nos sketches do Arduino são sempre separadas pelo caractere especial ;, delimitando o fim de uma instrução e o início da próxima.

Por exemplo:

int x = 3 * 4 + y;
x++;
Serial.print("O resultado eh ");
Serial.println(x);

1.5.2 Diretivas no Arduino

As diretivas em Arduino são semelhantes às do C e iniciam pelo caractere especial #.
As mais comuns são:

Por exemplo:

#include <Wire.h> // Inclui a biblioteca Wire para comunicação I2C
#define LED_PIN 13 // Define o pino do LED

1.5.3 Estrutura de um sketch Arduino

A estrutura de um sketch básico do Arduino é:

#include <biblioteca.h>  // Incluir bibliotecas se necessário
#define CONSTANTE valor  // Definir constantes ou macros

void setup() {
  // Código de configuração, executado uma vez
}

void loop() {
  // Código principal, executado repetidamente
}

1.5.4 Substituição de Macro

A substituição de macros no Arduino segue o mesmo princípio do C, usando #define.

Por exemplo:

#define NUM 100

1.5.5 Expressões aritméticas no Arduino

As expressões aritméticas no Arduino utilizam os mesmos operadores do C:

Operador Operação
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Módulo ou resto da divisão inteira
++ Incremento
-- Decremento

Por exemplo:

int resultado = 3 + 4 * 5 - 2 * (4 + 6);

1.5.6 Variáveis no Arduino

As variáveis no Arduino são declaradas da mesma forma que no C. A sintaxe para declarar variáveis é:

int i, cont;
float res;

Quando uma variável é declarada, o microcontrolador reserva espaço na memória para armazenar o valor.

A declaração pressupõe limites de representação. Para as aplicações em sistemas para plataformas com processadores mais poderosos, esse aspecto quase sempre passa sem ser observado. No caso do Arduíno Mega 2560, no entanto, merece a apresentação desses limites.

Tipo de Dado Tamanho Intervalo
int 2 bytes (16 bits) -32.768 a 32.767
unsigned int 2 bytes (16 bits) 0 a 65.535
long 4 bytes (32 bits) -2.147.483.648 a 2.147.483.647
unsigned long 4 bytes (32 bits) 0 a 4.294.967.295
float 4 bytes (32 bits) Aproximadamente 6-7 dígitos significativos
-3,4028235E+38 a 3,4028235E+38
double 4 bytes (32 bits) Mesmo que float
byte 1 byte (8 bits) 0 a 255
char 1 byte (8 bits) -128 a 127
unsigned char 1 byte (8 bits) 0 a 255
boolean 1 byte (8 bits) true (1) ou false (0)

Considerações Importantes:

1.5.7 Sentença de atribuição no Arduino

A sentença de atribuição no Arduino segue a mesma sintaxe do C:

i = 12;
cont = 3;
res = (12 + 3) * 1.35;

1.5.8 Comandos básicos de entrada e saída no Arduino

Os comandos básicos de entrada e saída no Arduino são Serial.print e Serial.read. Eles são usados para comunicação via porta serial, permitindo interação com o computador.

a. Função Serial.print

A função Serial.print envia dados para a porta serial.

Serial.print("A soma de x e y e ");
Serial.println(soma);

b. Função Serial.read

A função Serial.read lê dados da porta serial.

char input = Serial.read();

c. Função digitalRead()

A função digitalRead() lê o estado lógico de um pino digital do Arduino. O valor retornado é HIGH ou LOW, de acordo com o nível lógico presente no pino.

A sintaxe é:

digitalRead(pin);

Por exemplo:

int estado = digitalRead(7);

d. Função digitalWrite()

A função digitalWrite() escreve um valor lógico em um pino digital configurado como saída. O valor escrito pode ser HIGH ou LOW.

A sintaxe é:

digitalWrite(pin, value);

Por exemplo:

digitalWrite(13, HIGH);

1.5.9 Digital I/O — função pinMode()

Na linguagem de referência do Arduino, pinMode() pertence à categoria Digital I/O. A função configura um pino especificado para se comportar como entrada ou saída.

A sintaxe é:

pinMode(pin, mode);

O parâmetro pin identifica o pino que será configurado. O parâmetro mode define seu modo de operação, podendo assumir os valores INPUT, OUTPUT ou INPUT_PULLUP.

Por exemplo:

pinMode(13, OUTPUT);
pinMode(7, INPUT);

Normalmente, a configuração dos pinos com pinMode() é realizada na função setup(), pois precisa ser executada apenas uma vez no início do programa.

1.5.10 Time — função delay()

Na linguagem de referência do Arduino, delay() pertence à categoria Time. A função interrompe temporariamente a execução do programa pelo intervalo especificado em milissegundos.

A sintaxe é:

delay(ms);

O parâmetro ms representa o tempo de espera em milissegundos. Assim, 1.000 milissegundos correspondem a 1 segundo.

Por exemplo:

delay(1000); // Aguarda 1 segundo