Referência da Linguagem Arduino
Funções, variáveis e estruturas da linguagem Arduino, explicadas em português do zero e com exemplos. Use a busca ou filtre por categoria.
Estruturas › Controle de fluxo
break
Interrompe imediatamente um laço ou encerra um case do switch.
continue
Pula o resto da volta atual e vai direto para a próxima iteração.
do...while
Repete um bloco garantindo pelo menos uma execução antes de testar.
for
Repete um bloco um número controlado de vezes usando um contador.
goto
Salta a execução diretamente para um rótulo marcado no código.
if
Executa um bloco de código apenas quando a condição for verdadeira.
if...else
Escolhe entre dois caminhos conforme a condição ser verdadeira ou falsa.
return
Encerra a função atual e opcionalmente devolve um valor ao chamador.
switch...case
Compara uma variável com vários valores e desvia para o caso certo.
while
Repete um bloco enquanto a condição continuar verdadeira.
Estruturas › Estrutura do programa
Estruturas › Sintaxe
; (ponto e vírgula)
Encerra cada instrução em C++, avisando o compilador onde um comando termina.
{} (chaves)
Agrupa várias instruções em um bloco, delimitando funções, laços e condicionais.
/* */ (comentário de bloco)
Ignora tudo entre os marcadores, permitindo comentar várias linhas de uma vez.
// (comentário de linha)
Ignora o resto da linha, servindo para anotar e explicar o código.
#define
Cria um apelido de texto substituído pelo compilador antes de compilar o código.
#include
Puxa uma biblioteca ou arquivo externo, trazendo funções extras para o seu programa.
Funções › Bits e Bytes
bit()
Calcula o valor de um bit específico, ou seja, 2 elevado a n.
bitClear()
Desliga (coloca em 0) um bit específico de uma variável.
bitRead()
Lê o estado (0 ou 1) de um bit específico de um número.
bitSet()
Liga (coloca em 1) um bit específico de uma variável.
bitWrite()
Grava 0 ou 1 em um bit específico de uma variável numérica.
highByte()
Extrai o byte mais significativo (os 8 bits à esquerda) de um valor de 16 bits.
lowByte()
Extrai o byte menos significativo (os 8 bits mais à direita) de um número.
Funções › Caracteres
isAlpha()
Verifica se um caractere é uma letra do alfabeto (A-Z ou a-z).
isAlphaNumeric()
Verifica se um caractere é uma letra ou um dígito numérico.
isDigit()
Verifica se um caractere é um dígito numérico de 0 a 9.
isLowerCase()
Verifica se um caractere é uma letra minúscula de a a z.
isPunct()
Verifica se um caractere é um sinal de pontuação, como vírgula, ponto ou exclamação.
isSpace()
Verifica se um caractere é um espaço em branco, incluindo tabs e quebras de linha.
isUpperCase()
Verifica se um caractere é uma letra maiúscula de A a Z.
isWhitespace()
Verifica se um caractere é um espaço comum ou uma tabulação.
Funções › Comunicação Serial
Serial.available()
Informa quantos bytes chegaram e estão esperando para serem lidos na serial.
Serial.begin()
Inicia a comunicação serial e define a velocidade (baud rate) entre Arduino e computador.
Serial.parseInt()
Lê os próximos dígitos da serial e monta um número inteiro a partir deles.
Serial.print()
Envia texto ou números pela serial, sem pular linha ao final.
Serial.println()
Envia texto ou números pela serial e pula para a próxima linha.
Serial.read()
Lê e remove um byte por vez do buffer de entrada da serial.
Serial.readString()
Lê todos os caracteres recebidos na serial e junta tudo num objeto String.
Serial.write()
Envia dados binários brutos (bytes) pela serial, sem converter para texto.
Funções › E/S Analógica
Funções › E/S Avançada
noTone()
Interrompe o som gerado por tone() em um pino, deixando-o em silêncio.
pulseIn()
Mede a duração de um pulso em microssegundos, útil para sensores como o ultrassônico HC-SR04.
shiftIn()
Lê um byte bit a bit de um pino sincronizado por clock, ideal para registradores como o 74HC165.
shiftOut()
Envia um byte bit a bit por um pino, sincronizado por clock, para registradores como o 74HC595.
tone()
Gera uma onda quadrada de frequência fixa num pino para tocar notas e bipes em buzzers.
Funções › E/S Digital
Funções › Interrupções
attachInterrupt()
Executa uma função na hora exata em que um pino muda de nível, sem travar o loop.
detachInterrupt()
Desliga uma interrupção que você havia ligado num pino com attachInterrupt().
interrupts()
Reativa as interrupções que haviam sido pausadas por noInterrupts().
noInterrupts()
Desativa temporariamente todas as interrupções para proteger um trecho crítico.
Funções › Matemática
abs()
Retorna o valor absoluto de um número, transformando negativos em positivos.
constrain()
Prende um valor dentro de uma faixa, cortando o que passar do mínimo ou do máximo.
map()
Reescala um número de uma faixa para outra de forma proporcional (regra de três).
max()
Devolve o maior entre dois valores, útil para garantir um piso mínimo em leituras.
min()
Devolve o menor entre dois valores, útil para limitar o teto de uma leitura ou variável.
pow()
Calcula uma base elevada a um expoente, aceitando potências fracionárias.
sq()
Eleva um número ao quadrado (multiplica ele por ele mesmo).
sqrt()
Calcula a raiz quadrada de um número, útil para distâncias e magnitudes.
Funções › Números aleatórios
Funções › Tempo
delay()
Pausa o programa por uma quantidade de milissegundos, travando o Arduino nesse intervalo.
delayMicroseconds()
Pausa o programa por microssegundos, para tempos curtíssimos que o delay() não alcança.
micros()
Devolve quantos microssegundos se passaram desde que o Arduino ligou, para medições finas.
millis()
Devolve quantos milissegundos se passaram desde que o Arduino ligou, sem travar o programa.
Funções › Trigonometria
Variáveis › Constantes
false
Representa o valor lógico falso (0) usado em condições e variáveis booleanas.
HIGH
Representa o nível lógico alto (1) usado para ligar saídas e ler entradas em nível de tensão.
INPUT
Configura um pino como entrada para ler sinais externos como botões e sensores.
INPUT_PULLUP
Configura um pino como entrada com resistor de pull-up interno ativado, ideal para botões.
LED_BUILTIN
Aponta para o pino do LED embutido na placa, sem você precisar decorar o número.
LOW
Representa o nível lógico baixo (0) usado para desligar saídas e ler entradas em nível de tensão.
OUTPUT
Configura um pino como saída para acionar LEDs, relés e outros componentes.
true
Representa o valor lógico verdadeiro (1) usado em condições e variáveis booleanas.
Variáveis › Conversões
byte()
Converte um valor para byte (inteiro de 8 bits sem sinal, 0 a 255).
char()
Converte um valor para char (caractere de 8 bits com sinal).
float()
Converte um valor para float, permitindo cálculos com casas decimais.
int()
Converte um valor para o tipo int (inteiro de 16 bits com sinal no Uno).
long()
Converte um valor para long (inteiro de 32 bits com sinal, para números grandes).
word()
Converte um valor para word (inteiro de 16 bits sem sinal, 0 a 65535).
Variáveis › Tipos de dados
array (vetor)
Guarda vários valores do mesmo tipo em sequência, acessados por índice.
bool / boolean
Guarda um valor lógico verdadeiro/falso (true ou false) em 1 byte.
byte
Armazena um número inteiro sem sinal de 0 a 255 usando apenas 1 byte.
char
Guarda um caractere (ou um inteiro de -128 a 127) em 1 byte.
double
Guarda números decimais; no Uno é igual ao float, no ESP32 tem dupla precisão.
float
Armazena números com casas decimais (ponto flutuante) em 32 bits.
int
Armazena números inteiros com sinal, o tipo padrão do dia a dia no Arduino.
long
Guarda inteiros com sinal bem grandes, de 32 bits, em qualquer placa.
short
Guarda um inteiro com sinal de 16 bits, com tamanho igual em qualquer placa.
String
Cria um objeto de texto fácil de juntar, medir e manipular com métodos prontos.
unsigned int
Guarda inteiros sem sinal (só positivos), dobrando o alcance máximo.
unsigned long
Armazena inteiros positivos de 32 bits; é o tipo de millis() e micros().
void
Marca uma função que não devolve nenhum valor, como setup() e loop().
word
Armazena um inteiro sem sinal de 16 bits (0 a 65.535) no Arduino Uno.
Operadores › Aritméticos
- (subtração)
Subtrai um valor de outro e devolve a diferença, respeitando o tipo das variáveis.
* (multiplicação)
Multiplica dois valores numéricos e devolve o produto, respeitando o tipo das variáveis.
/ (divisão)
Divide um valor por outro; o resultado depende se os operandos são inteiros ou float.
% (resto)
Devolve o resto da divisão inteira entre dois valores; ótimo para ciclos e paridade.
+ (adição)
Soma dois valores numéricos e devolve o total, respeitando o tipo das variáveis envolvidas.
= (atribuição)
Guarda um valor dentro de uma variável; o sinal de igual único atribui, não compara.
Operadores › Bit a bit
& (E bit a bit)
Compara os bits de dois números e liga o bit do resultado só quando ambos são 1.
^ (XOR)
Compara os bits de dois números e liga o bit do resultado quando eles são diferentes.
<< (deslocar à esquerda)
Desloca os bits de um número para a esquerda, equivalente a multiplicar por potências de 2.
>> (deslocar à direita)
Desloca os bits de um número para a direita, equivalente a dividir por potências de 2.
| (OU bit a bit)
Combina os bits de dois números, ligando cada bit que esteja em 1 em qualquer um deles.
~ (NÃO bit a bit)
Inverte todos os bits de um número, trocando cada 0 por 1 e cada 1 por 0.
Operadores › Booleanos
Operadores › Comparação
!= (diferente de)
Compara dois valores e devolve true quando eles são diferentes entre si.
< (menor que)
Compara dois valores e devolve true quando o primeiro é menor que o segundo.
<= (menor ou igual)
Compara dois valores e devolve true quando o primeiro é menor ou igual ao segundo.
== (igual a)
Compara dois valores e devolve true quando eles são exatamente iguais.
> (maior que)
Compara dois valores e devolve true quando o primeiro é maior que o segundo.
>= (maior ou igual)
Compara dois valores e devolve true quando o primeiro é maior ou igual ao segundo.
Operadores › Compostos
-- (decremento)
Subtrai 1 de uma variável de forma compacta, com versão pós ou pré-decremento.
-= (subtrai e atribui)
Subtrai um valor da variável e guarda o resultado nela mesma, de forma compacta.
*= (multiplica e atribui)
Multiplica a variável por um valor e guarda o resultado nela mesma, de forma compacta.
/= (divide e atribui)
Divide a variável por um valor e guarda o resultado nela mesma, de forma compacta.
++ (incremento)
Soma 1 a uma variável de forma compacta, com versão pós ou pré-incremento.
+= (soma e atribui)
Soma um valor à variável e guarda o resultado nela mesma, de forma compacta.