Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie...
Transcript of Programação Básica em Arduino Aula 4 · 4 UFSC –Programação Básica em Arduino - 2015 Crie...
![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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/1.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/2.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/3.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/4.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/5.jpg)
![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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/6.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/7.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/8.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/9.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/10.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/11.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/12.jpg)
![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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/13.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/14.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/15.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/16.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/17.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/18.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/19.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/20.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/21.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/22.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/23.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/24.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/25.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/26.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/27.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051806/6000431cd8de2b5b9d3a7bfd/html5/thumbnails/28.jpg)
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.