Baixe o app para aproveitar ainda mais
Prévia do material em texto
Leonardo Mauro P. Moraes - UFMS/CPPP Arduino Introdução aos Componentes Básicos Leonardo Mauro P. Moraes Universidade Federal de Mato Grosso do Sul - UFMS Ponta Porã - MS 2016 Leonardo Mauro P. Moraes - UFMS/CPPP 1 Introdução 2 Arduino 3 Componentes 4 Encerramento Leonardo Mauro P. Moraes - UFMS/CPPP Introdução Arduino 1 Introdução Arduino Versões Segurança 2 Arduino 3 Componentes 4 Encerramento Leonardo Mauro P. Moraes - UFMS/CPPP 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. Leonardo Mauro P. Moraes - UFMS/CPPP 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. Leonardo Mauro P. Moraes - UFMS/CPPP Introdução Versões Versões Famosas (a) Due (b) Intel Galileo Figura: Figuras das placas de Arduino. Leonardo Mauro P. Moraes - UFMS/CPPP Introdução Versões Versões Famosas (a) Flora (b) Lilypad Figura: Figuras das placas de Arduino. Leonardo Mauro P. Moraes - UFMS/CPPP 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. Leonardo Mauro P. Moraes - UFMS/CPPP Arduino Placa 1 Introdução 2 Arduino Placa Programação 3 Componentes 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. Leonardo Mauro P. Moraes - UFMS/CPPP 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. Leonardo Mauro P. Moraes - UFMS/CPPP 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. Leonardo Mauro P. Moraes - UFMS/CPPP Arduino Programação "Hello World" Setup() void setup ( ){ // Seta porta d i g i t a l 13 como sa ida pinMode (13 , 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 (13 , HIGH) ; de lay ( 1 0 0 0 ) ; d i g i t a l W r i t e (13 , LOW) ; de lay ( 1 0 0 0 ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP 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 = 13 ; void setup ( ){ pinMode ( Led , OUTPUT) ; } Leonardo Mauro P. Moraes - UFMS/CPPP 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) ; de lay ( 2 0 0 ) ; d i g i t a l W r i t e ( Led , LOW) ; de lay ( 2 0 0 ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Base 1 Introdução 2 Arduino 3 Componentes Base Buzzer Pulse Width Modulation Potenciômetro Mensagem Serial Sensor de Luminosidade Push Button Sensor de Temperatura 4 Encerramento Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Base Introdução Componentes Base: Componentes, normalmente, necessários para a realização de projetos; Protoboard; Jumper; Led; Resistores; Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Base Protoboard Figura: Protoboard: componente para auxiliar nas conexões. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Base Jumper Figura: Jumper: componente para realizar as conexões. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Base Protoboard + Jumper Figura: Exemplo de conexão. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Base Resistores Figura: Resistor: Retém a voltagem. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Base Resistores Figura: Resistor: Como saber as resistência. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Base Projeto 1 Figura: Circuito. Código /∗ Pro je to 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) ; de lay ( 2 0 0 0 ) ; d i g i t a l W r i t e ( Led , LOW) ; de lay ( 3 0 0 ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Base Projeto 2 Código /∗ Pro je to 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) ; de lay ( 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) ; de lay ( 2 0 0 ) ; d i g i t a l W r i t e ( Amarelo , LOW) ; de lay ( 2 0 0 ) ; } // Verde d i g i t a l W r i t e ( Verde , HIGH) ; de lay ( 2 0 0 0 ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Buzzer Buzzer Figura: Buzzer: componente que emite sons. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Buzzer Projeto 3 Figura: Circuito. Problema Faça o Buzzer apitar durante 0.5 segundo de 1 em 1 segundo. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Buzzer Projeto 3 Figura: Circuito. Código /∗ Pro je to 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) ; de lay ( 5 0 0 ) ; d i g i t a l W r i t e ( Buzzer , LOW) ; de lay ( 1 0 0 0 ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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 temo antes do número. Como fazer? PWM void loop ( ){ // porta d i g i t a l 11 − 0% analogWrite (11 , 0 ) ; // porta d i g i t a l 11 − 25% analogWrite (11 , 6 4 ) ; // porta d i g i t a l 11 − 50% analogWrite (11 , 1 2 7 ) ; // porta d i g i t a l 11 − 75% analogWrite (11 , 1 9 1 ) ; // porta d i g i t a l 11 − 100% analogWrite (11 , 2 5 5 ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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 (11 , 0 ) ; // porta d i g i t a l 11 − 25% analogWrite (11 , 6 4 ) ; // porta d i g i t a l 11 − 50% analogWrite (11 , 1 2 7 ) ; // porta d i g i t a l 11 − 75% analogWrite (11 , 1 9 1 ) ; // porta d i g i t a l 11 − 100% analogWrite (11 , 2 5 5 ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Pulse Width Modulation Projeto 4 Código /∗ Pro je to 4 ∗/ i n t Led = 11 ; 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 ) ; } } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Potenciômetro Potenciômetro Figura: Potenciômetro: componente eletrônico que possui resistência elétrica ajustável (Porta analógica). Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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 ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Potenciômetro Projeto 5 Figura: Circuito. Problema Faça o led piscar mais rápido ou mais devagar conforme o giro do potenciômetro. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Potenciômetro Projeto 5 Figura: Circuito. Código /∗ Pro je to 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) ; de lay ( l e i t u r a ) ; d i g i t a l W r i t e ( Led , LOW) ; de lay ( l e i t u r a ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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; Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Mensagem Serial Projeto 6 Como fazer? Mensagem Serial // Seta sa ida das mensagens void setup ( ){ S e r i a l . begin ( 9 6 0 0 ) ; } 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 ) ; } Problema Leia o valor do potenciômetro e imprima no console (9600). Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Mensagem Serial Projeto 6 Código /∗ Pro je to 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 ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Sensor de Luminosidade Sensor de Luminosidade - LDR Figura: Sensor de Luminosidade: componente eletrônico que realiza uma leitura da luminosidade do ambiente. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Sensor de Luminosidade Projeto 7 Figura: Circuito. Problema Leia o sensor de luminosidade e acenda um led, caso esteja baixo o valor. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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 ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Sensor de Luminosidade Projeto 7 Código /∗ Pro je to 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) ; } } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Push Button Push Button Figura: Push Button: componente de toque, ao ser pressionado é ativado (porta digital). Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Push Button Push Button Figura: Circuito. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Push Button Push Button Figura: Circuito. Código // Le i tura 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 ea d ( Button ) ; S e r i a l . p r i n t l n ( " Cl i ck : "+l e i t u r a ) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Push Button Projeto 8 Figura: Circuito. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Push Button Projeto 8 Código /∗ Pro je to 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 ta l R ea d ( But1 ) ; i n t l e i t u r a 2 = d i g i ta l R ea d ( But2 ) ; i n t l e i t u r a 3 = d i g i ta l R ea 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 ( " Cl i ck 1 : "+l e i t u r a 1 ) ; S e r i a l . p r i n t l n ( " Cl i ck 2 : "+l e i t u r a 2 ) ; S e r i a l . p r i n t l n ( " Cl i ck 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 ; de lay ( 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) ; } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Push Button Projeto 8 Código // Botao 2 i f ( senha == 1 && l e i t u r a 3 == 1){ senha = 2 ; de lay ( 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) ; de lay ( 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) ; } } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Sensor de Temperatura Sensor de Temperatura - LM35 Figura: Sensor de Temperatura: componente eletrônico que realiza uma leitura da temperatura do ambiente. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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) Leonardo Mauro P. Moraes - UFMS/CPPP Componentes 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 ); } Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Sensor de Temperatura Projeto 9 Figura: Circuito. Leonardo Mauro P. Moraes - UFMS/CPPP Componentes Sensor de Temperatura Projeto 9 Código /∗ Pro je to 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) ; } } Leonardo Mauro P. Moraes - UFMS/CPPP Encerramento Projeto 10 1 Introdução 2 Arduino 3 Componentes 4 Encerramento Projeto 10 Referências Leonardo Mauro P. Moraes - UFMS/CPPP 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! Leonardo Mauro P. Moraes - UFMS/CPPP Encerramento Referências Referências http://arduino.cc/en/Main/FAQ http://www.arduino.cc/en/Guide/Introduction https://circuits.io Introdução Arduino Versões Segurança Arduino Placa Programação Componentes Base Buzzer Pulse Width Modulation Potenciômetro Mensagem Serial Sensor de Luminosidade Push Button Sensor de Temperatura Encerramento Projeto 10 Referências
Compartilhar