Buscar

NP-217-Capitulo-3-Parte1.pdf

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Capítulo 3
Sistemas de Controle
1º. Semestre / 2016 1
Baseados na Plataforma Arduino
(parte 1)
Prof. Evandro Luís Brandão Gomes
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino
• Arduino é uma plataforma de prototipagem open-source
(código aberto), baseada nos princípios de flexibilidade e 
facilidade de uso para projetos de hardware e software.
1º. Semestre / 2016 2
• Consiste de uma placa com microcontrolador da família 
ATmega, preparada para receber sinais de sensores e acionar 
atuadores.
• Sua linguagem de programação é a Wiring (baseado em C/C++).
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
O projeto Arduino
• Os Layouts, programas, bootloaders e IDE estão disponíveis para 
Download gratuitamente na internet(www.arduino.cc).
1º. Semestre / 2016 3
• Todo o hardware é aberto e os projetos estão disponíveis na internet;
Desenvolvido por: Massimo Banzi, David Cuartielles, Tom Igoe, 
Gianluca Martino e David Mellis, na Itália, em 2005
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Modelos de Arduino
1º. Semestre / 2016 4
Arduino Duemilanove Arduino UNO
Arduino MEGA
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Tipos de Arduino
1º. Semestre / 2016 5
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Tipos de Arduino
• Arduino é OPEN-SOURCE. O nome Arduino é marca registrada!
• Similares:
1º. Semestre / 2016 6
Freeduino Seeduino Severino
Brasuino
Pinguino (PIC) Cortino – ARM Cortex M3 (32 bits)
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
A placa do Arduino UNO- Diagrama de Blocos
Atmega328p
1º. Semestre / 2016 7
Regulador de 
Tensão
Cristal 
(16Mhz)
Gravador de 
Memória 
Flash
Microcontrolador
ATmega
(com Bootloader)
Fonte de
Alimentação
Conector
USB
Conectores
(Portas de I/O)
RESET
ICSP
Memória Flash
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
A placa do Arduino Mega 2560 - Diagrama de Blocos
Atmega2560
1º. Semestre / 2016 8
Regulador de 
Tensão
Cristal 
(16Mhz)
Gravador de 
Memória 
Flash
Microcontrolador
ATmega
(com Bootloader)
Fonte de
Alimentação
Conector
USB
Conectores
(Portas de I/O)
RESET
ICSP
Memória Flash
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
A placa do Arduino Mega 2560 - Diagrama de Blocos
1º. Semestre / 2016 9
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Shields do Arduino
• Os “Arduinos Shields” são placas que podem ser conectadas
diretamente ao Arduino aumentando sua capacidade!
• Pode-se utilizar mais de um Shield simultaneamente.
1º. Semestre / 2016 10
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Shields e Módulos disponíveis (no Inatel)
Relé com
2 canais Sensor de 
Temperatura
1º. Semestre / 2016 11
Sensor Ultrassônico
Ponte H
Temperatura
e Umidade
Modulo RX/TX 433MHz
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino Mega-2560 (usado no Laboratório)
1º. Semestre / 2016 12
54 pinos de I/O DIGITAIS – 14 destes podem ser utilizados para PWM.
16 pinos de entradas ANALÓGICAS.
4 “portas” de Comunicação Serial
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software
• Partes básicas do programa Arduino na linguagem Wiring.
void setup( ) 
{ 
....
setup() � é executado uma só vez assim que a placa for 
ligada é nesta função que se define quais pinos 
serão entrada e saídas e outros parâmetros de 
inicialização.
1º. Semestre / 2016 13
....
}
void loop( ) 
{
....
}
inicialização.
loop() � terá o código de execução em loop infinito. 
Pode-se criar outras funções diferentes assim como em 
C/C++.
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software
• Tipos de Variáveis:
boolean � pode assumir true ou false. Ou também HIGH e LOW.
byte � Valor de 0 a 255
int � Números inteiros (de -32768 a 32767).
1º. Semestre / 2016 14
int � Números inteiros (de -32768 a 32767).
unsigned int �Números inteiros sem sinal (de 0 a 65535).
long int � Números inteiros longos (de -2147483648 a 2147483647).
unsigned long� Números inteiros longos sem sinal (de 0 a 4294967295).
float � Números fracionários (-3.4028235 E+38 a 3.4028235 E+38).
char � Um caractere (8 bits, pode assumir valores de 0 a 255)
string � conjunto de caracteres.
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software
1º. Semestre / 2016 15
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
• 54 pinos de entrada e saída digitais
• Não colocar mais 5V em qualquer pino de entrada/saída do Arduino.
• Os níveis digitais do Arduino são:
1º. Semestre / 2016 16
– Nível Lógico 0 (LOW) = 0~2V (na entrada), 0V (na saída)
– Nível Lógico 1 (HIGH) = 3~5V(na entrada), 5V (na saída)
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
• Funções:
pinMode(porta, modo); � configura uma porta digital para entrada ou 
saída. Deve ser feito dentro da setup()
porta = número da porta
modo = INPUT ou OUTPUT
1º. Semestre / 2016 17
modo = INPUT ou OUTPUT
digitalWrite(porta, valor); � envia 0 ou 1 para a porta de saída digital.
porta = número da porta
valor = 0 ou 1 ou HIGH ou LOW
valor = digitalRead(porta); � lê a porta de entrada e retorna um 0 ou 1. 
porta = número da porta
valor = valor lido da porta digital (0 ou 1)
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
Exemplo 1 - Saída:
Pisca o LED na porta 3 a cada 1 segundo
1º. Semestre / 2016 18
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
Exercício 1: Dado o circuito abaixo, faça um programa para piscar todos os LEDs em 
uma frequência de 1Hz (500ms acesos e 500ms apagados)
1º. Semestre / 2016 19
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
Exercício 2:
Dado o circuito, faça um programa
para:
Cada LED ficar acesso durante
1s. (use o sentido do LED D1 para
1º. Semestre / 2016 20
1s. (use o sentido do LED D1 para
o LED D4)
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Exercício proposto para realização em LABORATÓRIO:
a) Monte o circuito do Exercício 2, escreva o programa e 
faça os testes necessários para verificação do correto 
funcionamento.
1º. Semestre / 2016 21
funcionamento.
b) Com as orientações do monitor/professor de laboratório, 
faça as alterações solicitadas por ele, faça os testes 
necessários e apresente os resultados.
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
O ARDUINO possui Resistores de Pull-Up nos pinos Digitais:
• Quando usados como saída, ficam desligados.
• Quando usados como entrada, o programador pode configurar se os 
1º. Semestre / 2016 22
• Quando usados como entrada, o programador pode configurar se os 
resistores de Pull-Up vão ser ligados internamente ou não.
• Exemplo:
void setup()
{
pinMode(5,INPUT); // não ligao resistor de Pull-ip na porta 5
pinMode(7,INPUT_PULLUP); // liga o resistor de Pull-Up na porta 7
...
} 
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
Exemplo 2 - Entrada:
Push-Buttom aberto � LED apagado Push-Buttom pressionado � LED aceso
1º. Semestre / 2016 23
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
Exercício-3: Dado o circuito da figura, elabore um programa que alterne o estado do 
LED se o Botão ficar pressionado. Ao soltar o Botão o Led fica apagado. Utilize um 
tempo de 2 seg. para alternar o estado do LED (2 seg. aceso e 2 seg. apagado).
Questões para analisar:
1º. Semestre / 2016 24
Questões para analisar:
- Qual o tempo de resposta da 
leitura do Botão (analise o pior 
caso)?
- Como resolver isso?
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
Exercício Proposto-1: Uma empresa possui 3 sensores (A, B e C) instalados em 
locais importantes.Faça o programa de controle para as seguintes situações:
-Enquanto o circuito estiver ligado o 
LED L1 deve permanecer ligado
1º. Semestre / 2016 25
- Quando um dos sensores for ativado, 
apenas LED L2 deve acender.
- Quando dois sensores forem 
ativados apenas LED L3 deve acender
- Quando todos os sensores ativarem, 
o LED L4 deve ficar piscando (500ms)
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Exercício proposto para realização em LABORATÓRIO:
a) Monte o circuito do Exercício Proposto-1, escreva o 
programa e faça os testes necessários para verificação 
do correto funcionamento.
1º. Semestre / 2016 26
do correto funcionamento.
b) Com as orientações do monitor/professor de laboratório, 
faça as alterações solicitadas por ele, faça os testes 
necessários e apresente os resultados.
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
Exercício 4 – Um simples Sistema de Irrigação:
Um sistema de irrigação automática de terrenos deve ser projetado para ter os 
seguintes requisitos::
- Só entrar em operação se a chave (Lig/Des) estiver acionada. Quando em 
1º. Semestre / 2016 27
- Só entrar em operação se a chave (Lig/Des) estiver acionada. Quando em 
operação liga uma sinalização “EM OPERAÇÃO”. 
- Monitorar o estado do terreno, através de um sensor de umidade que indica o 
estado do terreno (1=úmido ou 0=seco);
- Se o sensor indicar “Terreno Seco”, uma Bomba de sucção de água deve ligar até 
que o sensor passe a indicar “ Terreno Úmido”. Quando a Bomba estiver ligada, 
acionar uma sinalização “BOMBA” e quando a Bomba for desligada, esta 
sinalização deve ser desligada também.
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
Exercício 4 – Um simples Sistema de Irrigação:
Diagrama de blocos do Sistema:
1º. Semestre / 2016 28
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Arduino – Software� Portas Digitais
Exercício 4 – Um simples Sistema de Irrigação:
Pede-se:
1. Projetar o circuito de controle deste Sistema (mostrar o diagrama elétrico 
esquemático);
1º. Semestre / 2016 29
esquemático);
2. Projetar o software de controle (mostrar o código escrito para o Sistema);
3. Implementar e testar o funcionamento do Sistema;
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Exercício proposto para realização em LABORATÓRIO:
a) Monte o circuito do Exercício 4, escreva o programa e 
faça os testes necessários para verificação do correto 
funcionamento.
1º. Semestre / 2016 30
funcionamento.
b) Com as orientações do monitor/professor de laboratório, 
faça as alterações solicitadas por ele, faça os testes 
necessários e apresente os resultados.
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
ANEXO
Algumas funções da Biblioteca 
1º. Semestre / 2016 31
Algumas funções da Biblioteca 
do Arduino (Wiring)
http://arduino.cc/en/Reference/HomePage
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
delayMicroseconds()
Descrição: 
faz uma pausa no programa por “n” microsegundos. O valor máximo aceito 
como parâmetro é 16.383
1º. Semestre / 2016 32
como parâmetro é 16.383
Sintaxe: delayMicroseconds(us) 
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
micros()
Descrição: 
Retorna o tempo em micro-segundos desde que o programa começou a ser 
executado no ARDUINO.
1º. Semestre / 2016 33
executado no ARDUINO.
Este valor volta a zero (overflow) em aproximadamente 70 minutos.
Sintaxe: micros() 
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
random()
Descrição: 
Retorna um número pseudo-randômico.
1º. Semestre / 2016 34
Sintaxe: random(max) ou random(min, max)
Onde,
max � valor máximo gerado 
min � valor mínimo gerado
o valor será gerado entre min e max-1
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
randomSeed(semente)
Descrição: 
Inicializa o gerador de números pseudo-randômicos.
1º. Semestre / 2016 35
Sintaxe: randomSeed(semente)
Onde,
semente � deve ser um valor inteiro. Este valor irá inicializar a semente de 
geração dos números pseudo-randômicos gerados pela função random()
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
map(valor, deLow, deHigh, paraLow, paraHigh)
Descrição: 
Faz o mapeamento de um valor entre uma faixa para outra faixa de valores.
1º. Semestre / 2016 36
Sintaxe: map(valor, deLow, deHigh, paraLow, paraHigh)
Onde,
valor � valor a ser mapeado
deLow e deHigh � limites da 1ª. Faixa de valores
paraLow, paraHigh � limite da 2ª. Faixa de valores a ser convertido
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
map(valor, deLow, deHigh, paraLow, paraHigh) (continuação)
Exemplo :
1º. Semestre / 2016 37
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
constrain(x, a, b)
Descrição:
Retorna o valor de x se ele está entre a e b.
1º. Semestre / 2016 38
Sintaxe: constrain(x, a, b)
Irá retornar:
x � se x estiver entre a e b
a � se x for menor que a
b � se x for maior que b
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
pulseIn()
Descrição:
Retorna a largura de um pulso de entrada em micro-segundos.
1º. Semestre / 2016 39
Sintaxe: pulseIn(pino, valor) ou pulseIn(pino, valor, timeout)
Onde,
pino � número do pino definido como porta de entrada
valor � tipo de pulso a ser lido (HIGH ou LOW)
timeout (opcional) � tempo para espera máxima do início do pulso
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
pulseIn() (continuação)
Exemplo:
1º. Semestre / 2016 40
...
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
bitSet()
Descrição:
Coloca o valorde um bit específico em 1 (SET).
1º. Semestre / 2016 41
Sintaxe: bitSet(x, n)
Onde,
x � variável 
n � número do bit a ser setado na variável x.
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
bitClear()
Descrição:
Coloca o valor de um bit específico em 0 (CLEAR).
1º. Semestre / 2016 42
Sintaxe: bitClear(x,n)
Onde,
x � variável 
n � número do bit a ser resetado na variável x.
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
bitRead()
Descrição:
Lê o valor de um bit específico e retorna 0 ou 1.
1º. Semestre / 2016 43
Sintaxe: bitRead(x,n)
Onde,
x � variável 
n � número do bit a ser lido na variável x.
Capítulo 3
Sistemas de Controle Baseados na 
Plataforma Arduino (parte 1)
Outras Funções da Biblioteca da Linguagem Wiring
bitWrite()
Descrição:
Escreve o valor de um bit específico como 0 ou 1 (SET ou CLEAR).
1º. Semestre / 2016 44
Sintaxe: bitWrite(x,n, b)
Onde,
x � variável 
n � número do bit a ser setado na variável x.
b � o valor a ser escrito no bit n na variável x (0 ou 1)

Outros materiais

Outros materiais