INTRODUÇÃO AO ARDUINO
Curso: Engenharia de Software
Docente: Prof. Leonardo Dias Gomes
O que é Arduino?
É uma plataforma de prototipagem eletrônica de código aberto (open-source).
É constituído de Hardware → a placa (ex: Arduino UNO) e Software → o
programa (Arduino IDE).
Com o Arduino, é possível:
Controlar componentes eletrônicos como LEDs, motores e sensores;
Desenvolver projetos de robótica e automação;
Construir soluções de Internet das Coisas (IoT), conectando dispositivos à
internet;
Criar sistemas inteligentes, como luzes automáticas e alarmes;
Como hardware, o Arduino é uma plataforma
de desenvolvimento em cima de
microcontroladores da família Atmel, onde,
invés de o responsável por um projeto em
específico comprar diversos componentes e
montar a sua própria placa, basta ele
economizar tempo e dinheiro adquirindo uma
Arduino Uno plataforma simples e já pronta para
programação.
Como software, no Arduino é feita toda a parte
de programação que será usada para controlar o
hardware. A programação é baseada em
linguagem C. O software está disponível para
Windows, Linux e Mac OS no site [Link].
A IDE (Ambiente de Desenvolvimento
Integrado) do Arduino é o programa utilizado
para escrever, editar e enviar códigos para a
placa.
Nesse ambiente, são desenvolvidos os
Software IDE do Arduino códigos, denominados sketches, por meio de
uma linguagem baseada em C e C++.
Arduino UNO
É a placa mais popular da plataforma Arduino, sendo amplamente
utilizada em projetos educacionais e de prototipagem eletrônica.
Principais características:
Baseado no microcontrolador ATmega328P;
Possui 14 pinos digitais (entrada e saída);
Conta com 6 entradas analógicas;
Conexão via USB para programação e alimentação;
Pode ser alimentado também por fonte externa;
Estrutura básica do Arduino:
A estrutura básica da linguagem de programação do Arduino é bastante
simples. Ela é formada por dois blocos de funções que carregam outros
blocos de funções escritas em linguagem C/C++. O primeiro bloco de
funções forma a função setup ( ), o segundo, a função loop ( ).
Função Setup ( ): configuração inicial, executada apenas uma vez , ela
dita o comportamento dos pinos do Arduino e inicializa a porta serial.
Função Loop ( ): todas as funções embarcadas nela são
repetidamente executadas. Ela fica lendo os pinos de entrada do
Arduino e comandando os pinos de saída e a porta serial.
Os símbolos usados na construção de funções são os seguintes:
{} → Dentro das chaves vão os procedimentos (statements) que a função
deve executar;
;→ O ponto-e-vírgula é usado para marcar o final de um procedimento;
// → Utilizado para criar um comentário na linha: qualquer caracter depois
das duas barras é ignorado pelo programa;
/*...*/ → Utilizado para criar um bloco de comentários (várias linhas) :
qualquer texto colocado entre esses símbolos também é ignorado pelo
programa.
Constantes e Variáveis:
Constantes: são valores pré-definidos que nunca podem ser alterados. Na
linguagem C do Arduino temos 3 grupos de constantes, os dois componentes
de cada grupo podem ser representados pelos números binários 1 e 0.
True/False → são constantes booleanas que definem estados lógicos.
True (Verdadeiro) → é qualquer valor que não seja zero.
False (Falso) → é sempre zero.
High/Low → essas constantes definem as tensões nos pinos do Arduino.
→ é uma tensão de 5 volts.
High (Alta)
→ é o terra ou 0 volts.
Low (Baixa)
Input/Output → são constantes programadas pela função pinMode( ) para os
pinos do Arduino.
→ entrada de sensores.
Input (Entrada)
Output (Saída)→ saída para controle.
Variáveis: são posições na memória de programa do Arduino marcadas com
um nome e o tipo de informação que deseja guardar. Essas posições podem
receber um valor inicial .
Tipos de Variáveis:
byte→ esse tipo armazena 8 bits (0 - 255);
int→ armazena números inteiros de até 16 bits;
long→ armazena números inteiros de até 32 bits;
→
float variáveis deste tipo podem armazenar números fracionários de
até 32 bits.
Escopo:
Global →
usada em todo o código
Local →
usada apenas dentro de uma função
Arrays: são coleções de variáveis do mesmo tipo, portanto são posições na memória
de programa, com endereços que podem ser acessados por meio de um
identificador, chamado de índice. A primeira posição de um array é sempre a de
índice 0.
Operações Aritméticas e lógicas:
Soma (+) / Subtração (-) / Multiplicação (*) / Divisão (/)
Operadores combinados:
x++→ adiciona 1
x--→ diminui 1
x += y → soma e atribui
Operadores lógicos: são usados para comparar duas expressões, retornam 1
ou 0 (verdadeiro/falso).
&& → comparação ‘E’
||→ comparação ‘OU’
!→ lógica de negação ‘NÃO’
Funções matemáticas:
delay(ms)→ pausa o programa por um período
→
millis() tempo desde o início
random() → gera números aleatórios entre os limites min e max
map() → converte valores entre intervalos
Controle de Fluxo: é a forma como o programa toma decisões e escolhe o que
fazer em cada situação.
if → Executa algo se a condição for verdadeira
if...else → executa alternativa, se for verdadeiro faz uma coisa e se for falso
faz outra
if...else if → Usado quando há várias condições
Estruturas de repetição: são comandos que fazem o programa repetir ações
automaticamente, sem precisar escrever o mesmo código várias vezes.
while → Repete enquanto a condição for verdadeira
do...while → Executa pelo menos uma vez, depois verifica a condição
for → Usado quando sabemos quantas vezes repetir
Pinos Digitais e Analógicos:
Digitais: 14 pinos (0 a 13), trabalham com HIGH (1) e LOW (0)
pinMode() → define entrada/saída
digitalRead() → lê valor
digitalWrite() → envia valor
Analógicos: 6 pinos (A0 a A5), leem valores de 0 a 1023
analogRead()
Comunicação Serial:
Permite comunicação com o computador.
→
[Link]() inicia comunicação
[Link]()→ lê dados
→
[Link]() envia dados
→
[Link]() envia com quebra de linha
Pinos de Alimentação: usados para alimentação de circuitos externos e reset
do Arduino
RESET → reinicia o Arduino
VIN → entrada de energia (7–12V)
GND → terra
5V / 3.3V → alimentação
Base da Programação em Arduino
Observação:
Na linguagem C, letras maiúsculas, minúsculas e conjuntos de palavras fazem
a diferença, ou seja, se você for escrever algo como, por exemplo,’’ledPin”,
não será a mesma coisa que ‘’LedPin’’.
O programa precisa identificar qual é o fim de uma linha de programação
para poder seguir rodando, para isso, é necessário ao final de cada linha onde
possa ser identificado um comando, o uso de ; (ponto e vírgula).
Exemplo 1: Ligar um pequeno LED que se encontra na placa do circuito,
identificado como pino 13.
Display OLED SSD1306 - Estrutura do Código
O código controla a tela por meio de comandos hexadecimais
reconhecidos pelo display.
Esses comandos recebem nomes mais fáceis no programa,
chamados de Register Definitions.
Estrutura de Classes:
Classe SSD1306 (Base)
Reúne funções principais como: limpar tela, desenhar pixels e escrever texto.
Classe Base→ SSD1306 define o Subclasses →
12C e SPI definem
que aparece na tela como os dados chegam ao display.
Código Principal:
Funcionamento do Código:
Conecta o microcontrolador ao display
Define o tamanho da tela
Cria o display
Escreve e mostra informações
Dinâmica de Aprendizagem Prática
A turma será dividida em duplas
Será realizado um Quiz com 50 perguntas
As perguntas vão do nível fácil ao difícil
Cada grupo deverá discutir e escolher a resposta juntos
Haverá premiação para o 1º lugar