Arduino · material didático
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.
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.
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.
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:
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:
Os programas Arduino (sketches) são organizados de forma semelhante aos programas em C, mas têm algumas particularidades:
setup() e loop().setup(), que é executada uma vez no início;loop(), que é executada repetidamente;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);As diretivas em Arduino são semelhantes às do C e iniciam pelo
caractere especial #.
As mais comuns são:
#include: para incluir bibliotecas necessárias no
sketch.#define: para criar constantes ou macros.Por exemplo:
#include <Wire.h> // Inclui a biblioteca Wire para comunicação I2C
#define LED_PIN 13 // Define o pino do LEDA 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
}A substituição de macros no Arduino segue o mesmo princípio do C,
usando #define.
Por exemplo:
#define NUM 100As 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);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:
A sentença de atribuição no Arduino segue a mesma sintaxe do C:
i = 12;
cont = 3;
res = (12 + 3) * 1.35;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.
Serial.printA função Serial.print envia dados para a porta
serial.
Serial.print("A soma de x e y e ");
Serial.println(soma);Serial.readA função Serial.read lê dados da porta serial.
char input = Serial.read();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 é:
Por exemplo:
int estado = digitalRead(7);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 é:
Por exemplo:
digitalWrite(13, HIGH);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 é:
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.
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 é:
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