Você está na página 1de 40

TIR - Tecnologias Inovadoras de Rede

Programação Arduino
http://www.boscojr.com/iot/arduino.html

Por: João Bosco Teixeira Junior


Estrutura de controle –
Switch Case: Ex2.1
Ementa
● A placa Arduino
● Sketch
● Entrada e Saída
– Sensores x Atuadores
● Temporização
● Utilizando a porta serial
● Tipos de E/S (Digital, Analógica, PWM)
– Controlar o brilho do led
● Estruturas de Controle
● Bibliotecas externas
A placa Arduino
Sketch
E/S – Sensor x Atuador
Analógicos Circuito de Controle
Em relação ao
V,A,Ω arduino:
Sensores ● Sensores são
Bits entradas
ou
Pulsos ● Atuadores são
Fenômeno Físico: Digitais saída
Temperatura, pH
Umidade, Luz,
Gravidade, etc. Driver

Atuador
(Mecânico, Visual, Térmico, etc)

Ambiente
Configurando E/S
● A configuração de um Pino do arduino como entrada
ou saída é feita usando a função pinMode
● Sintaxe: pinMode( int pino, int Modo)
● Na biblioteca padrão do arduino estão definidas duas
constantes que podem ser usadas como parâmetro
mode: INPUT e OUTPUT
● Exemplo: Configurar o pino 6 como entrada:
● pinMode( 6 , INPUT );
● É uma boa prática colocar o pino em uma variável,
caso haja mudanças na função do pino :
int pin = 6;
pinMode( pin , INPUT);
Temporização
● É comum os sistemas de controle
necessitar executar algum tipo de espera.
● Essa espera poderá ser feita usando-se as
funções: delay e delayMicroseconds.
● Sintaxes: Delay( int msec)
● DelayMicroseconds (int usec)
● msec é o tempo em milissegundos e
● usec é o tempo em microssegundos;
Ex1: Blink ( pisca led 13 )
● A ide conta com inúmeros exemplos:
● Exemplo Blink
– Menu: File ->
● examples ->

– 01. Basics ->


● Blink
Ex1: Blink ( pisca led 13 )
● Agora escolha a placa e porta
● Placa:
– Menu: Tools ->
● Board

● Porta
– Menu: Tools ->
● Serial port
A Interface de
Programação – IDE
Menu

Barra de Botões

Carregar Salvar

Editor de Novo
Textos
Gravar no
Arduíno

Compilar

Área de
Mensagens
Ex1.2: Blink Leds

Ajuste o sketch blink para


fazer todos os leds piscarem
ao mesmo tempo: 5 min
Ex1.2: Resposta

Variáveis

Ajustar os pinos
como saída

Liga os leds

Espera
Desliga os leds
1s
Exercício de Fixação

Faça os leds piscarem em sequência


http://www.youtube.com/watch?v=O7aO-XzmBVg
Porta Serial
● A Biblioteca padrão do arduino trás
consigo uma série de funções permitem ler
e escrever da porta serial do arduino.
– Serial.begin(int velocidade): Inicia a porta serial
– int Serial.read(): Ler um byte da porta serial
● Essa função não retorna até que haja um byte

– Serial.print( char *s ): Imprime uma cadeia de


caracteres na porta serial.
– Serial.println( char *s ): O mesmo do anterior só
que imprime um “new line” no final da string
– int Serial.available(): Aguarda um byte na porta.
Ex2: Imprimindo pela
porta serial
● Ajustando o
exemplo 1.2 para
imprimir pela porta
serial:
Console Serial
● Para abrir o console serial vá ao menu
tools -> Serial monitor
Ex 2.1 Lendo da porta
serial
● Vamos agora fazer um programa que ler o
led que deve piscar conforme indicado
pelo usuário via porta serial. Para isso
vamos usar como base o exemplo 2;
Ex 2.1: Código

Variável que vai


Guardar o byte
Lido da porta

Ler da
Porta

Ajusta o led
Arduino: Tipos de E/S
● O arduino dispõe de três modos de enviar ou
receber estímulos do mundo externo. São
eles:
– Digital: Pinos 0 a 13
● Envio ou Leitura: 0 ou 1 (0v ou 5v)

– Analógico Pinos A0 a A5
● Leitura: 0 a 1023 (entre 0v e 5v)

– PWM: Pinos 3, 5, 6, 9, 10 e 11
● Envio de Pulsos com largura (pesquisar)
E/S digital
● Para fazer E/S digital a biblioteca padrão do
arduino dispõe de duas funções:
● int estado = digitalRead( int pino );
– O pino está entre 0 e 13 e deve ser configurado
como entrada (INPUT) via função pinMode();
● digitalWrite( int pino, int estado );
– O pino deve ser entre 0 e 13 e deve está
configurado como saída (OUTPUT) também via
função pinMode();
– A biblioteca padrão do arduino dispõe de dois
valores LOW e HIGH, que pode ser usados para
estabelecer o estado do pino.
Ex 3: Trabalhando com
botões
● Acender e apagar o led 13 conforme de
pressiona o botão. O primeiro passo é
estabelecer o circuito. Vamos usar como
entrada o pino 2.
LED
1K
13 +

Arduino 2

10K

-
Ex3: Código
Ex 3.1: Sensor de
iluminação
● Acender e apagar o led 13 conforme a
luminosidade do ambiente. O primeiro
passo é estabelecer o circuito. Vamos usar
como entrada o pino 2 (mesmo código).
LED
1K
13 +

LDR

Arduino 2

10K

-
E/S Analógica
● A entrada analógica pode ser
implementada usando a função
analogRead existente na biblioteca
padrão do arduino.
● int nivel = analogRead( int pino );
– A variável nível armazenará o valor da leitura
analógica. A biblioteca padrão do arduino
define as constantes A0 a A6 para os pinos
analógicos.
Ex 4: Sensor de Nível de
iluminação
● Vamos usar como entrada o pino A0. E o
nível de iluminação será enviado a saída
serial.

LDR

Arduino A0

10K

-
Ex4: Código
E/S: PWM
● PWM: Pulse-Width Modulation
– Modulação por largura de pulso
● Pode ser usada para controlar a potencia
entregue a um atuador essa função está
Somente disponível nos pinos digitais 3,
5, 6, 9, 10 e 11;
● Na biblioteca padrão está disponível a função
analogWrite();
E/S: PWM
● Sintaxe: analogWrite( int pino, int valor);
– Pino: 3, 5, 6, 9, 10 e 11;
– Valor: 0 a 255;
Ex5 : Ajustando o brilho
do Led 10
Documentação

Mais detalhes em:


http://arduino.cc/en/Tutorial/HomePage
Estruturas de controle
● If
● For
● While
● Switch case
Estruturas de Controle –
Loops: For e While
Comando
Comando de Condição de Executado
inicialização Parada A cada passo

for(int indice = 0; indice<valor ; indice++){


bloco_de_comandos;
}

while (condição) { Chaves delimitam os blocos de comandos


bloco_de_comandos; é necessário seu uso quando o bloco tem
} mais de um comando

Enquanto a condição for verdadeira será


Executado bloco_de_comandos1.
Estrutura de Controle –
For: Ajustando ex1.2
Estrutura de Controle –
Switch – Case
Chaves delimitam o escopo do Switch
switch (var){
case valor1:
bloco_de_comandos; Se var igual a valor1 esse bloco
break; será executado

...
case valorN:
bloco_de_comandos;
Se var igual a valorN esse bloco
break; será executado
Default: O bloco default será executado se
var não for igual a nenhum dos
bloco_de_comandos; valores especificados no case
}
Estrutura de controle –
Switch Case: Ex2.1
Uso de Bibliotecas

Instalação de novas bibliotecas


Biblioteca Newping

https://arduino-new-
ping.googlecode.com/files/NewPing_v1.5.zip
Tópicos Avançados
● Interrupções;
● Espera sem delays;
● Registradores para pegar status das portas;
FIM

Você também pode gostar