0% acharam este documento útil (0 voto)
44 visualizações65 páginas

Programação - Arduíno - Cfitel

Enviado por

Tito Nascimento
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
44 visualizações65 páginas

Programação - Arduíno - Cfitel

Enviado por

Tito Nascimento
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 65

PROGRAMAÇÃO ARDUÍNO

ÍNDIC
E
1. Introdução;

2. Variáveis e Estrutura de controle;

3.Tipos de Portas e Comunicação Serial;

4.Bibliotecas e Projectos.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
ÍNDICE4.1 Controle de Carga com Modúlo Relés;
4.2 Controlo de LCD 16x2

4.3 UART para acender e apagar LEDs

4.4 Sensor de Luminosidade com LDR

4.5 Medir Temperatura e umidade com sensor DTH11

4.6 Projecto envolvendo PWM com Motor e Servo motor

4.7 Controlo de consumo de energia electrica.

5. Projecto Final – Agregando todas as tecnologia aprendidas

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
O que é Arduino?
O Arduino consiste-se em uma plataforma de prototipagem em eletrônica, elaborado
por Massimo Banzi e David Cuartielles em 2005 na Itália, e tem como objetivo facilitar o
desenvolvimento de projetos, desde os mais simples aos mais complexos. Com esta
plataforma é possível controlar diversos sensores, motores, leds, dentre vários outros
componentes eletrônicos.
Um ponto forte sobre o Arduino, é que todo material disponibilizado pelo fabricante,
como a IDE de desenvolvimento, bibliotecas e até mesmo o projeto eletrônico das placas
são open-source, ou seja, é permitida a utilização e reprodução sem restrição sobre os
direitos autorais dos idealizadores do projeto. Porém o nome Arduino, logotipo e o design
gráfico de suas placas são registrados e protegidos por direitos autorais

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
O Projeto Arduino une Hardware e Software, e resulta em uma plataforma de
fácil desenvolvimento utilizando um microcontrolador.
Por que usar o Arduino ?
O Arduino foi criado com o objetivo de facilitar o aprendizado e possibilitar a
prototipação e desenvolvimento de projetos com um custo relativamente baixo, além de
não exigir um vasto conhecimento em eletrônica. Estes foram sem dúvida os fatores
primordiais para a popularização do Arduino em âmbito mundial, não somente entre os
desenvolvedores mais experientes, mas também entre os entusiastas e iniciantes.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
Outro ponto forte do Arduino, como dito anteriormente, é seguir a filosofia open-
source. Com isso várias pessoas em todo o mundo contribuem com a plataforma, seja com
a construção de um novo hardware ou com novas bibliotecas, materiais de apoio e tutoriais.
A comunidade de pessoas que utilizam esta plataforma vem crescendo cada vez mais, e
sempre surgem novos projetos contendo novas ideias, fazendo com que nunca falte ajuda
caso haja alguma dúvida sobre a utilização do hardware e/ou software).

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
Afinal, pra que serve o Arduino?

O Arduino é sem dúvidas uma placa muito eficiente e poderosa. Pode ser
utilizado para fazer qualquer coisa, a imaginação é o limite (e claro, as leis da física
também!). É possível utilizá-lo para controlar, monitorar, automatizar, etc. Por exemplo,
existem projetos de monitoramento da qualidade do ar, medição da temperatura de um
líquido, sistemas de irrigação, robôs, impressoras 3D, dentre vários outros.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno

Hardware
O hardware (as placas) do projeto possui diferentes modelos, alguns deles são menores que
um cartão de crédito. Sim, tudo isso falado anteriormente cabe na palma de sua mão! Para o
desenvolvimento deste material utilizaremos o modelo Uno, que é mais comumente utilizado em
projetos básicos. Existe uma placa voltada para cada projeto, algumas são menores e mais
compactas e outras são maiores, permitindo controlar um maior número de dispositivos eletrônicos.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
O Arduino é um computador como qualquer outro, possuindo:
• Microprocessador (responsável pelos cálculos e tomada de decisão)
• Memória ram (utilizada para guardar dados e instruções, volátil)
• Memória flash (utilizada para guardar o software, não volátil)
• Temporizadores (timers)
• Contadores
• Clock, e etc.
Ou seja, é um computador, porém em menor escala. Possui inclusive menos memória e
menor poder de processamento.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
O Arduino Uno, por exemplo, possui as seguintes especificações:
• Microcontrolador: ATmega328
• Portas Digitais: 14
• Portas Analógicas: 6
• Memória Flash: 32KB (0,5KB usado no bootloader²)
• SRAM: 2KB
• EEPROM: 1KB
• Velocidade do Clock: 16MHz
Bootloader: Para dispensar o uso de um gravador externo, a gravação da Flash é feita por um software
pré-gravado, o Bootloader. O Bootloader é o primeiro software executado pelo microcontrolador após
um Reset (Boot) e carrega na Flash um software que recebe pela serial (loader).

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno

Alimentação do Arduino
O circuito interno do Arduino é alimentado com uma tensão contínua de 5V, isto quando é
conectado a uma porta Usb do computador. Esta conexão fornece a alimentação e também a
comunicação de dados. Caso seja necessário é possível utilizar uma fonte de alimentação
externa, que forneça uma saída dentre 7.5V e 12V contínua, ou pode ser ligada diretamente na
placa utilizando os pinos Vin e Gnd.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
 Software
O Software é utilizado basicamente para escrever o código do programa, salvá-
lo, compilá-lo, e realizar a gravação do código compilado no Arduino (memória flash)
através da porta Usb do computador. A IDE do Arduino será utilizada para realizar estes
passos. Este ambiente de desenvolvimento é baseado no Framework Wiring e na
linguagem de programação C/C++. Uma vez gravado o programa no Arduino, o
computador não é mais necessário. A partir do momento em que se utiliza uma fonte de
alimentação externa, o Arduino se torna uma placa totalmente independente. Mas antes
de tudo é preciso obter os arquivos de instalação e drivers, que vêm juntos no mesmo
pacote, que pode ser obtido no site oficial do Arduino³. O download deve ser selecionado
de acordo com o sistema operacional utilizado, sendo ele compatível com Windows,
Linux e Mac OS.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
 Instalação de Software

1 - Placa Arduino e um cabo 2 - Download do software do


USB AB Este tutorial serve Arduino Faça download da
para instalação das placas última versão do software do
Arduino Uno, Arduino Arduino. Ao terminar,
Duemilanove, Nano, Arduino descompacte o arquivo e
Mega 2560 ou Diecimila. Para mantenha a estrutura de pastas
outras placas da linha Arduino e sub-pastas. Se quiser guarde
deve-se buscar o tutorial esta pasta no drive C: do seu
correspondente. Você também computador. Dentro desta pasta
vai precisar de um cabo USB existe um arquivo chamado
AB arduino.exe que é o ponto de
entrada do programa do
Arduino, a IDE (Integrated
Development Environment)

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
3 - Conectando o 4 - Instalando os drivers Drivers para Arduino Uno ou Arduino Mega 2560
Arduino O Arduino Uno com Windows 7, Vista ou XP:
isolado usa a energia • Conecte a placa ao computador e aguarde o Windows iniciar o
do computador através processo de instalação do driver.
da conexão USB, não • Depois de alguns momentos o processo vai falhar. Clique em concluir e
sendo necessária dispense a ajuda do assistente. .
energia externa. • Clique no Menu Principal e abra o Painel de Controle.
Conecte a placa • Dentro do Painel de Controle, navegue até Sistema e Segurança. Na
Arduino ao computador sequência clique em Sistema, selecione Hardware e depois clique em
usando o cabo USB Gerenciador de Dispositivos.
AB. O LED verde de • Procure por Portas (COM & LPT), onde você deve ver uma opção
energia (PWR) deve Arduino UNO (COMxx). . Clique com o botão da direita em Arduino UNO
acender. (COMxx) e escolha a opção Atualizar Driver.
• Depois escolha a opção Instalar de uma lista ou local específico
(Avançado), e clique em avançar.
• Finalmente navegue e escolha o driver arduino.inf localizado na pasta
Drivers do software do Arduino que você baixou.
• O Windows vai finalizar a instalação do driver a partir deste ponto

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
5 - Abrindo o programa
Arduino Clique duas vezes na
aplicação do Arduino, o
arquivo arduino.exe. Caso o
programa carregue com o
idioma que não é da sua
preferência você pode alterar
na sessão de preferências do
programa

6 - Exemplo Piscar Abra o


exemplo Piscar (blink):
Arquivo > Exemplos > Basics >
Blink

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
7 - Selecione sua placa
Você deve selecionar
qual a sua placa
Arduino: Ferramentas >
Placa > Arduino Uno.

8 - Selecione a porta Selecione


agora a porta serial que
conectará o Arduino:
Ferramentas > Porta Serial.
Você deve selecionar a mesma
porta que utilizou para
confirgurar o sistema no passo
4.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
9 - Carregue o programa Agora
simplesmente clique no botão Carregar
da janela do programa. Espere alguns
segundos. Você deve ver os LEDs RX e
TX da placa piscarem. Se o processo foi
executado normalmente você verá uma
mensagem de “Transferência
concluída”. Depois de alguns segundos
você verá o LED do pin 13 piscar em
laranja. Neste caso, parabéns! Seu
Arduino está pronto e instalado. Se você
tiver problemas na instalação pode
acessar a página oficial do Arduino com
algumas soluções.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
A IDE do Arduino é muito simples e objetiva, tornando todo o processo de
desenvolvimento e gravação bastante intuitivo. Além do espaço em branco destinado ao
desenvolvimento do programa, existem 6 botões na parte superior: Verify, Upload
(destacado de vermelho), New, Open, Save e Serial Monitor. Eles são utilizados,
respectivamente para Verificar se existem erros no código, enviar (gravar) o programa no
Arduino, criar um novo código, abrir um código existente e um monitor de dados da porta
serial.
Um código desenvolvido para Arduino é chamado de Sketch, traduzindo do inglês ao pé da
letra seria algo como “esboço” ou “rascunho”. Isso nos dá uma ideia de que nunca
terminamos um código, sempre haverá melhorias e novas funcionalidades. O Sketch
possui a extensão ‘.pde’.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Introdução - Arduíno
A partir de agora sempre que for necessário gravar um novo programa no
Arduino, basta conectá-lo na porta Usb, Selecionar a placa utilizada em Tools > Board e
em seguida selecionar a Porta Serial (COM) associada a ele, neste caso Tools > Serial
Port > COM3. Em seguida, após abrir o programa desejado, basta clicar em “Upload”.
Após executar estes passos, a IDE deverá exibir uma mensagem no final “Done
Uploading”.

 Algoritmo
Pode se dizer que Algoritmo é uma sequência de passos que devem ser
seguidos para atingir um objetivo bem definido. Exemplo, uma receita de bolo.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Programação Arduino
Espaço de trabalho:

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Programação Arduino
Monitor Serial Exibe dados seriais sendo enviados da placa Arduino
para o computador. Para enviar dados para a placa, digite o texto e clique no
botão "enviar" ou pressione enter. A comunicação entre a placa Arduino e seu
computador pode acontecer em várias velocidades padrão pré-definidas. Para
que isso ocorra é importante que seja definida a mesma velocidade tanto na
Sketch quanto no Monitor Serial. Na Sketch esta escolha é feita através da
função Serial.begin. E no Monitor Serial através do menu drop down do canto
inferior direito. Note que no Mac ou Linux a placa Arduino irá resetar (executar
novamente o seu Sketch desdeElementos
o Elementos dede
Formatação
início), quando você abrir o monitor serial.
Formatação

A comunicação serial
com a placa Arduino também
pode ser feita através de outras
linguagens de programação
como Processing, Flash, Python,
MaxMSP e muitas outras.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Programação Arduino
Biblioteca Arduino
O ambiente Arduino pode ser estendido através da utilização de bibliotecas, assim como a
maioria das plataformas de programação. Bibliotecas fornecem funcionalidades extras para uso em
sketches. Por exemplo, para trabalhar com hardware ou manipulação de dados. Algumas
bibliotecas já vêm instaladas com a IDE Arduino, mas você também pode fazer download ou criar a
sua própria. Para usar uma biblioteca em um sketch, selecione em sua IDE Arduino: Sketch>
Importar Biblioteca. Dentro da programação você inclui as funcionalidades de uma biblioteca já
existente a partir do comando:

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Programação Arduino
Estruturas
São duas funções principais que deve ter todo programa em Arduino. A função
setup() é chamada quando um programa começa a rodar. Use esta função para inicializar
as sua variáveis, os modos dos pinos, declarar o uso de livrarias, etc. Esta função será
executada apenas uma vez após a placa Arduino ser ligada ou ressetada.

Após criar uma função setup() que declara os valores iniciais, a função loop() faz
exatamente o que seu nome sugere, entra em looping (executa sempre o mesmo bloco de
código), permitindo ao seu programa fazer mudanças e responder. Use esta função para
controlar ativamente a placa Arduino.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Programação Arduino
Funções

Função é um bloco de código que possui um nome e procedimentos que são


executados quando a mesma é chamada. As funções setup() e loop() foram explicados
anteriormente e as demais funções do compilador serão apresentadas mais a frente
neste capítulo.

Funções customizadas podem ser escritas para simplificar em tarefas repetitivas


reduzindo repetições na programação. Funções são declaradas primeiramente definindo
o seu tipo, que dirá qual o tipo de dado retornado pela função. Depois de definido o tipo
de retorno deve dar um nome a função e definir entre parêntese se algum parâmetro
deve ser passado para a função, conforme exemplo de código a seguir:

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Programação Arduino
Os seguintes símbolos são utilizados na construção /*........*/ - qualquer texto
de funções: { } – as chaves são utilizadas para entre esses símbolos é
delimitar os blocos de funções, dentro das chaves ignorado pelo
se encontram os procedimentos da função: compilador, usado para
comentar varias linhas.

; - ponto e vírgula são utilizados para marcar o final


do procedimento;

//- qualquer caractere despois das duas barras é


ignorado pelo compilador, utilizado para
comentários de apenas uma única linha.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Variáveis
Constantes
Um dado é constante quando não sofre nenhuma alteração ao decorrer do programa. Ou
seja, do início ao fim da execução do programa o seu valor permanece o mesmo, inalterado.
A declaração de constantes pode ser feita de duas maneiras:
• Usando a palavra reservada “const”. Exemplo:
const int x = 10;
• Usando a palavra reservada “define”. Exemplo:
#define X = 10
A linguagem Arduino possui algumas constantes pré-definidas que auxiliam na
programação. São divididas em grupos:
Definindo estados lógicos, true(verdadeiro) e false(falso)
Existem duas constantes para determinar valores booleanos na linguagem ARDUINO:
true e false.
• false
Define um valor falso, ou seja, o valor booleano 0.
• true
Define valores verdadeiros, ou seja, o valor booleano 1 .

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Variáveis
- Definindo Nível lógico alto e baixo nos pinos

Quando se trabalha com pinos de entrada ou saída digital apenas dois valores são
possíveis: HIGH(alto, 1, 5 Volts) e LOW(baixo, 0, 0 Volts).

- Definindo direção de um pino digital e Pull-up

Pinos digitais podem ser usados como INPUT_PULLUP INPUT, ou OUTPUT.


Mudando um pino com pinMode () muda o comportamento elétrico do pino.
Para configura um pino como entrada utiliza a constante INPUT com a função
pinMode(). Pode-se também colocar o pino como entrada e habilitar o resistor interno
de o pull-up, dessa forma o pino passa a ser entrada e tem nível lógico 1 quando
estiver aberto. Utilizase a constante INPUT_PULLUP na função pinMode(). Para
configurar um pino como saída digital utiliza-se a constante OUTPUT na função
pinMode()

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Variáveis
 Variáveis
Variáveis são identificadores utilizados para representar valores mutáveis e voláteis,
que só existem durante a execução do programa. Elas são armazenadas na memória RAM
e seu conteúdo é destruído após a execução do programa.
Antes de ser utilizada uma variável no Arduíno ela deve ser declara com um tipo e nome, e
opcionalmente pode ser atribuir um valor a ela. Veja os exemplos a seguir:

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Variáveis
 Algumas dicas:
Nunca inicie a nomenclatura de variáveis com números.
Nunca utilize espaços em branco no meio do identificador da variável.
Nunca utilize caracteres especiais (! @ # % ^ & * / | [ ] { }) na nomenclatura das
variáveis.
 Evite criar variáveis com mais de 15 caracteres em virtude da clareza do código
fonte.
Nomes de variáveis devem ser significativos e transmitir a idéia de seu conteúdo
dentro do contexto no qual a variável está inserida.
 Utilize preferencialmente palavras em minúsculo (separadas pelo caractere (“_”) ou
somente as primeiras letras em maiúsculo quando da ocorrência de mais palavras.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Variáveis
 Tipo booleano
// declara variável com valor TRUE
Um booleano expressa um valor lógico que Boolean exibir_nome = TRUE;
void setup(){
pode ser verdadeiro ou falso. Para especificar um // inicializar a porta serial
Serial.begin(9600);
valor booleano, utilize as palavras-chave TRUE ou }
void loop(){
FALSE. No exemplo a seguir, declaramos a variável // testa se exibir_nome é TRUE
if (exibir_nome)
booleana boolean exibir_nome, cujo conteúdo é TRUE {
// inprimir nome monitor serial
(verdadeiro). Em seguida, testaremos o conteúdo Serial.print(“José da Silva”);
}
desta variável para verificar se ela é realmente delay(100);
}
verdadeira. Caso positivo, será exibido na tela o nome
Resultado:
“José da Silva”. José da Silva

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Variáveis
 Tipo Int
- Inteiro é o principal tipo de dado para armazenamento numérico capaz de
guardar números de 2 bytes. Isto abrange a faixa de -32.768 a 32.767 (valor
mínimo de -2^15 e valor máximo de (2^15) -1).

// número decimal
int a = 1234;

//ponto flutuante
float a = 1.234; || dooble a = 1.234;

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Variáveis
 Tipo string  Tipo Char
Uma string é uma cadeia de caracteres
Char Um tipo de dado que ocupa 1 byte
alfanuméricos. Para declará-la podemos de memória e armazena o valor de um
caractere ASCII. Caracteres literais são
utilizar aspas aspas duplas " ". Veja, com mais
escritos entre aspas. char myChar = ‘A
detalhes, como manipular strings na seção
Manipulação de strings.
void loop(){
String variavel = "Isto é um teste";
Serial.print(variavel);
}

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Variáveis
Declaração de Variáveis

- A atribuição de valores a variáveis e constantes é feito com o uso do operador de


atribuição “=”. Exemplos:
• int valor = 10;
• const float pi = 3.14;
Importante:

- O operador de atribuição não vale para o comando #define. - A linguagem de


programação do Arduino, como dito anteriormente, é baseada no C/C++ portanto é
Case Sensitive, diferenciando letras maiúsculas de minúsculas. Portanto a
declaração “int valSensor;” é diferente de “int ValSensor;”.

- Vetores e Matrizes Uma variável escalar pode armazenar muitos valores ao longo
da execução do programa, porém não ao mesmo tempo. Existem variáveis que
podem armazenar mais de um valor ao mesmo tempo, essas variáveis são
conhecidas como “variáveis compostas

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Variáveis
 Tipo array
Array é uma lista de valores armazenados na memória, os quais podem ser de
tipos
diferentes (números, strings, objetos) e podem ser acessados a qualquer momento, pois
cada valor é relacionado a uma chave. Um array também pode crescer dinamicamente com
a adição de novos itens. Veja na seção Manipulação de arrays como manipular arrays.
String carros = {“Palio”, “Corsa”, “Gol”};
Serial.print(carros[1]); // resultado = 'Corsa’ ;
Existem dois tipos de array “Simples e composta”
• Simples é quando temos uma só dimensão exemplo:
int vetor[5]; - Cria um vetor de tamanho 5 (cinco) do tipo inteiro.
• Composta é formada por duas ou mais dimensões. Este elemento do tipo bidimensional
possui um
Instituto determinado
de Telecomunicações número
| Bairro dos CTTs, de
Km7 linhas e de|colunas.
– Luanda/Angola Exemplo:
Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Variáveis
int matriz[3][6];
- Matriz com 3 (três) linhas e 6 (seis) colunas de elementos do tipo inteiro.

- Para atribuir um valor a uma determinada posição da matriz, basta usar o índice da
linha e o índice da coluna, ou seja, a posição onde o valor será armazenado na
matriz. Exemplo

matriz[1][2] = 6;
-Atribui o valor 6 a posição 1 (linha), 2 (coluna) da matriz. Para acessar um
determinado valor em uma posição da matriz, basta usar o índice da linha e o da
coluna, ou seja, a posição onde o valor está armazenado na matriz. Exemplo: 1
digitalWrite(matriz[0][0], HIGH); -Ativa a porta cujo número está definido na posição 0
(linha), 0 (coluna) da matriz.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Operadores
Em uma linguagem de programação existem vários operadores que permitem
operações do tipo: Aritmética, Relacional, Lógica e Composta.

Aritméticos Relacionais Lógicos Compostos


• + Adição • > Maior • && E (AND) • ++ Incremento
• - Subtração • < Menor • || OU (OR) • -- Decremento
• * Multiplicação • >= Maior ou igual • ! NÃO (NOT) • += Adição com atribuição
• / Divisão • <= Menor ou • -= Subtração com
• % Módulo (resto da divisão igual atribuição
inteira) • == Igual • *= Multiplicação com
• != Diferente atribuição
• /= Divisão com atribuição
• != Não Igual

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Estruturas de Controle
 IF
O IF é uma estrutura de controle que introduz um desvio condicional, ou seja, um
desvio na execução natural do programa. Caso a condição dada pela expressão seja
satisfeita, então serão executadas as instruções do bloco de comandos. Caso a
condição não seja satisfeita, o bloco de comandos será simplesmente ignorado. O
comando IF pode ser lido como “SE (expressão) ENTÃO { comandos... }”.

ELSE é utilizado para indicar um novo bloco de comandos delimitado por { }, caso
a condição do IF não seja satisfeita. Pode ser lido como “caso contrário”. A utilização
do ELSE é opcional.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Estruturas de Controle
Veja a seguir um fluxograma explicando o funcionamento do comando IF. Caso
a avaliação da expressão seja verdadeira, o programa parte para execução de um
bloco de comandos; caso seja falsa, parte para a execução do bloco de comandos
dada pelo ELSE.

Figura – Fluxo do comando

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Estruturas de Controle
if (expressão)
{ Resultado:
comandos se expressão é verdadeira;
}
não é igual
else
{
comandos se expressão é falsa;
}
Exemplo:

Int a = 1;
if ( a==5)
{
Serial.print(“é igual“);
}
else
{
Serial.print(“não é igual“);
}

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Estruturas de Controle
 While
O While é uma estrutura de controle similar ao IF. Da mesma forma, possui uma condição
para executar um bloco de comandos. A diferença primordial é que o WHILE estabelece
um laço de repetição, ou seja, o bloco de comandos será executado repetitivamente
enquanto a condição de entrada dada pela expressão for verdadeira. Este comando
pode ser interpretado como “ENQUANTO (expressão) FAÇA {comandos... }.”.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Estruturas de Controle
A Figura procura explicar o fluxo de funcionamento do comando WHILE. Quando
a expressão é avaliada como TRUE, o programa parte para a execução de um bloco de
comandos. Quando do fim da execução deste bloco de comandos, o programa retor
na ao ponto inicial da avaliação e, se a expressão continuar verdadeira, o programa
continua também com a execução do bloco de comandos, constituindo um laço de
repetições, o qual só é interrompido quando a expressão avaliada retornar um valor
falso (FALSE).

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Estruturas de Controle
 FOR
O FOR é uma estrutura de controle que estabelece um laço de repetição baseado em
um contador; é muito similar ao comando WHILE. O FOR é controlado por um bloco de
três comandos que estabelecem uma contagem, ou seja, o bloco de comandos será
executado um certo número de vezes.
for (expr1; expr2; expr3)
{
comandos
}
Exemplo:
for (int i = 1; i <= 10; i++)
 Resultado:
{
Serial.print(i); 12345678910
}

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Estruturas de Controle
 SWITCH
O comando switch é uma estrutura que simula uma bateria de testes sobre uma variá-
vel. É similar a uma série de comandos IF sobre a mesma expressão. Freqüentemente,
é necessário comparar a mesma variável com valores diferentes e executar uma ação
específica em cada um destes casos.

No fluxograma a seguir vemos que, para cada teste condicional (CASE), existe
um bloco de comandos a ser executado caso a expressão avaliada retorne
verdadeiro (TRUE). Caso a expressão retorne falso (FALSE), o switch parte para a
próxima expressão a ser avaliada, até que não tenha mais expressões para avaliar.
Caso todas as expressões sejam falsas, o switch executará o bloco de códigos
epresentado pelo identificador default.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Figura – Fluxo do comando SWITCH

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Sintaxe do comando:
Int expressão
Exemplo:
switch (expressao)
{
case "valor 1":
// comandos
break;
case "valor 2":
// comandos
break;
case "valor n";
// comandos
break;
default:
// comandos
}

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Funções do ARDUINO
O Arduino já possui funções internas para
manipulação de I/O digital e analógico assim como
funções para manipulações de bits, matemáticas,
comunicação entre outras. A seguir serão
apresentadas algumas dessas funções.
Funções de Entrada/Saída Digital
pinMode()
Configura um pino especifico para ser entrada ou saída
digital. Sintaxe:
pinMode(pino, modo)
Parametros:
Pino: deve-se colocar o numero correspondente ao pino
que se deseja configurar, conforme placa que está
trabalhando.
Modo: deve-se colocar o modo que deseja configurar o
pino. INPUT, OUTPUT, INPUT_PULLUP.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
digitalWrite()
Coloca um nível lógico Alto (HIGH, 5V) ou baixo
(LOW, 0V) em um pino configurado como saída
digital.
Sintaxe
digitalWrite(pino, valor)
Parâmetros
pino: Numero correspondente ao pino;
valor: HIGH OU LOW

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
digitalRead()
Lê o valor presente e um pino digital. Este valor
pode ser HIGH ou LOW.
Sintaxe:
digitalRead(pino)

Parâmetros:
Pino: valor correspondente ao pino que se deseja
ler.
Retorno
HIGH ou LOW. Exemplo:

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Funções de Entrada

Analógica analogReference()
Configura a referencia de tensão para a conversão
analógica/digital.
Os tipos possíveis de configurações são:
• DEFAULT: a tensão padrão para conversão é a
tensão de alimentação da placa. 5 Voltas para
placas alimentadas com 5 volts e 3.3 Voltas para
placas alimentadas com 3.3 V
• INTERNAL1V1: referência de 1,1V, Apenas no
Arduino mega;
• INTERNAL2V56: referência interna de 5,6 V,
apenas no Arduino mega;
• EXTERNAL: Referência de tensão aplicada no
pino AREF(valor entre 0 e 5V).

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Sintaxe:
analogReference(tipo)
Parametros:
TIPO: DEFAULT, INTERNAL1V1,
INTERNAL2V56, EXTERNAL.
analogRead()
Lê o valor presente em um pino configurado
como entrada analógica. Internamente o Arduino
possui um conversor A/D de 10 bits. Dessa
forma o valor retornado por esta função estará
na faixa de 0 a 1023 conforme o valor presente
no pino.
Sintaxe:
analogRead(pino)
Parâmetros:
Pino: valor do pino configurado como entrada
analógica(0 a 5 na maioria da placas, 0 a 7 na
MINI e NANO, 0 a 15 na MEGA).
Retorno Int(0 a 1023)

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Funções de temporização
millis()
Retorna o numero de milissegundos desde que a
placa começou a executar o programa. Este
número retorna a zero após aproximadamente 50
dias.
Sintaxe:
time = millis();
Parâmetros:
Nenhum Retorno:(retorna um numero que vai
crescendo no decorrer do programa que varia que
começa do 0, ele cresce 1,2,3,4 a cada ms)
unsigned long
Exemplo:

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
delay()
Pausa o programa por um tempo em milissegundos
passado no parâmetro.
Sintaxe:
delay(ms)
Parâmetros:
ms: valor de milissegundos que se deseja
esperar(unsigned long)
Retorno:
Nenhum

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Subtituindo delay por millis no Arduino

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Saída digital - Piscar LED

O exemplo mais simples para iniciar a programação


do Arduino, que pode ser considerado como o
conhecido “Hello World” das linguagens de
programação, consiste em acionar um LED através
de uma saída digital.
A placa Arduino Uno já possui um Led ligado ao
pino digital 13 que pode ser utilizado para o teste, a
ligação desse LED é exibida a seguir

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Exercício 1:
Criar um sketch para acionar 4 LED, conectados aos
pinos 10,11,12,13. Os LEDs devem piscar da seguinte
forma:
1. Ligar os LEDs 13, 11 e desligar os LEDs 12,10.
2. Aguardar 1 segundo
3. Desligar os LEDs 13, 11 e ligar os LEDs 12,10.
4. Aguardar 1 segundo
5. Repetir o processo.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Entrada Digital – Lendo tecla

O Arduino pode ler Os pinos são divididos em analógicos e digitais,


valores de entradas conforme a figura abaixo:
digitais e/ou analógicas.
As entradas digitais
detectam níveis lógicos
nos pinos. As entradas
analógicas medem uma
faixa de tensão no pino.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Para ler uma entrada digital utiliza-se a função
digitalRead() ela retorna o valor presente no pino.
Porém antes de ler o valor presente no pino deve-
se configurar o pino correspondente como entrada Exemplo
utilizando a função pinMode().

O abaixo é exibido o esquema elétrico para leitura


de uma tecla:

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Os microcontroladores Atmega usados para o Para iniciar o estudo da entrada
Arduino contêm embarcados 6 canais de conversão analógica, a maneira mais simples e
analógica-digital (A/D). O conversor do Arduino tem rápida é ligando um potenciômetro a
uma resolução de 10 bits, retornando inteiros entre uma entrada analógica, conforme
0 e 1023. Enquanto a função principal das portas esquema apresentado em seguida:
analógicas para a maioria dos usuários do Arduino
é ler sensores, as portas analógicas também tem a
funcionalidade de entrada/saída de propósito geral
(GPIO) (da mesma forma que as portas digitais
0~13). Consequentemente, se o usuário precisar
mais entradas/saídas de propósito geral, e todas as
portas analógicas não estiverem em uso, estas
podem ser usadas para GPIO.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Se girarmos o cursor do potenciômetro,
alteramos a resistência em cada lado do
contato elétrico que vai conectado ao
terminal central do botão. Isso provoca a
mudança na proximidade do terminal
central aos 5 volts ou GND o que implica
numa mudança no valor analógico de
entrada. Quando o cursor for levado até o
final da escala, teremos, por exemplo, zero
volt a ser fornecido ao pino de entrada do
Arduino e, assim, ao lê-lo obtémse 0.
Quando giramos o cursor até o outro
extremo da escala, haverá 5 volts a ser
fornecido ao pino do Arduino e, ao lê-lo,
teremos 1023. Em qualquer posição
intermediária do cursor, teremos um valor
entre 0 e 1023, que será proporcional à
tensão elétrica sendo aplicada ao pino do
Arduino.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Exercício 3:
Elaborar um sketch para ler um potenciômetro e
acender 8 leds nas saídas digitais que
representarão o nível de tensão na entrada
analógica como um bargraph. Quando entrada for
zero volts todos os leds estarão apagados e quando
for 5 Volts todos estarão acesos e qualquer valor
dentro desse intervalo deve acender os leds
proporcionalmente.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Saída PWM

A saída PWM no Arduino pode ser feita através da


função analogWrite(), que pode ser utilizada para
controle diversos, como por exemplo a intensidade
do brilho de um led conectado ao ARDUINO.
A técnica de PWM (do inglês Pulse width
modulation) consiste em emular um sinal analógico
através de pulsos digitais.
PWM consiste na variação proporcional dos pulsos,
mantendo a frequência constante. Saídas de baixo
nível de sinal analógico são conseguidas com pulso
curtos de nível lógico alto, já saídas com maior nível
de sinal analógico são conseguidos através de
períodos maiores de pulso em nível alto.
A figura a seguir exibe a modulação PWM para
variar a intensidade de um led:

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
O Arduino possui pinos específicos com essa
função. Na placa ARDUINO UNO, pode se utilizar
os pinos 3,5,6,9,10 e 11 para esta função.
A função analogWrite deve ser utilizada da seguinte
forma:
Sintaxe:
analogWrite(pino, valor);
Onde o parâmetro pino corresponde ao pino que
será gerado o sinal PWM e valor corresponde ao
duty cycle, ou seja, o valor que permanecerá em
nível alto o sinal.
O valor deve ser de 0 a 255 onde 0 a saída
permanece sempre em nível zero e 225 a saída
permanece sempre em nível alto.
O sketch a seguir exibe como controlar a
intensidade de um led através da leitura de um sinal
analógico em um potenciômetro.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao
Exercício 5
Desenvolver um sketch para controlar o brilho do
led através de duas teclas onde uma aumenta o
brilho do led e outra diminui o brilho do led.

Instituto de Telecomunicações | Bairro dos CTTs, Km7 – Luanda/Angola | Tel.: 940747200 | E-mail: [email protected] | www.itel.gov.ao

Você também pode gostar