Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso de Introdução ao Arduino 1 CURSO DE INTRODUÇÃO AO ARDUINO Autor: Vinícius Neves de Figueiredo Estudante de Engenharia Elétrica - UFF Curso de Introdução ao Arduino 2 PARTE 1 – INTRUDUÇÃO Curso de Introdução ao Arduino 3 O QUE É ARDUINO? O arduino é um Microcontrolador em que é possível ser reprogramado, no mundo da computação e da eletrônica isso é chamado de open source. Com ele, você será capaz de controlar inúmeros dispositivos e componentes de circuitos elétricos, por exemplo, LEDs, motores, chaves, a luz de uma casa, sensores, temperatura, a potencia de um determinado equipamento, um robô, e muito mais. O arduino O Arduino UNO é um microcontrolador em que possui 13 entradas do tipo digital 5 do tipo analógica, sendo que 6 das digitais possuem o recurso de PWM, que conta também com 2 pinos de comunicação RX/TX, e mais saídas de 3,3V e 5V, e alguns outros recursos que serão comentados durante o curso. Portas digitais Pinos de comunicação RX/TX Portas Analógicas Logo neste início foram falados muitos conceitos que são comuns dentro do mundo da eletrônica, vamos começar definindo-os. Curso de Introdução ao Arduino 4 Entradas e saídas analógicas e digitais A porta digital tem o seu funcionamento de acordo com os princípios boolianos, ou seja, possui apenas dois estados: Verdadeiro ou Falso, certo ou errado, 0 ou 1, High ou Low. No caso do arduino, ser High ou Low quer dizer que está passando corrente elétrica por aquela porta ou não. No gráfico acima em t ϵ [0,2] não existe corrente elétrica, logo o estado é igual a LOW, enquanto que em t ϵ [2,4] está passando uma corrente de 1A. OBS.: A portas digitais do arduino suportam até 40mA A porta analógica é capaz de receber e fornecer tensões distintas de HIGH ou LOW. Ela tem a resolução de 10 bits (0 até 1023) para medir uma tensão de 0 até 5V, utilizando uma simples regra de três para isso. Por exemplo, se temos uma tensão de 3,5V: Temos que , como ele só lê valor positivo, então o arduino irá te fornecer o número 716. A seguir, um exemplo de um sinal analógico Curso de Introdução ao Arduino 5 PWM (Pulse Width Modulation) Este é um conceito muito famoso dentro do ramo da engenharia, ele é utilizado para controlar a potência de determinado dispositivo, no arduino está localizado junto às portas digitais que possuem o símbolo . Com ele podemos controlar o que é chamamos de Duty Cycle, que é uma porcentagem da potência total que poderia ser entregue ao dispositivo. Exemplo de Duty Cycle: Porta de Rx / Tx (receiving / transmiting) Essas são as portas de comunicação do Arduino, elas são necessárias para adaptar uma comunicação bluetooth, wireless, rádio, dentre outros tipos... A Protoboard (breadboard) A protoboard é um ambiente de prototipagem que faz com que seja fácil a montagem e a desmontagem de circuitos elétricos, não precisando assim de soldas, junções e “gambiarras” no circuito. Trata-se de uma placa cheia de pequenos buracos de espaçamento e tamanho padronizados, em que praticamente todo componente eletrônico é compatível com a mesma. Esses pequenos orifícios estão conectados como será mostrado no esquema a seguir. Curso de Introdução ao Arduino 6 Será preciso um pouco de prática até que você possa criar os circuitos sem precisar pensar se está conectando o circuito em paralelo ou em série. É de boa prática energizar as trilhas da periferia da protoboard com a tensão que será utilizada no projeto. CIRCUITO EM SÉRIE E EM PARALELO NA PROTOBOARD Observe a protoboard acima, na parte de cima temos os LED conectados em série, enquanto que na parte de baixo da figura tempos os resistores conectados em paralelo. Se ligássemos estes LEDs em série com uma bateria poderíamos representar como: Curso de Introdução ao Arduino 7 Se ligássemos as resistências em paralelo e utilizando uma bateria como fonte de tensão, poderíamos representar como: LED (Light Emitter Diode) O led é um dispositivo que permite a passagem de corrente elétrica em apenas um sentido do catodo para o anodo, o LED de 5mm simples precisa de apenas 4mA para e 1,90V para ser ligado, com isso podemos ligar vários LEDs em paralelo utilizando a saída digital (max 40mA), porém só conseguimos ligar 2 LEDs em série! Curso de Introdução ao Arduino 8 Hello World (Eletrônica) Agora que aprendemos os conceitos iniciais, podemos começar a fazer as nossas experiências e assim aplicar todo o conhecimento que ganhamos até aqui. Iremos começar com um simples exemplo bem simples, iremos ligar um LED utilizando um botão. O botão funciona de maneira muito simples, ele é na verdade uma chave que está sempre aberta até que alguém o aperte. Quando isso acontece, ele vai deixar fluir corrente por todas as suas quatro “pernas” permitindo, por exemplo, controlar se vai passar corrente em um local ou não! O mesmo é utilizado em uma infinidade de eletrodomésticos e eletrônicos, a única diferença é que a empresa coloca uma capa neste botão para poder deixa-lo mais “amigável”. Montagem do circuito para acender o LED: Curso de Introdução ao Arduino 9 Exercícios Propostos 1. Ligue dois LEDs em série. 2. Ligue 4 LEDs em paralelo. 3. Porque não é possível ligar 3 LEDs em série? 4. Quantos LEDs são possíveis ligar em paralelo? (quantidade teórica) Programação Neste momento vocês já conseguem ligar um LED apertando um botão, mas seria mais interessante ligar o LED a partir de um sensor mesmo quando nós bem entendermos, concordam? Para isso precisamos da ajuda da programação. A Programação que o Arduino utiliza é uma espécie de programação clássica bem diferente da utilizada no NXT, é composto apenas linhas de código, essas são baseados em uma linguagem chamada C++, que nasceu na década de 80 e que até hoje é uma das linguagens mais “faladas” no mundo da computação, pelos seguintes motivos: Rápida; Fácil Uso; Portável (aceito em Linux, Windows, Mac e outras plataformas); Aceita em chips e microcontroladores (Esse é o nosso caso!); Curso de Introdução ao Arduino 10 TIPO DE DADOS Vamos Começar Falando sobre os tipos de dados, que nada mais são que as variáveis ou onde você vai poder armazenar seus dados. Neste curso trataremos apenas de 4 tipos de dados: um para tratar de números inteiros, dois para tratar de números não inteiros e um para caracteres. TIPO INT Para armazenar valores inteiros utilizamos o tipo ‘int’, com ele conseguimos armazenar números entre -32.768 até 32.767, ou seja, de até . Existem várias maneiras de iniciar uma variável, a seguir serão expostos alguns exemplos: TIPO DOUBLE / FLOAT O ‘double’ e o ‘float’ utilizados para armazenar números não inteiros, no caso do arduino os dois tipos significam exatamente a mesma coisa, na verdade, o hardware do arduino permite existir apenas o tipo Float, porém muitos programadores tem o habito de utilizar o tipo double quando programam em JAVA, C, C# entre outras linguagens pois com ele é possível armazenar um número com o dobro de precisão que o float a custo de um maior consumo damemória RAM do computador, então para satisfazer esse público o Arduino colocou o tipo double em sua sintaxe. Exemplo de utilização: Curso de Introdução ao Arduino 11 TIPO CHAR O tipo ‘char’ é utilizado para armazenar um caractere, com ele podemos armazenar símbolos do teclado segundo a tabela ASCII. Reparem que esta tabela correlaciona números inteiros, binários e hexadecimais com letras, o que quer dizer que o computador não entende o que é uma letra, ele na verdade consegue ler um binário ou um hexadecimal e traduz isso para uma letra, de maneira que possamos ler. Além disso, é possível inicializar letras como números, utilizando essa tabela: Segundo essa tabela, as duas linhas de código acima significam a mesma coisa. Curso de Introdução ao Arduino 12 COMO FUNCIONA O CÓDIGO DO ARDUINO? Na programação do Arduino, nós podemos separar o código em três trechos bem definidos como é mostrado na imagem acima. PRIMEIRA PARTE: A primeira parte é onde normalmente as variáveis são inicializadas, caso você inicialize as variáveis neste ponto, você pode utiliza-las em qualquer parte do código chamamos isso de variáveis globais. Além das variáveis, é possível adicionar nesta parte do código as bibliotecas que ajudarão a utilizar outros dispositivos e assim facilitará a nossa vida ao programar, este assunto abordaremos mais a frente neste curso. Obs.: Não é possível colocar qualquer tipo de comando para o Arduino executar nesta parte de código. SEGUNDA PARTE: A segunda parte do código é onde você normalmente configura o Arduino, é o local que você deve informar ao microcontrolador quais portas você irá no seu projeto e se ele está servindo como saída de dados ou entrada de dados. QUAIS DISPOSITIVOS A SEGUIR É ENTRADAS (INPUT) E QUAIS SÃO DE SAÍDAS (OUTPUT) DE DADOS? 1. Um sensor de temperatura 2. Um botão 3. Um LED 4. Um sensor de toque 5. Uma tela LCD 6. Uma caixa de som 7. Um ventilador Curso de Introdução ao Arduino 13 Nesta parte de código, o Arduino passará lendo apenas uma única vez, então você deve colocar o que acha interessante para este caso. Existe um exemplo clássico que é de fácil observação dentro das nossas casas, muitos eletrodomésticos assim que são ligados na energia elétrica dão um “beep” para indicar que estão funcionando corretamente ou simplesmente para avisar que estão ligados. TERCEIRA PARTE Esta será a parte em que deverá conter o seu algoritmo, quando o arduino começa a ler este trecho, ele entra em um loop infinito e não sai mais da parte do código até que a energia seja cortada ou se o botão do RESET seja pressionado. Todos os micros controladores fazem isso, por exemplo, a sua TV tem um sensor de infravermelho (módulo bluetooth nas mais modernas) que fica esperando vir o sinal de seu controle remoto, na verdade ele fica “rodando” um código em loop infinito de leitura do sensor infravermelho. Neste trecho do código é possível inserir absolutamente tudo: comandos, inicialização de variáveis e alocação de pinos do Arduino. Hello World (Controlado pelo Arduino) Agora que aprendemos para que serve cada parte do código do arduino podemos dar prosseguimento com o nosso curso. Vamos introduzir alguns comandos importantes para essa etapa. INICIANDO OS PINOS DE ENTRADA E SAÍDA Toda vez que queremos utilizar os pinos digitais do arduino, devemos dizer para ele se iremos utiliza-los como entrada ou se queremos utiliza-los como saída. Para fazermos isso basta digitarmos algo como a imagem abaixo: A sintaxe funciona de seguinte maneira: pinMode([número da porta correspondente], [INPUT ou OUTPUT]); É de boa prática de programação que ao invés de colocar um número no local que é para informar a porta deseja usar, colocar uma variável nomeada contendo o número, como podemos observar o exemplo do inicio da seção “Como funciona o código do Arduino”. Obs.: Não se esqueça do “ponto e virgula” no final de cada comando que você der, isso vem da herança da linguagem C++ que utiliza este caractere para dizer ao compilador do programa que o comando acabou. Em C++ a sintaxe é do tipo Case Sensitive, o que significa Curso de Introdução ao Arduino 14 que para ele a variável “int Arduino;” é diferente da variável “int arduino;” sendo assim, tome bastante cuidado na sintaxe, pois é fácil confundir pinmode ao invés de pinMode. O DELAY O comando de delay() é muito utilizado nos projetos do arduino, com ele podemos dizer por quanto tempo tal ação será executada. Tudo o que ele faz é travar o processador em um loop até que complete certa quantidade de tempo. O comando delay é contado em milissegundos, ou seja, se eu quero parar o meu processador durante um tempo de meio segundo, podemos escrever: O DIGITALWRITE O comando digitalWrite() serve para energizarmos os pinos digitais ou não. Esse comando será o responsável pelo controle de quase tudo dentro do seu código, para que funcione é necessário dizer em qual pino está querendo “escrever” e se deseja liga-lo ou desliga-lo (HIGH ou LOW). Por exemplo: Neste exemplo estamos dizendo para o arduino para ligar o pino onde está o led1. Agora estamos dizendo ao arduino para desligar o pino onde está localizado o led1 Curso de Introdução ao Arduino 15 PRÁTICA Vamos começar montando o circuito mais simples possível, ligaremos apenas um LED ao pino digital 8, em série com um resistor de 440, como é ilustrado na figura a seguir. Lembre-se que a posição do resistor não é importante, ele pode estar à frente do LED ou atrás do LED no circuito. O código a seguir vai fazer com que o LED acenda e apague a cada meio segundo: Agora que digitou o código basta apertar na tecla e dar o upload no Arduino. Caso tenha dado algum erro, verifique se o Arduino está selecionado na porta certa clicando em Tools > Serial Port, verifique também se em Board está selecionada a versão do Arduino que você está utilizando. Curso de Introdução ao Arduino 16 Exercícios Propostos 1. Faça 3 LEDs ligarem em sequência. 2. Faça uma simulação de um cruzamento de transito, utilizando os LEDs de cor vermelha, verde e amarelo. Parabéns você foi introduzido à programação e a eletrônica utilizando o Arduino!!! Curso de Introdução ao Arduino 17 PARTE 2 – SINAL ANALÓGICO Curso de Introdução ao Arduino 18 O SINAL ANALÓGICO Como foi comentado durante a parte introdutória desta apostila, o sinal analógico pode assumir valores diferentes de 0 ou 1, sendo assim o arduino trabalha com um conversor analógico / digital que faz com que entre um sinal de 0 a 5 volts e ele transforme em um número entre 0 e 1023. Então com isso podemos ter até 1024 opções para descrever valores de 0 até 5 Volts com o arduino. Graças a isso podemos utilizar sensores no arduino, porque em geral tudo o que um sensor faz é variar a sua resistência ou a sua impedância sobre a corrente. Você pode pensar... Bom, se estamos falando que ele lê a tensão de 0 a 5 Volts, então significa que o Arduino pode atuar como um voltímetro? E a resposta é SIM! As portas analógicas podem sim atuar como voltímetro, com a restrição que ele precisa estar dentro de um range (faixa) de tensão de até 5V, caso ultrapasse isso você pode queimar o arduino, então tome cuidado antes de plugar o fio neste local. Casoprecise medir uma tensão em um circuito que tenha mais do que 5V deverá construir um circuito divisor de tensão assunto importante dentro do “mundo” da eletricidade e de fácil implementação e aplicação. Já que estamos falando sobre a variação de tensão em um circuito, podemos falar sobre um resistor que é capaz de variar a sua resistência, chamado de POTÊNCIOMETRO. Curso de Introdução ao Arduino 19 Potenciômetro O potenciômetro é um elemento muito difundido em todos os ramos da eletrônica e muito fácil de ser encontrado em nossa volta. Por exemplo observe o que cada um destes produtos tem em comum: O que há por trás destes botões circulares é um potenciômetro, ele que faz com que você tenha um ajuste fino sobre alguma coisa. O potenciômetro também é muito estudado junto com a aula de física em eletricidade, o representamos desenhando da seguinte maneira: O potenciômetro que utilizaremos durante as nossas aulas será o potenciômetro linear, pois a sua resistência varia linearmente com o ângulo com que giramos o cursor. Curso de Introdução ao Arduino 20 Vamos fazer o primeiro teste com este elemento um LED e um resistor. Iremos variar a potência do LED apenas variando a posição do pino do potenciômetro. Observe o circuito montado abaixo: Obs.: Daqui para frente, não será mais colocado o arduino dentro no desenho quando não for utilizado alguma das portas de comunicação, podemos observar onde sendo utilizado o 5V ou o GND pela cor dos fios. Exercícios Propostos 1. Por que colocamos a resistência junto ao potenciômetro se ele já é uma resistência? 2. Desenhe o esquema do circuito acima. MULTÍMETRO O multímetro é um aparelho capaz de realizar medições em um circuito elétrico. Neste curso ele será fundamental ter fluidez em seu manuseio, com ele iremos medir a Tensão, Corrente e a resistência. Curso de Introdução ao Arduino 21 Para utilizarmos ele como se fosse um voltímetro, primeiramente verifique se a ponteira vermelha está ligada ao orifício que contem o símbolo V e a preta está no orifício do COM, agora basta inseri-lo no circuito em paralelo com o que gostaríamos de medir. Para utilizarmos o multímetro como um amperímetro, primeiramente verifique se a ponteira vermelha está ligada ao orifício que está escrito a quantidade máxima de ampère suportada e a preta no orifício escrito COM, agora basta ligar este fio em série com a parte do circuito que gostaria de medir. Para utilizarmos o multímetro como um ohmímetro, primeiramente verifique se a ponteira vermelha está ligada ao orifício com o símbolo e o preto no orifício escrito COM, agora basta ligar essas duas pernas em série com o dispositivo que deseja medir a resistência. OBS.: NUNCA MEDIR A RESISTÊNCIA EM UM CIRCUITO ENERGIZADO, CASO FAÇA ISSO PODERÁ QUEIMAR O APARELHO!!! Curso de Introdução ao Arduino 22 Exercícios Propostos Com o multímetro, faça as seguintes medições: 1. A tensão sobre o resistor R2; 2. A corrente que passa pelo circuito; 3. A resistência efetiva destes resistores. A PORTA ANALÓGICA A porta analógica do arduino se comporta como um voltímetro, porém não temos a presença de dois fios como é utilizado o voltímetro normalmente, isso ocorre porque o arduino deixa a “perna” do negativo aterrada, ou seja, na referencia de 0. Se formos medir a tensão do resistor R2 como mostrado na imagem acima ficaria: Esta porta é capaz apenas de medir tensões apenas de 0 até 5 V, transformando a tensão medida em um número de 0 até 1023 proporcionalmente. O responsável por esta medida é o conversor analógico/digital. A sintaxe para ler a porta analógica é: analogRead(Porta); No arduino UNO podemos ler as seguintes portas: A0 / A1 / A2 / A3 / A4 / A5. Curso de Introdução ao Arduino 23 Com esta porta também podemos “escrever” ,ou seja, mandar um sinal. Diferentemente da leitura (que é puramente analógica), quando mandamos um sinal diferente de HIGH e LOW ele na verdade irá fazer um PWM para representar tal sinal analógico. Sua sintaxe será: analogWrite(Porta, Tensão gerada (0 até 1023)); PRÁTICA Agora iremos controlar a velocidade que o LED irá piscar utilizando um potenciômetro, um arduino, um resistor e alguns cabos. OBS.: Colocamos o resistor em série com o potenciômetro apenas para evitar o curto circuito caso giremos o cursor até a resistência zero. PROGRAMANDO Observações: Neste código foram utilizadas constantes para descrever o led e o pot, logo não é possível reescrever estas variáveis durante o código. Curso de Introdução ao Arduino 24 Quando utilizamos as portas analógicas não é preciso declarar que estamos utilizando-as no trecho do void setup. O comando ‘if’ (comando de seleção) O comando de seleção if é um dos mais utilizados na programação estruturada, utilizamos ele para fazer a decisão entre dois casos distintos ou até mesmo buscando por uma condição distinta das demais. Com ele podemos filtrar coisas como: o botão está ou não apertado, se o sensor está marcando um valor acima ou abaixo de um determinado valor, entre outros. Sua sintaxe é bem simples: if(condição) { ... } else { ... } No caso de uma condição determinada (não dual), é possível suprimir o else e selecionar apenas um caso. OPERADORES Para fazer o controle das condições que queremos impor, devemos utilizar os operadores, a seguir é encontrada uma lista de operadores que podemos utilizar: Operador Função == Igual à != Diferente de > Maior que < Menor que >= Maior ou igual que <= Menor ou igual que % Resto da divisão || Or && And Curso de Introdução ao Arduino 25 A seguir estão ilustrados alguns exemplos de utilização deste comando: Os comandos ‘or’ e o ‘and’ fazem com que seja possível a sobre carga do comando if, ou seja, com ele podemos testar mais de uma condição. Por exemplo: No primeiro exemplo, ele irá assumir como verdade se qualquer um dos casos der verdadeiro. No segundo, ele irá assumir como verdade se e somente se os dois casos forem verdadeiros. PRÁTICA 1 Neste experimento iremos acender o LED através de um botão, porém controlado pelo arduino. Monte o circuito abaixo: Para lermos o estado do botão utilizaremos o comando digitalRead(), este comando serve para ler o estado das portas digitais, ou seja, se elas estão recebendo LOW ou HIGH. Sua sintaxe é: digitalRead(Número da Porta Digital); Curso de Introdução ao Arduino 26 PROGRAMANDO PRÁTICA 2 Neste exemplo prático, vamos detectar se o potenciômetro está tendendo para a esquerda ou para a direita. Tudo o que iremos fazer é ler a tensão em cima de um potenciômetro com a porta analógica pegando o número 1023 (5V) e dividir por 2, ou seja, 511 (2,5V), se for maior do que 511 o LED ‘D1’ irá acender, caso contrário o LED ‘D2’ irá acender. Tome como exercício, criar o circuito desenhado acima na protoboard. Obs.: tome cuidado para não deixar o potenciômetro chegar à resistência igual a zero. Curso de Introdução ao Arduino 27 PROGRAMANDO Repare que não é preciso dizer que o caso contrário da condição é <= 511, ele já subentende isso. A Conexão Serial A conexão serial é a forma em que o Arduino se conecta com os periféricos, ou seja, é através dele que podemos enviar mensagens para o computador representando dados obtidos, podemos assim então criarVoltímetros, Termômetros, dentre outros. Para iniciar uma conexão serial é necessário dizer a taxa de velocidade de transferência de bits para o periférico que irá receber estas informações, o valor mais utilizado é o de 9600, porém o arduino é capaz de trabalhar nas velocidade de: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, ou 115200. Caso um dia você vir a programar o arduino para receber dados nos 115200, porém alguns modelos ainda trabalham na taxa de 57600. A sintaxe para abrir uma conexão serial é: Serial.begin(Velocidade de taxa de transferência); Você deve iniciar esta configuração dentro de void setup(). Para enviar uma mensagem através do serial devemos utilizar a seguinte sintaxe: Serial.print(“Escreva aqui uma frase”); Serial.print(variável); Curso de Introdução ao Arduino 28 Serial.println(“Vai pular uma linha”); Podemos também ler dados do usuário, escritos pelo teclado: Serial.read(); Exemplo: int dados = Serial.read(); Exercícios: 1. Faça um programa para deixar o usuário decidir qual LED deseja ligar. O LDR (Light Dependet Resistor) O LDR em português Resistor Dependente de Luz ou Fotoresistência é um componente eletrônico passivo do tipo resistor variável, mais especificamente, é um resistor cuja resistência varia conforme a intensidade da luz que incide sobre ele. Tipicamente, à medida que a intensidade da luz aumenta a sua resistência diminui. Como a sua resistência varia com a luminosidade do meio ambiente, podemos utiliza-lo como um sensor de luminosidade, possibilitando fazer um universo de projetos. Como por exemplo: Curso de Introdução ao Arduino 29 O LDR, embora varie a sua resistência com a luminosidade (Lux) ele não é linear, por tanto, não podemos fazer uma regra de 3 para dizer diretamente a sua resistência e a quantidade de Lux que ele está medindo. PRÁTICA PROGRAMANDO Agora iremos fazer um programa de leitura dos dados do LDR, utilizando a comunicação analógica, e assim testar o seu funcionamento. Curso de Introdução ao Arduino 30 Exercícios: 2. Faça a medição da queda de tensão em cima do LDR. 3. Faça um LED acender caso não tenha luminosidade o suficiente. DICAS ex.1: Conversor analógico digital tem 10 bits de resolução, ou seja, ele pega a tensão de 0 a 5V e transforma em um número de 0 a 1023. Ex.2: Utilize o comando ‘if’. O Piezoelétrico O Piezoelétrico é um dos mais interessantes componentes elétricos que podemos encontrar no mercado, suas aplicações são praticamente infinitas, podemos encontra-los em sensores de toque, alarmes, caixa de som, ultrassom hospitalar, fones de ouvido, dentre outros. O piezoelétrico é capaz de gerar energia, chamada piezo eletricidade, ela se dá quando seus cristais são pressionados assim gerando uma DDP alta, porém momentânea, por este motivo ele é considerado o menor gerador de energia do mundo. Por outro lado, se passamos uma corrente pelos cristais ele gera ondas mecânicas de mesma frequência que pulsamos nela. Neste momento nos interessa apenas utiliza-lo como um emissor de som, conhecido como Buzzer, seu símbolo em um circuito é este. Curso de Introdução ao Arduino 31 PRÁTICA O funcionamento do Buzzer é muito simples, basta aplicar uma corrente em uma determinada frequência em seus terminais que ele começa a emitir sons. A resistência colocada em série com ele fará controlar a potência do dispositivo. OBS.: Tome cuidado com o lado positivo e negativo do buzzer, a perna com maior comprimento é o polo positivo. PROGRAMANDO O arduino já possui uma função para gerar os pulsos elétricos chamada de tone, sua sintaxe funciona da seguinte maneira: tone(Porta Digital, Frequência a ser emitida); Devemos também desligar o Buzzer, com a função noTone, neste caso devemos apenas informar o número da porta que está sendo parada. noTone(Porta Digital); Desta maneira conseguimos “escrever” musicas com o buzzer, associar determinada nota musical com determinada frequência, criar teclados eletrônicos utilizando botões, etc. Curso de Introdução ao Arduino 32 Exercício Proposto Construa um pequeno teclado utilizando apenas 3 botões e o buzzer. O comando ‘for’ (comando de repetição) O comando ‘for’ é o comando responsável pela repetição, com ele podemos contar ciclos, criar condições para repetição e modificar variáveis a cada ciclo. A seguir será exibido um exemplo do uso do comando for. for( int i = 0 ; i < 10 ; i ++ ) { ... 3ª Parte } 2ª Parte 1ª Parte O comando ‘for’ é separado em 3 partes distintas, como podemos observar no esquema ilustrado acima. A primeira parte é onde inicializamos as variáveis que serão utilizadas para a contagem de ciclos, ou apenas “setamos” a variável como um valor inicial. A segunda parte colocamos a restrição de parada para a contagem. Finalmente, a terceira parte devemos inserir o passo em que o número irá crescer. Obs.: i++; significa o mesmo que escrever i = i + 1; EXEMPLO Podemos fazer varios LEDs piscarem em sequência utilizando o comando for de uma maneira muito mais rápida do que a forma que fazíamos até este momento, como podemos notar no exemplo abaixo. Imagine que temos vários LEDs associados às portas digitais do arduino, logo podemos ter ao total 14 LEDs trabalhando independentemente um do outro, então para ligar uma sequência de LEDs podemos utilizar o comando de repetição ‘for’ e isso irá facilitar muito o nosso trabalho. Curso de Introdução ao Arduino 33 Repare como o comando de repetição foi útil nesta linha de código. Estamos controlando 14 LEDs com pouquíssimas linhas de código. Exercício Proposto 1. Faça 5 LEDs piscarem em sequencia 2. Faça com que a frequência do buzzer varie com o passar do tempo, utilizando o espectro de audição humana que vai de 20hz até 20000hz. Dica: Ex.1: Coloque os LEDs em sequência também nos pinos do arduino. Utilizando o PWM. Como foi comentado anteriormente o PWM é uma técnica que consiste em fornecer um sinal analógico através de meios digitais. A forma de onda do sinal digital consiste em uma onda quadrada que alterna o seu estado de nível lógico alto e um nível lógico baixo. No arduino UNO, as portas digitais que permitem PWM são as portas 3,5,6,9,10,11. Essas portas são identificadas pelo símbolo “~” abaixo de cada porta. A resolução desta porta é de 8 bits, ou seja, o que nos dá a resolução de 256 possibilidade. Portanto, novamente caímos numa regra de 3, por exemplo: Obtemos que y = 153. A sintaxe para a utilização do PWM é: analogWrite(porta, numero correspondente a tensão gerada); Curso de Introdução ao Arduino 34 Com essa técnica abrimos uma infinidade de possibilidades. Normalmente utilizamos essa técnica para controlar a potência dos componentes e dispositivos, por exemplo: LEDs, motores DC, dentre outros. PRÁTICA Vamos controlar a potência de um LED utilizando o PWM e o comando ‘for’. O circuito será composto apenas por um LED e um resistor. Mas antes, iremos aprender a ler a resistência dos resistores, através das cores dele. A leitura dele é de acordo com a imagem mostrada abaixo. O resistor mostrado na figura acima tem a resistência de 5600 280, ou seja, ele pode ter o seu valor entre 5320 e 5880. Agora, daremos prosseguimento a nossa prática. Faça umcircuito contendo apenas um resistor de 330 Ohms em série com um LED ligado em uma das portas digitais com o símbolo ‘~’. Curso de Introdução ao Arduino 35 PROGRAMAÇÃO Agora faremos este LED “pulsar”, aumentando e diminuindo o brilho aos poucos utilizando o PWM. EXERCÍCIO Faça a potencia do LED variar de acordo com a luminosidade da sala. Comentários na programação Os comentários em linhas de códigos são muito importantes para que o leitor saiba o que aquele trecho de código está fazendo, ou o que o autor do código pretende criar com o que foi digitado, é também utilizado para testar trechos de linhas de programação. Como a programação do Arduino é baseada em C, então ele herdou a sintaxe dos comentários, que podem ser utilizados de duas formas diferentes: 1. Utilizando barras duplas: // 2. Utilizando barra + asterisco para abrir e asterisco + barra para fechar: /* texto */ Curso de Introdução ao Arduino 36 EXEMPLO Se o código acima fosse comentado, o leitor não precisaria ficar decifrando o que o autor pretende fazer com o mesmo: O comando ‘while’ (comando de repetição) Uma outra forma de iteração (repetição) em C é o while. While executa uma comparação com a variável. Se a comparação for verdadeira, ele executa o bloco de instruções ‘{ }’ ou apenas a próxima linha de código logo abaixo. O While pode ser utilizado para diversos tipos de programas, como por exemplo, se o Arduino está utilizando um sensor de temperatura (como o LM35), se a temperatura estiver acima de um certo limite estipulado você pode ligar o ar condicionado e ficar detectando a Curso de Introdução ao Arduino 37 temperatura do ambiente até que a temperatura torne a ficar mais baixa e assim desligar o ar condicionado para poupar energia. A seguir será exibido um exemplo de utilização do código: EXEMPLO: O Sensor de Temperatura (LM35) O LM35 é um dos sensores de temperatura mais utilizados no mundo para medir temperatura ambiente, isso porque ele tem a característica de ser linear dentro da faixa de valor deste nível de temperatura, para temperaturas maiores que 70°C e menores do que 5°C ele começa a ter uma distorção maior do resultado podendo chegar até 4°C, porém sua distorção de dados máxima em 25°C é de apenas 0,5°C. Curso de Introdução ao Arduino 38 obs.: Este dispositivo possui uma constante de conversão para graus Celsius Constante = 0.4887585532746823069403714565 Prática O LM35 possui três terminais e podemos medir a temperatura do ambiente sem precisar de outro componente eletrônico para isso. Por tanto: Curso de Introdução ao Arduino 39 Programando Exercícios 1. Faça uma escala de cores com 3 níveis de temperaturas possíveis. 2. Quando chegar em uma temperatura considerada perigosa ao ser humano, toque um alerta utilizando o buzzer, fazendo o som partir do mais grave ao mais agudo. Transistores A invenção do transistor foi um marco para a engenharia elétrica e eletrônica, assim como para toda humanidade. Com o desenvolvimento dos transistores foi possível a construção de equipamentos eletrônicos verdadeiramente portáteis funcionando apenas com pilhas ou baterias. Além disso, o reduzido volume destes componentes a possibilidade de associação para implementar funções analógicas ou digitais, das mais diversas, proporcionou um desenvolvimento sem igual na indústria de equipamentos eletroeletrônicos. Este dispositivo é utilizado para que com uma corrente com o nível de sinal (tensão baixa e corrente baixa) seja possível controlar tensões e correntes muito maiores, tal característica é conhecida como o ganho. O único inconveniente do transistor é que ele não pode ser utilizado junto à corrente alternada, por isso é muito comum encontra-lo dentro de impressoras, aparelho de DVD, computadores, micro-ondas, pois estes só trabalham em corrente contínua. CONCEITOS: O transistor bipolar é um dispositivo semicondutor de 3 terminais, no qual uma pequena corrente em um terminal pode controlar uma corrente muito maior que flui entre o segundo e o terceiro terminal. Isto significa que o transistor bipolar pode funcionar tanto como amplificador (de corrente) quanto como interruptor (chave). Curso de Introdução ao Arduino 40 O Transistor é basicamente constituído de três camadas de materiais semicondutores, formando as junções NPN ou PNP. Essas junções recebem um encapsulamento adequado, conforme o tipo de aplicação e a ligação de três terminais para conexões externas. A seguir será exibido a configuração de um transistor TIP122 (NPN), muito utilizado para controlar motores e correntes de até 8 A. Como foi dito anteriormente o transistor possui três terminais: 1. Base; 2. Coletor; 3. Emissor; No transistor NPN, o coletor deve estar mais positivo do que o emissor. Repare a presença de um diodo voltado para o lado do coletor, isso significa que se o emissor estivesse mais positivo do que o coletor, a corrente fluiria direto por ali e passaria pelo transistor como se nada tivesse ocorrido. O terminal da base será onde você irá controlar o transistor através de um sinal. Se deixar passar um sinal HIGH, o transistor deixará passar a corrente do coletor para o emissor. Agora iremos exibir um transistor do tipo PNP de nome TIP127, possui as características físicas muito parecidas com as do TIP122, porém não se engane ele irá funcionar de maneira reversa ao TIP122. Curso de Introdução ao Arduino 41 A configuração dos terminais é exatamente a mesma, porém o esquema elétrico é invertido, repare que o diodo que foi comentado anteriormente está agora voltado para baixo, o que significa que para ele funcionar o Emissor deve estar com o potencial maior do que o coletor. Além disso, a base funciona de maneira reversa também, se injetamos uma tensão sobre ela, o transistor não deixará passar corrente do emissor para o coletor, ou seja, se quisermos deixar corrente sobre o transistor, devemos deixar a base em estado LOW. O símbolo de um transistor no circuito é: Para um transistor NPN Para o transistor PNP OBSERVAÇÕES: Quando uma determinada corrente passa sobre transistor, faz o decaimento típico de 0,7V devido ao comportamento típico nos transistores feitos de Silício, caso o silício seja feito de Germânio o seu decaimento típico será de 0,3V. POLARIZAÇÃO DO CIRCUITO A seguir, iremos entender como polarizar o circuito, isso significa que agora iremos poder controlar a corrente que irá passar pelo transistor. O TIP122, tem o ganho típico de 100 vezes a corrente, ou seja, se passamos uma corrente de 20mA na base do transistor, ele irá deixar fluir do coletor até o emissor 2A de corrente Curso de Introdução ao Arduino 42 Exemplo: Como o ganho é de 100 vezes, então deve ser 100 vezes maior do que o , supondo que é um motor que precisa de 1A para funcionar. Ou seja: Portanto, agora devemos apenas definir qual o resistor R1 para que passe os 10mA na base do transistor NPN. Lembre-se que o arduino gera 5V nas suas saídas digitais e o transistor tem uma queda de 0,7V tipicamente. Prática Vamos agora ligar um motor DC utilizando o transistor NPN e duas pilhas. Curso de Introdução ao Arduino 43 Programando Exercício 1. Junte comoutra pessoa que tenha um Kit e faça um protótipo de controle de um carrinho, utilize o potenciômetro para controlar a direção que o carrinho iria seguir através do controle da potencia destes motores (PWM), por exemplo, caso vire o potenciômetro totalmente para a esquerda ele ligaria acionar apenas um dos motores, caso coloque 20% virado para a direita, um motor estaria trabalhando a 80% da potencia enquanto o outro estaria trabalhando a 20% da potencia máxima, desta maneira fazendo uma curva mais suave. Curso de Introdução ao Arduino 44 O Relé / Relay / Relê O Relé é um dos primeiros dispositivos eletromecânicos criados, ele é chamado de um dispositivo eletromecânico, pois tem uma parte que funciona à eletricidade e outra parte que funciona mecanicamente. Seu interior possui uma bobina, uma mola, um material eletromagnético, uma chave, e alguns terminais. Este dispositivo é geralmente utilizado quando se quer controlar outro tipo de corrente elétrica mais forte, a partir de uma corrente mais baixa, como é fornecida pelo arduino que pode ser considerada como um sinal. Portanto, em geral inserimos o relé no circuito para controlar algum dispositivo que funciona a corrente alternada, desta maneira podemos controlar: ventiladores, ar condicionados, lâmpadas de casa, dentre outros. O símbolo do rele no circuito é: COMO FUNCIONA O RELÉ INTERNAMENTE? O relé é um item eletromecânico, ou seja, tem parte elétrica e parte mecânica. Quando energizamos o relé com um sinal utilizando os terminais corretos, ele irá passar corrente por uma bobina, dentro dessa bobina irá fluir um campo eletromagnético que irá atrair a chapinha do contato, desta forma comutando para o terminal normalmente aberto (NA). Quando não passamos corrente pelos terminais, não existe o campo eletromagnético e assim irá comutar para o terminal normalmente fechado(NF). Curso de Introdução ao Arduino 45 Como acionar o relé SEM “modulo relé” Tudo o que você irá precisar é de algo que gere uma corrente e uma tensão em cima da bobina do relé, não é recomendado que você ligue esta bobina diretamente por uma porta digital, pois quando você desliga a bobina você irá gerar uma corrente de fuga (corrente parasita/ corrente induzida) no sentido contrário a variação de corrente e com um valor muito alto, assim havendo uma boa possibilidade de queimar a sua porta do arduino. Para acionar, você irá precisar da ajuda do transistor, ele irá proteger o arduino. Além disso, é preciso um diodo para poder drenar essa corrente de fuga. Logo para controlar o relé, você irá acionar o transistor, quando acionar o transistor ele irá permitir a passagem de corrente do coletor para a base, quando isso acontecer o relé irá comutar os terminais. Como utilizar o Módulo Rele Caso você tenha um modulo rele, ele já deixa pronto todo esse circuito descrito acima, tudo o que você irá fazer é ligar o 5V, o GND, e um pino digital. Quando você ligar este pino digital ele irá comutar os terminais do relé. Curso de Introdução ao Arduino 46 Exercício 1. Faça uma lâmpada acender a partir da porta digital. 2. Utilize o LM35 para monitorar o calor que está em sala de aula, caso passe de um determinado nível faça ligar um ventilador de pé. 3. Faça a lâmpada acender quando um LDR marcar valores acima de um determinado nível. Display LCD O display LCD funciona de maneira bem simples no arduino, porque ele tem uma biblioteca pronta para o funcionamento junto a este dispositivo. Uma biblioteca é um arquivo que algum programador criou em que tem o objetivo de facilitar a vida do usuário da biblioteca, isso porque ele deixa funções prontas que irão fazer com que o usuário poupe tempo escrevendo apenas uma linha de código, caso contrário, o usuário deveria escrever milhares de linha de código. A biblioteca utilizada para isso é: #include <LiquidCrystal.h> Este display LCD possui ao total de 16 pinos bem definidos, ou seja, cada um serve para uma coisa. Curso de Introdução ao Arduino 47 Tudo o que você irá fazer é ligar o LCD desta maneira: EXEMPLO DE CÓDIGO Exercício 1. Faça um voltímetro com o arduino e exiba a tensão no LCD. Curso de Introdução ao Arduino 48 Parabéns, você concluiu o curso de introdução ao Arduino!!!
Compartilhar