programação básica em arduino aula 4 · 4 ufsc –programação básica em arduino - 2015 crie...

28
Execução: Laboratório de Automação e Robótica Móvel Programação Básica em Arduino – Aula 4

Upload: others

Post on 21-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

Execução:

Laboratório de Automação e Robótica Móvel

Programação Básica em Arduino – Aula 4

Page 2: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

Resistor variável

Page 3: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

33UFSC – Programação Básica em Arduino - 2015

Potenciômetro

Page 4: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

44UFSC – Programação Básica em Arduino - 2015

Crie um circuito com potenciômetro controlando a intensidade de um LED.

Com o mesmo circuito anterior, controle um buzzer.

Page 5: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito
Page 6: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

66UFSC – Programação Básica em Arduino - 2015

Page 7: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

O monitor serial é utilizado para comunicação entre o Arduino e o computador (PC).

O monitor serial pode ser aberto no menu tools opção serial monitor, ou pressionando as teclas CTRL+SHIFT+M.

As principais funções do monitor serial são: begin(), read(), write(), print(), println() e available().

7UFSC – Programação Básica em Arduino - 2015

Page 8: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

Algumas funções bastante usadas:◦ begin(): inicializa a comunicação entre o

Arduino e um computador;◦ read(): recebe caracteres inseridos no

monitor serial;◦ print(): imprime caracteres no monitor serial;◦ println(): imprime caracteres no monitor

serial, mas causa uma quebra de linha no final;

◦ available(): retorna o número de bytes disponíveis no buffer de leitura do monitor serial.

8UFSC – Programação Básica em Arduino - 2015

Page 9: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

Imprimindo uma mensagem no monitor serial

9UFSC – Programação Básica em Arduino - 2015

Page 10: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

Saída no monitor serial

10UFSC – Programação Básica em Arduino - 2015

Page 11: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

Faça um programa que ao apertar um botão,incremente uma variável, e ao clicar em outrobotão, diminua o valor da variável, e mostre ovalor da variável a cada pressionar de botão.

Page 12: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito
Page 13: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

O Arduino UNO possui 6 (seis) portasanalógicas.

O conversor analógico-digital doArduino é de 10 (dez) bits, logo a faixade valores lidos varia de 0 a 1023.

As portas analógicas no Arduino UNOsão identificadas como A0, A1, A2, A3,A4 e A5. Estas portas também podemser identificadas por 14 (A0), 15 (A1),16 (A2), 17 (A3), 18 (A4) e 19 (A5).

1313UFSC – Programação Básica em Arduino - 2015

Page 14: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

Na seção “Portas Digitais” vimos que para lerdados em uma porta digital precisávamosusar uma função chamada digitalRead().

De forma semelhante, para fazer uma leiturade dados em uma porta analógica usaremosanalogRead().

1414UFSC – Programação Básica em Arduino - 2015

Page 15: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

1515UFSC – Programação Básica em Arduino - 2015

Lendo dados de um potenciômetro

Page 16: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

1616UFSC – Programação Básica em Arduino - 2015

Lendo dados de um potenciômetro

Page 17: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

Exercício:◦ Fazer um programa que leia uma entrada analógica

de um potenciômetro, e acenda um led caso aleitura for maior que 500, e apague o mesmo ledcaso for menor.

Page 18: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

1818UFSC – Programação Básica em Arduino - 2015

Lendo dados de um potenciômetro e acionando um LED

Page 19: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

1919UFSC – Programação Básica em Arduino - 2015

Lendo dados de um potenciômetro e acionando um LED

Page 20: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

2020UFSC – Programação Básica em Arduino - 2015

Mapeando valores◦ Algumas vezes precisamos alterar valores

que se encontram dentro de umadeterminada faixa, de modo a obter um novovalor, proporcional ou inversamenteproporcional ao primeiro, e que se enquadreem uma nova faixa de valores.

◦ A biblioteca do Arduino possui uma funçãochamada map(), que realiza essa tarefa.

Page 21: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

2121UFSC – Programação Básica em Arduino - 2015

Mapeando valores

novo_valor = map(valor, min_in, max_in, min_out, max_out);

Onde:

novo_valor recebe o valor já modificado pela função map();

valor é o dado a ser alterado;

min_in é o menor valor da faixa de entrada;

max_in é o maior valor da faixa de entrada;

min_out é o menor valor da faixa de saída;

max_out é o maior valor da faixa de saída.

Page 22: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

2222UFSC – Programação Básica em Arduino - 2015

Mapeando valores

Page 23: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

2323UFSC – Programação Básica em Arduino - 2015

A Modulação por Largura de Pulso(Pulse Width Modulation – PWM) é umatécnica que nos permite controlar aquantidade de energia enviada parauma saída digital.

Essa modulação é feita definindo-se umciclo de trabalho que determina a fraçãode tempo que o sinal fica no estadoativo.

Page 24: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

2424UFSC – Programação Básica em Arduino - 2015

Extraído de Teach Yourself PIC Microcontrollers for Absolute Beginners – M. Amer Iqbal Qureshi, 2006

Page 25: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

2525UFSC – Programação Básica em Arduino - 2015

O Arduino UNO possui 6 (seis) portasPWM - 3, 5, 6, 9, 10 e 11.

O sinal PWM pode variar de 0 a 255 epara ativá-lo basta usar a seguinteinstrução em uma das portas PWM:◦ analogWrite(pin, valor);

Note que as portas PWM são todasdigitais, porém o sinal é modulado“como se fosse” um sinal analógico.

Page 26: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

2626UFSC – Programação Básica em Arduino - 2015

Exemplo: Usando o PWM para controlar a intensidade de luz emitida por um LED.

Page 27: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

2727UFSC – Programação Básica em Arduino - 2015

Desenvolva um sistema de controle de intensidade de um buzzer.

Para o problema anterior adicione um controle de um LED, que deve ter sua intensidade luminosa, diretamente proporcional ao som do buzzer.

Adicione nesse problema uma mensagem em tela, indicando a intensidade do buzzer e do LED.

Page 28: Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie um circuito com potenciômetro controlando a intensidade de um LED. Com o mesmo circuito

2828UFSC – Programação Básica em Arduino - 2015

Desenvolva um sistema para jogos de pergunta e reposta. Esse sistema deve ter 2 botões, um LED para cada botão e um buzzer. No momento em que um botão for clicado, o seu LED correspondente deve ligar e o BUZZER deve apitar. Se isso ocorrer o LED oponente não pode ser acionado.

O LED e buzzer devem parar no momento em que o botão for solto.