Upload
hangoc
View
214
Download
0
Embed Size (px)
Citation preview
TIR - Tecnologias Inovadoras de Rede Programação Arduino
http://www.boscojr.com/iot/arduino.html
Por: João Bosco Teixeira Junior
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
E/S – Sensor x Atuador
Sensores
Atuador (Mecânico, Visual, Térmico, etc)
Driver
Fenômeno Físico:Temperatura, pHUmidade, Luz, Gravidade, etc.
V,A,Ω
Bitsou
Pulsos
Ambiente
Analógicos
Digitais
Circuito de ControleEm relação ao arduino:● Sensores são
entradas● Atuadores são
saída
Configurando E/S
● A configuração de um Pino do arduino como entrada ou saída é feita usando a função pinMode
● Sintaxe:● 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: ●
● É 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);
pinMode( int pino, int Modo)
pinMode( 6 , 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:●
● msec é o tempo em milissegundos e● usec é o tempo em microssegundos;
Delay( int msec)DelayMicroseconds (int usec)
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
Editor deTextos
Área deMensagens
Novo
SalvarCarregar
Gravar noArduíno
Compilar
Exercício de Fixação
Faça os leds piscarem em sequênciahttp://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.
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;
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.
Arduino 2
-
+13
10K
1KLED
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).
Arduino 2
-
+13
10K
1K
LDR
LED
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.
Arduino A0
-
+
10K
LDR
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();
Estruturas de Controle – Loops: For e While
Comando de inicialização
Condição deParada
ComandoExecutadoA cada passo
for(int indice = 0; indice<valor ; indice++){ bloco_de_comandos;}
while (condição) { bloco_de_comandos;}
Enquanto a condição for verdadeira será Executado bloco_de_comandos1.
Chaves delimitam os blocos de comandos é necessário seu uso quando o bloco tem mais de um comando
Estrutura de Controle – Switch – Caseswitch (var){ case valor1: bloco_de_comandos; break; ... case valorN: bloco_de_comandos; break; Default: bloco_de_comandos;}
Se var igual a valor1 esse blocoserá executado
Chaves delimitam o escopo do Switch
Se var igual a valorN esse blocoserá executado
O bloco default será executado se var não for igual a nenhum dos valores especificados no case