Arduino Introdução aos Básicos Leonardo Mauro P. Moraes Universidade Federal de Mato Grosso do Sul - UFMS Ponta Porã - MS 2016
1 Introdução 2 Arduino 3 4 Encerramento
Introdução Arduino 1 Introdução Arduino Versões Segurança 2 Arduino 3 4 Encerramento
Introdução Arduino O que é o Arduino? Arduino é uma plataforma de prototipagem eletrônica de hardware livre, com suporte de entrada/saída embutido e uma linguagem de programação padrão, a qual tem origem em Wiring (essencialmente C/C++). Arduino é uma ferramenta para criar computadores que podem sentir e controlar mais o mundo que seu PC. Ele é uma plataforma física de computação de código aberto baseado numa simples placa microcontroladora, e um ambiente de desenvolvimento para escrever o código da placa.
Introdução Arduino Exemplos Figura: Exemplos de aplicações do Arduino.
Leonardo Mauro P. Moraes - UFMS/CPPP Introdução Versões Versões Famosas (a) Mega (b) Uno (c) Nano Figura: Figuras das placas de Arduino.
Introdução Versões Versões Famosas (a) Due (b) Intel Galileo Figura: Figuras das placas de Arduino.
Introdução Versões Versões Famosas (a) Flora (b) Lilypad Figura: Figuras das placas de Arduino.
Introdução Segurança Segurança: Importante! Não utilize "fios"totalmente desencapados; Observe a utilização de resistores em alguns componentes; Não conecte em fontes de alta voltagem; Desconecte do computador ao mexer no circuito; Evite conectar algo sem saber o que está fazendo.
Arduino Placa 1 Introdução 2 Arduino Placa Programação 3 4 Encerramento
Leonardo Mauro P. Moraes - UFMS/CPPP Arduino Placa Principais Portas GND - Pino Tera; 5V e 3.3V - Pino Energia; 0 a 13 - Portas Digitais; A0 e A5 - Portas Analogicas.
Arduino Programação "Hello World" 1. Instalar a IDE; 2. Plugar e instalar o driver do Arduino; (Caso não dê para instalar: Atualizar o driver em Gerenciador de Dispositivos); 3. Ferramentas Placa Arduino UNO; 4. Ferramentas Porta (Selecionar Porta); 5. Arquivo Carregar.
Arduino Programação "Hello World" Setup(): Executado uma única vez, é a inicialização do programa; Loop(): Função principal, realiza repetições enquanto o Arduino estiver ligado.
Arduino Programação "Hello World" Setup() void setup ( ) { // Seta porta d i g i t a l 13 como s a i d a pinmode ( 1 3, OUTPUT) ; Loop() void loop ( ) { // Exemplo para p i s c a r o LED d i g i t a l W r i t e ( 1 3, HIGH ) ; delay ( 1 0 0 0 ) ; d i g i t a l W r i t e ( 1 3, LOW) ; delay ( 1 0 0 0 ) ;
Arduino Programação Conceitos Declaração: int Led = 13; Case-sensitive. Setup: pinmode(led, OUTPUT); OUTPUT ou INPUT; Define o modo de operação do pino. Declaração // Declaracao de v a r i a v e l i n t Led = 1 3 ; void setup ( ) { pinmode ( Led, OUTPUT) ;
Arduino Programação Conceitos Loop: digitalwrite(led, HIGH); HIGH = Ligar (1); LOW = Desligar (0); delay(200); Esta função faz com que o processo fique parado por 200 ms; Declaração void loop ( ) { // Exemplo para p i s c a r o LED, // com v a r i a v e l d i g i t a l W r i t e ( Led, HIGH ) ; delay ( 2 0 0 ) ; d i g i t a l W r i t e ( Led, LOW) ; delay ( 2 0 0 ) ;
Base 1 Introdução 2 Arduino 3 Base Buzzer Pulse Width Modulation Potenciômetro Mensagem Serial Sensor de Luminosidade Push Button Sensor de Temperatura 4 Encerramento
Base Introdução Base:, normalmente, necessários para a realização de projetos; Protoboard; Jumper; Led; Resistores;
Base Protoboard Figura: Protoboard: componente para auxiliar nas conexões.
Base Jumper Figura: Jumper: componente para realizar as conexões.
Base Protoboard + Jumper Figura: Exemplo de conexão.
Base Led Figura: Led: Lampadas coloridas de baixa voltagem. Importante: A "perna"maior do Led sempre será conectada ao resistor; E a "perna"menor é conectada ao GND.
Base Resistores Figura: Resistor: Retém a voltagem.
Base Resistores Finalidade: diminuir a tensão entre os terminais; Medido em OHMs; Fórmula: V = R * I; V: voltagem/tensão (Volts - V); R: resistência (OHMs - Ω ); I: Intensidade (Amperes - A). Problema Um aluno precisa ligar um led ao Arduino. Sabendo que o Arduino Trabalha em 5 Volts e o Led usa apenas 2 Volts numa corrente de 10 ma. Calcule a resistência que é necessária para o led acender sem queimar.
Base Resistores Figura: Resistor: Como saber as resistência.
Base Projeto 1 Lembre-se: "Perna"menor do Led no GND; "Perna"maior do Led no resistor no pino 7. Problema Usando a porta 7 do Arduino, acenda um led durante 2 segundos e apague por 1/3 segundo.
Base Projeto 1 Figura: Circuito. Código / P r o j e t o 1 / i n t Led = 7 ; void setup ( ) { pinmode ( Led, OUTPUT) ; void loop ( ) { d i g i t a l W r i t e ( Led, HIGH ) ; delay ( 2 0 0 0 ) ; d i g i t a l W r i t e ( Led, LOW) ; delay ( 3 0 0 ) ;
Base Projeto 2 Problema Faça um semáforo: Tem 3 estados de luzes: apenas vermelho; apenas verde; ou a amarelo piscando. O semáforo fica verde por 2 segundos; O semáforo fica vermelhor por 4 segundos; A luz amarela pisca 5 vezes antes de mudar para o verde, isso demora 2 segundos. Figura: Semáforo.
Base Projeto 2 Código / P r o j e t o 2 / i n t Vermelho = 3 ; i n t Amarelo = 4 ; i n t Verde = 5 ; void setup ( ) { pinmode ( Vermelho, OUTPUT) ; pinmode ( Amarelo, OUTPUT) ; pinmode ( Verde, OUTPUT) ; void loop ( ) { i n t i ; // Vermelho d i g i t a l W r i t e ( Vermelho, HIGH ) ; d i g i t a l W r i t e ( Amarelo, LOW) ; d i g i t a l W r i t e ( Verde, LOW) ; delay ( 4 0 0 0 ) ; // Amarelo d i g i t a l W r i t e ( Vermelho, LOW) ; f o r ( i =0; i <5; i ++){ d i g i t a l W r i t e ( Amarelo, HIGH ) ; delay ( 2 0 0 ) ; d i g i t a l W r i t e ( Amarelo, LOW) ; delay ( 2 0 0 ) ; // Verde d i g i t a l W r i t e ( Verde, HIGH ) ; delay ( 2 0 0 0 ) ;
Buzzer Buzzer Figura: Buzzer: componente que emite sons.
Buzzer Projeto 3 Figura: Circuito. Problema Faça o Buzzer apitar durante 0.5 segundo de 1 em 1 segundo.
Buzzer Projeto 3 Figura: Circuito. Código / P r o j e t o 3 / i n t Buzzer = 3 ; void setup ( ) { pinmode ( Buzzer, OUTPUT) ; void loop ( ) { d i g i t a l W r i t e ( Buzzer, HIGH ) ; delay ( 5 0 0 ) ; d i g i t a l W r i t e ( Buzzer, LOW) ; delay ( 1 0 0 0 ) ;
Pulse Width Modulation Pulse Width Modulation - PWM Significa Modulação por largura de pulso; Liga e desliga a porta tão rapidamente que nossos olhos não conseguem enxergar; Utilizado para controlar intensidade; Há 6 saídas PWM no Arduino UNO; São as portas que tem o antes do número. Como fazer? PWM void loop ( ) { // porta d i g i t a l 11 0% analogwrite ( 1 1, 0 ) ; // porta d i g i t a l 11 25% analogwrite ( 1 1, 6 4 ) ; // porta d i g i t a l 11 50% analogwrite ( 1 1, 1 2 7 ) ; // porta d i g i t a l 11 75% analogwrite ( 1 1, 1 9 1 ) ; // porta d i g i t a l 11 100% analogwrite ( 1 1, 2 5 5 ) ;
Pulse Width Modulation Projeto 4 Problema: Utilize uma das saídas PWM do Arduino para acender um led de forma dimerizada (de 0 a 100%), ida e volta. Como fazer? PWM void loop ( ) { // porta d i g i t a l 11 0% analogwrite ( 1 1, 0 ) ; // porta d i g i t a l 11 25% analogwrite ( 1 1, 6 4 ) ; // porta d i g i t a l 11 50% analogwrite ( 1 1, 1 2 7 ) ; // porta d i g i t a l 11 75% analogwrite ( 1 1, 1 9 1 ) ; // porta d i g i t a l 11 100% analogwrite ( 1 1, 2 5 5 ) ;
Pulse Width Modulation Projeto 4 Código / P r o j e t o 4 / i n t Led = 1 1 ; void setup ( ) { pinmode ( Led, OUTPUT) ; void loop ( ) { i n t i ; f o r ( i =0; i <256; i ++){ analogwrite ( Led, i ) ; f o r ( i =255; i >=0; i ){ analogwrite ( Led, i ) ;
Potenciômetro Potenciômetro Figura: Potenciômetro: componente eletrônico que possui resistência elétrica ajustável (Porta analógica).
Potenciômetro Potenciômetro Declaração: pinmode(pino, INPUT): Declara que o pino do potenciômetro é de entrada de dados; var = analogwrite(pino): Faz a leitura analógica do potenciômetro e salva em armazenamento. Como fazer? Potenciômetro / Potenciometro / i n t Pot = A0 ; void setup ( ) { pinmode ( Pot, INPUT ) ; void loop ( ) { i n t l e i t u r a ; l e i t u r a = analogread ( Pot ) ;
Potenciômetro Projeto 5 Figura: Circuito. Problema Faça o led piscar mais rápido ou mais devagar conforme o giro do potenciômetro.
Potenciômetro Projeto 5 Figura: Circuito. Código / P r o j e t o 5 / i n t Pot = A0 ; i n t Led = 7 ; void setup ( ) { pinmode ( Pot, INPUT ) ; pinmode ( Led, OUTPUT) ; void loop ( ) { i n t l e i t u r a = 3 analogread ( Pot ) ; d i g i t a l W r i t e ( Led, HIGH ) ; delay ( l e i t u r a ) ; d i g i t a l W r i t e ( Led, LOW) ; delay ( l e i t u r a ) ;
Mensagem Serial Mensagem Serial Declaração: Serial.begin(9600): Configuração da taxa de transferência; Serial.println(msg): Transmite por serial a mensagem com quebra de linha; Serial.print(msg): Transmite por serial a mensagem sem quebra de linha. Aplicação: Basicamente um meio para transmitir mensagens console, para o computador; Possui diversos canais para o uso de mais de um Arduino, simultaneamente;
Mensagem Serial Projeto 6 Como fazer? Mensagem Serial // Seta s a i d a das mensagens void setup ( ) { S e r i a l. begin ( 9 6 0 0 ) ; Problema Leia o valor do potenciômetro e imprima no console (9600). void loop ( ) { i n t var = 5 ; S e r i a l. p r i n t ( " Mensagem : " ) ; S e r i a l. p r i n t l n ( var ) ;
Mensagem Serial Projeto 6 Código / P r o j e t o 6 / i n t Pot = A0 ; void setup ( ) { S e r i a l. begin ( 9 6 0 0 ) ; pinmode ( Pot, INPUT ) ; void loop ( ) { i n t l e i t u r a = analogread ( Pot ) ; S e r i a l. p r i n t ( " Potenciometro : " ) ; S e r i a l. p r i n t l n ( l e i t u r a ) ;
Sensor de Luminosidade Sensor de Luminosidade - LDR Figura: Sensor de Luminosidade: componente eletrônico que realiza uma leitura da luminosidade do ambiente.
Sensor de Luminosidade Projeto 7 Figura: Circuito. Problema Leia o sensor de luminosidade e acenda um led, caso esteja baixo o valor.
Sensor de Luminosidade Projeto 7 Figura: Circuito. Código // Lendo Sensor i n t Pot = A0 ; void setup ( ) { pinmode ( Pot, INPUT ) ; void loop ( ) { i n t l e i t u r a = analogread ( Pot ) ;
Sensor de Luminosidade Projeto 7 Código / P r o j e t o 7 / i n t Pot = A0 ; i n t Led = 7 ; void setup ( ) { pinmode ( Pot, INPUT ) ; pinmode ( Led, OUTPUT) ; void loop ( ) { i n t l e i t u r a = analogread ( Pot ) ; i f ( l e i t u r a < xxx ){ d i g i t a l W r i t e ( Led, HIGH ) ; e l s e { d i g i t a l W r i t e ( Led, LOW) ;
Push Button Push Button Figura: Push Button: componente de toque, ao ser pressionado é ativado (porta digital).
Push Button Push Button Figura: Circuito.
Push Button Push Button Figura: Circuito. Código // L e i t u r a de Botao i n t Button = 2 ; void setup ( ) { S e r i a l. begin ( 9 6 0 0 ) ; pinmode ( Button, INPUT ) ; void loop ( ) { i n t l e i t u r a = d i g i t a l R e a d ( Button ) ; S e r i a l. p r i n t l n ( " C l i c k : "+l e i t u r a ) ;
Push Button Projeto 8 Figura: Circuito. Problema Implementar um mecanismo de senha, no qual deve-se saber se os botões foram clicados na ordem correta, so então o led será acesso. Lembre-se: utilizar 3 botões para gerar a senha; a senha pode ter a ordem que você preferir.
Push Button Projeto 8 Figura: Circuito.
Push Button Projeto 8 Código / P r o j e t o 8 / i n t But1 = 4 ; i n t But2 = 3 ; i n t But3 = 2 ; i n t Led = 7 ; i n t senha = 0 ; void setup ( ) { S e r i a l. begin ( 9 6 0 0 ) ; pinmode ( But1, INPUT ) ; pinmode ( But2, INPUT ) ; pinmode ( But3, INPUT ) ; pinmode ( Led, OUTPUT) ; senha = 0 ; void loop ( ) { i n t l e i t u r a 1 = d i g i t a l R e a d ( But1 ) ; i n t l e i t u r a 2 = d i g i t a l R e a d ( But2 ) ; i n t l e i t u r a 3 = d i g i t a l R e a d ( But3 ) ; S e r i a l. p r i n t l n ( " " ) ; S e r i a l. p r i n t l n ( " Senha : "+senha ) ; S e r i a l. p r i n t l n ( " C l i c k 1 : "+l e i t u r a 1 ) ; S e r i a l. p r i n t l n ( " C l i c k 2 : "+l e i t u r a 2 ) ; S e r i a l. p r i n t l n ( " C l i c k 3 : "+l e i t u r a 3 ) ; // Botao 1 i f ( senha == 0 && l e i t u r a 1 == 1){ senha = 1 ; delay ( 1 0 0 0 ) ; e l s e i f ( senha!= 0 && l e i t u r a 1 == 1){ senha = 0 ; d i g i t a l W r i t e ( Led, LOW) ;
Push Button Projeto 8 Código // Botao 2 i f ( senha == 1 && l e i t u r a 3 == 1){ senha = 2 ; delay ( 1 0 0 0 ) ; e l s e i f ( senha!= 1 && l e i t u r a 3 == 1){ senha = 0 ; d i g i t a l W r i t e ( Led, LOW) ; // Botao 3 i f ( senha == 2 && l e i t u r a 3 == 1){ senha = 0 ; d i g i t a l W r i t e ( Led, HIGH ) ; delay ( 1 0 0 0 ) ; e l s e i f ( senha!= 2 && l e i t u r a 3 == 1){ senha = 0 ; d i g i t a l W r i t e ( Led, LOW) ;
Sensor de Temperatura Sensor de Temperatura - LM35 Figura: Sensor de Temperatura: componente eletrônico que realiza uma leitura da temperatura do ambiente.
Sensor de Temperatura Projeto 9 Figura: Circuito. Problema Faça a leitura do LM35 e acenda um led quando a temperatura for maior que 30 graus (multiplique o valor por 0,48875855)
Sensor de Temperatura Projeto 9 Figura: Circuito. Código // Lendo Sensor i n t Pot = A0 ; void setup ( ) { pinmode ( Pot, INPUT ) ; void loop ( ) { i n t l e i t u r a = analogread ( Pot ) ;
Sensor de Temperatura Projeto 9 Figura: Circuito.
Sensor de Temperatura Projeto 9 Código / P r o j e t o 9 / i n t Pot = A0 ; i n t Led = 7 ; void setup ( ) { pinmode ( Pot, INPUT ) ; pinmode ( Led, OUTPUT) ; void loop ( ) { i n t l e i t u r a = 0.48875855 analogread ( Pot ) ; i f ( l e i t u r a > xxx ){ d i g i t a l W r i t e ( Led, HIGH ) ; e l s e { d i g i t a l W r i t e ( Led, LOW) ;
Encerramento Projeto 10 1 Introdução 2 Arduino 3 4 Encerramento Projeto 10 Referências
Encerramento Projeto 10 Projeto 10 - Final Plus Ultra Problema Idéia: Competição de Projetos; Faça o projeto de sua preferência com os componentes disponíveis; Utilize pelo menos 5 (cinco) componentes estudados; Lembre-se: Vocês vão apresentar o projeto, no minimo 10 (dez) minutos e no máximo 15 (quinze); Dupla, de dois. Boa sorte!
Encerramento Referências Referências http://arduino.cc/en/main/faq http://www.arduino.cc/en/guide/introduction https://circuits.io