ARDUINO
O termo Arduino faz referência tanto à placa (hardware) quanto ao software. Da mesma forma que nós seres humanos precisamos nos alimentar para adquirir energia e realizar nossas atividades do dia a dia, a placa Arduino também precisa ser alimentada para trabalhar. A alimentação da placa Arduino (qualquer uma dos diversos tipos de placas) pode ser proveniente da porta USB do computador por meio do cabo USB (Universal Serial Bus) ou por uma fonte de alimentação (do inglês, Power Supply) externa que pode ser conectada à placa.
Figura: Modelo de placa Arduino UNO.
- Pinos Digitais – são pinos que podem ser definidos no software como entrada e saída de dados (Input e Output, respectivamente). São os pinos de número 0 a 13 (contando-se da direita pra esquerda da imagem acima)
- Pinos Analógicos de Entrada – pinos que recebem entradas analógicas e convertem em um número entre 0 e 1023. Podem ser usados na leitura de um sensor. São os pinos de A0 a A5 (contando-se da esquerda para direita da imagem acima).
- Pinos PWM – Existem 6 pinos digitais no modelo da placa UNO acima que podem simular saídas analógicas. São eles: 3, 5, 6, 9,10 e 11. São os chamados pinos PWM (Pulse Widht Modulation ou Modulação por largura de pulso).
- Pinos de Alimentação – pinos que fornecem energia a elementos externos conectados ao Arduino. Exemplos: 5 V, 3,3V e GND.
A alimentação da placa poderá ser realizada pela Porta USB (com tensão de 5V) ou por uma Fonte de Alimentação Externa, em que o valor de tensão recomendável está entre 7 a 12 V).
Botão RESET- quando pressionado, reinicia as configurações da placa.
LED TX – Indicam a transmissão de dados do software para a placa Arduino.
LED RX – Indicam a recepção de dados transmitidos do software para a placa Arduino.
Observação: Não é recomendado inserir componentes nos pinos digitais TX e RX. Há possibilidade de conflitos se inserido, uma vez que os pinos digitais 0 e 1 (RX e TX, respectivamente) já são responsáveis pela transmissão de dados entre a placa e o software Arduino.
O usuário digita o programa no IDE (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado) do Arduino, depois manda o comando para que possa ser gravado em um chip (microcontrolador) e, posteriormente, diversas ações possam ser tomadas por meio de atuadores.
As informações do mundo real são captadas por meio dos sensores, passam pelo microcontrolador e os atuadores executam as tarefas dependendo do que foi programado pelo usuário.
Figura 1: Ambiente de Desenvolvimento Integrado do Arduino (IDE).
Por exemplo, um microcontrolador de forno microondas obtém a entrada a partir de um teclado (sensor), exibe a saída em um visor LCD e por meio de uma interface aciona um dispositivo eletromecânico chamado relé (atuador), que liga e desliga o gerador de microondas.
Para automatizar residências, processos industriais, precisamos de sensores que captem alguma informação do mundo real como umidade, presença, iluminação, temperatura, e dispositivos como relés e contatores (atuadores) para ativar ventiladores, lâmpadas, ares-condicionados, entre outros equipamentos. Para que possamos controlar o tempo de acionamento desses dispositivos, por exemplo, precisamos programar e gravar o que desejamos em um microcontrolador, que nesse curso será o microcontrolador do Arduino.
Assim, de forma mais detalhada, temos que:
Sensores são dispositivos que captam informação do meio externo. Isto é, detectam a variação de grandezas do meio externo, transformando essas variações em pequenos sinais elétricos que são utilizados para executar determinadas ações pertinentes para cada situação. Como já citado anteriormente, existem sensores de temperatura, de luminosidade, infravermelho, entre outros. Os sensores podem ser analógicos e digitais. Mais na frente você aprenderá como diferenciá-los, pois essa informação vai ser importante quando for programar no Arduino.
Os Controladores recebem informações (dados) dos sensores e mandam a ordem para que os atuadores executem. Um exemplo de controlador é o chip presente nas placas Arduino.
Pense em um robô (carrinho) andando em linha reta só que a determinada distância se encontra uma pedra. Se o robô colidir com a pedra talvez quebre. Portanto, é fundamental um sensor de distância que perceba objetos e que envie a distância continuamente para o controlador para que quando chegue perto da pedra, o controlador mande o robô desviar da pedra, seja dobrando a direita ou esquerda dependendo da programação pré-estabelecida.
Os atuadores são aqueles que executam as ações comandados pelo controlador.
Como dissemos anteriormente, existem os sensores analógicos e digitais.
Uma maneira bem simples para se entender o conceito das palavras analógico e digital é a comparação de uma rampa com uma escada.
Ao se analisar a rampa, percebe-se que uma pessoa poderá ocupar cada uma das infinitas posições existentes entre o início e o fim. No caso da escada, a pessoa poderá estar em apenas um dos seus degraus. Sendo assim, é correto dizer que a rampa pode representar um sistema analógico, enquanto que a escada pode representar um sistema digital.
Nota-se, então, que o sinal analógico é um tipo de sinal que aumenta ou diminui com o tempo de forma gradativa, como uma rampa. Já o sinal digital é um sinal com valor ora ALTO (HIGH), ora baixo (LOW). Isto é, apresenta “saltos” bruscos, como os degraus de uma escada.
Mas, quem será que capta esses sinais analógicos/digitais? A resposta é fácil: os sensores.
Estudaremos ao longo das nossas aulas o controlador do Arduino, alguns tipos de sensores como o LM35 (sensor de temperatura), potenciômetro, LDR, push button (modelo de chave) e atuadores como LED, motores, buzzer (espécie de buzina), entre outros.
ESTUDANDO POTENCIÔMETRO
O potenciômetro, por exemplo, é um resistor variável já que sua resistência varia conforme a nossa mão vai girando o eixo do potenciômetro, trabalhando dessa forma como um sensor analógico.
MEDINDO RESISTÊNCIA DO POTENCIÔMETRO
1º Passo: Gire a chave seletora para a escala de resistência em 20 k ohms, pois precisa ser valor superior à resistência do potenciômetro que é de 10 k ohms.
2º Passo: Coloque uma ponteira do multímetro no terminal da esquerda e a ponteira no outro extremo.
3º Passo: Confira se no visor do multímetro está aparecendo um valor em torno de 10 k ohms. Tente girar o eixo e veja que a resistência não mudará, pois nessa configuração, o potenciômetro estará como um resistor fixo.
4º Passo: Agora coloque uma ponteira no terminal extremo esquerdo e a outra no centro.
5º Passo: Gire o eixo de um lado para outro completamente e observe os valores no visor do multímetro. Você deve ter notado que a resistência variou de 0 ohm até 10 k ohms.
6º Passo: Coloque uma ponteira do multímetro no terminal do centro e a outra ponteira no extremo da direita.
7º Passo: Gire o eixo de um lado para outro completamente e observe os valores no visor do multímetro. Você deve ter notado que a resistência variou de 0 ohm até 10 k ohms.
Observação: Variando a resistência do potenciômetro, podemos diminuir ou aumentar a corrente que vai para um LED por exemplo e, assim, regular a intensidade do brilho.
ESTUDANDO O LDR
O LDR (Light Dependent Resistor), por exemplo, é um sensor do tipo analógico, já que sua resistência elétrica varia gradativamente de acordo com a luminosidade. Tipicamente, à medida que a intensidade da luz aumenta, a sua resistência diminui.
Antes de iniciar a montagem de projetos, ensinaremos como medir a resistência do LDR e perceber como esse valor varia na presença, na ausência de luz e em um valor qualquer de luminosidade.
MEDINDO RESISTÊNCIA DO LDR
Para medir a resistência do LDR, siga os passos:
1º Passo: Desloque a chave seletora do multímetro digital para a escala de 20 k ohms.
2º Passo: Coloque a ponteira do fio vermelho em uma extremidade do LDR e a ponteira do fio preto na outra extremidade.
3º Passo: Observe o valor indicado no visor do multímetro e anote no espaço abaixo o valor ôhmico encontrado.
Valor ôhmico na presença de luz: ______________
4º Passo: Agora impeça parcialmente o LDR de receber luz, para que possa medir a resistência elétrica estando não completamente coberto. Você pode tampar o LDR com a sua mão ou, por exemplo, usar uma caixinha cobrindo o componente, mas deixe que um pouco de luz ainda alcance o LDR.
5º Passo: Coloque a ponteira do fio vermelho em uma extremidade do LDR e a ponteira do fio preto na outra extremidade.
6º Passo: Observe o valor indicado no visor do multímetro e anote no espaço abaixo o valor ôhmico encontrado.
Valor ôhmico com o LDR semicoberto: ______________
7º Passo: Agora impeça totalmente o LDR de receber luz, para que possa medir a resistência elétrica nessa condição. Você pode tampar o LDR com a sua mão ou, por exemplo, usar uma caixinha cobrindo completamente o componente.
8º Passo: Coloque a ponteira do fio vermelho em uma extremidade do LDR e a ponteira do fio preto na outra extremidade.
9º Passo: Observe o valor indicado no visor do multímetro e anote no espaço abaixo o valor ôhmico encontrado.
Valor ôhmico com o LDR totalmente coberto (ausência de luz): ________
Observação: Você deve ter percebido que na ausência de luz a resistência foi maior. Isto é, à medida que a intensidade da luz aumenta, a sua resistência diminui.
APRENDENDO A USAR O PROTOBOARD
A Protoboard é um dispositivo que permite a construção de circuitos sem a necessidade de soldagem de componentes. Na região interna, há contatos metálicos que interligam os componentes ligados na placa. A figura abaixo ilustra uma Protoboard bastante comum no meio eletrônico:
O diagrama interno de ligações metálicas de uma Protoboard está representado na figura a seguir:
Existem protoboards que não possuem os símbolos (+) e (-). Talvez a que você usará nessa aula se enquadre nesse exemplo. Nesses casos, nós que devemos determinar qual das linhas receberá carga positiva e qual receberá carga negativa no momento que formos inserir os componentes e os fios.
Observação: Esse tipo de protoboard não apresenta continuidade (ligação elétrica) entre as duas metades. Diante disso, faz-se necessária uma conexão para a energia elétrica conseguir penetrar em toda a protoboard. Para realizar a conexão, precisaremos “jumpear”, isto é, ligar um fio do Setor A para o Setor B (ligando a linha positiva da 1ª metade para a linha positiva da 2ª metade, fazendo o mesmo com as linhas negativas). Deve-se realizar o mesmo procedimento do Setor C para o Setor D, como também, dos Setores superiores para os Setores inferiores (no sentido vertical, do Setor B ao setor D, por exemplo).Desta forma, permitiremos a circulação da corrente por toda a protoboard. Caso o circuito que desejemos realizar seja pequeno, isto é, com poucos componentes eletrônicos, podemos “jumpear” apenas alguns setores. Porém, o modo explicado acima é a forma de manter toda a protoboard interligada.
TESTE DAS PORTAS/PINOS DE ALIMENTAÇÃO
1º Passo: Coloque um fio, de preferência vermelho, no pino de alimentação 5 V e conecte no orifício da protoboard como mostra na figura.
2º Passo: Coloque um fio, de preferência preto, no pino GND e conecte no orifício da protoboard como mostra na figura.
3º Passo: Conecte um fio preto e um vermelho na protoboard sem ligar em nada como mostra a figura para que depois você possa realizar as medições com o multímetro.
4º Passo: Ligue o multímetro e coloque na escala de tensão DC (20 V).
5º Passo: Coloque a ponteira vermelha e a ponteira preta como mostra a figura a seguir.
6º Passo: Observe no visor do multímetro o valor de 5 V.
7º Passo: Para de realizar a medição, isto é, retire as ponteiras do multímetro dos fios.
8º Passo: Gire a chave seletora para OFF.
9º Passo: Retire os fios que você utilizou para que fosse feita a medição, como mostra a figura abaixo.
Agora que você já testou e confirmou a saída dos 5 V por meio do multímetro, siga os passos abaixo para que você possa ativar seu LED por meio da placa Arduino com o valor de tensão apropriado.
1º Passo: Conecte o LED e o resistor de 1 k Ω como mostra a figura abaixo.
Agora que você viu funcionando o LED, você deverá testar a saída de 3,3 V. Para isso, siga os passos abaixo:
1º Passo: Desconecte o fio do pino de 5 V e coloque no pino de 3,3 V.
2º Passo: Coloque os fios que estão sendo mostrados abaixo para que possa realizar as medições com o multímetro.
3º Passo: Gire a chave seletora do multímetro para escala de tensão DC (20 V).
4º Passo: Você deve ter visualizado 3,3 V no visor do multímetro.
5º Passo: Retire os fios que você usou para realizar a medição com multímetro.
6º Passo: Agora conecte o LED e o resistor de 330 Ω como mostra a figura abaixo.
TESTE DAS PORTAS/PINOS DIGITAIS DO ARDUINO
Cada porta/pino digital é capaz de enviar um sinal de 5 V em relação ao GND. Às vezes, pode acontecer de uma ou mais portas queimarem por um uso inadequado com a placa Arduino. Logo, antes de começarmos a utilizá-la para nossos projetos, realizaremos o teste de cada uma das portas.
Observação: Não testaremos as portas 0 e 1 pois elas tem uma importância diferenciada na comunicação de dados que depois explicaremos melhor.
Antes de você digitar os comandos, é importante conhecer um pouco da linguagem de programação do Arduino. Por esse motivo, ensinaremos alguns comandos e, por esse motivo, é importante que você leia com atenção para que depois siga os passos abaixo.
ESTUDANDO OS CONTROLADORES
- Controladores
Um microcontrolador é um computador. Todos os computadores (independentemente de ser um computador de mesa (desktop) ou um microcontrolador possuem várias características em comum: todos os computadores possuem uma CPU (unidade de processamento central) que executa programas. O computador possui memória RAM (memória de acesso aleatório) onde ele pode armazenar “variáveis” e apresenta ainda alguns dispositivos de entrada e saída para interagir com as pessoas. Em um computador de mesa, o teclado e mouse são dispositivos de entrada e o monitor e impressora são dispositivos de saída.
Enquanto um computador de mesa é um computador de propósito geral que pode executar milhares de programas diferentes, um microcontrolador é de objetivo específico. Isto é, o microcontrolador é um tipo especial de circuito integrado, pois vem com a possibilidade de ser programado para desempenhar tarefas específicas. O programa é armazenado na memória ROM (memória apenas de leitura) e geralmente não muda. Eles geralmente são dispositivos de baixa potência, baixo custo e consumo de energia.
De uma maneira bem direta, podemos dizer que um microcontrolador é um dispositivo que mistura hardware com software. Através de programação em alguma linguagem (C, C++ ou Assembly, por exemplo), é possível controlar um hardware para fazer funções específicas de uma maneira simples. No caso do Arduino, a programação é em uma linguagem que abrange C/C++.
Os microcontroladores estão presentes em diversos dispositivos eletrônicos, sendo essenciais para o funcionamento dos aparelhos. Mas afinal, o que são microcontroladores? Como foi dito anteriormente, são chips inteligentes que contêm um processador, memória e pinos de entradas/saídas.
O que diferencia dos outros tipos de microcontroladores é a quantidade de memória interna, velocidade do processamento, quantidade de pinos de entrada/saída, alimentação, periféricos, arquitetura, entre outras.
Geralmente, são utilizados na automação, controles remotos, dispositivos eletrônicos, brinquedos, sistemas de supervisão, entre outros.
Mas talvez você pergunte: “e como vou programá-lo?”. Simples: escreva o programa no computador, compile-o e, através de um gravador, grave no microcontrolador. Você pode programar para que quando o sensor detecte 28 graus, ative o ar condicionado, ou, por exemplo, você pode programar para que passados 2 segundos, toque a sirene.
Os primeiros modelos de Arduino usavam o microcontrolador ATmega8 (com 8K de memória Flash), que posteriormente foi substituído pelo ATMega168 (com 16K de Flash e maiores recursos de entrada e saída) e finalmente pelo ATMega328 (com 32K de Flash). O Arduino Mega 2560 usa o ATMega2560 com 256K de Flash e uma capacidade muito maior de entrada e saída.
SOFTWARE
Para o microcontrolador ler a informação obtida pelos sensores, precisamos digitar determinadas linhas de comando no Ambiente de Desenvolvimento Integrado (IDE) do Arduino de acordo com o tipo de sensor, isto é, se for analógico existe uma linha de comando, se for digital, outra. Por exemplo, observe abaixo:
Observação: Não se preocupe ainda em memorizar esses dois comandos pois serão explicados melhor mais para frente no curso e você realmente fará projetos que precisará deles, então aprenderá na prática.
Novamente observe o Ambiente de Desenvolvimento Integrado do Arduino (IDE). É nesse espaço em branco que digitaremos os comandos que serão estudados nas aulas.
DEFININDO PINOS/PORTAS
Quando começarmos a fazer nossos projetos utilizando o software, de fato, devemos ficar atentos para não nos esquecer de definir em que pino digital ou analógico está inserido cada um dos componentes. Caso conectemos o LED no pino 13, temos que por obrigação mandar essa informação ao Arduino. Nesse caso, por exemplo, precisamos digitar o comando int LED = 13. Observe a explicação abaixo:
Variáveis são posições na memória de programa do Arduino identificadas com um nome e o tipo de dado que irão ser armazenados nessa posição.
Essa posição de memória pode receber valores durante a execução do programa e podem ser alterados a qualquer momento pelo programa e deve ser respeitado o tipo de dado da variável.
Observe que logo acima digitamos //declara a variável e atribui o valor 13 para explicar o significado da linha de comando int LED = 13;
Logo, usa-se // (duas barras invertidas) para habilitar a possibilidade de fazer comentários na linha de código. O objetivo é explicar o código da maneira mais clara possível para que quem for ler possa compreender facilmente o projeto apresentado. Os comentários são descartados no momento de envio de dados para a placa, ou seja, o que estiver escrito nos comentários não será enviado como instruções ao microcontrolador.
Todo o conteúdo da função setup() será executado apenas uma vez, imediatamente após o microcontrolador ser energizado. Caso o botão Reset da placa Arduino seja pressionado ou ocorra queda de energia elétrica, a placa executará o último conjunto de instruções enviadas. Nessas condições, a função setup() é executada novamente.
A função pinMode () configura um componente eletrônico como dispositivo de saída (OUTPUT) – atuador – ou como dispositivo de entrada (INPUT) – sensor. A função tem como primeiro argumento, o pino, e como segundo argumento, o tipo do dispositivo empregado (entrada ou saída).
Outro comando que passaremos a usar a partir desse projeto é o Serial.begin(). Através dele, iniciaremos a comunicação com a porta serial. Em nossos projetos, digitaremos Serial.begin(9600). Este valor (9600) representa a velocidade da transferência de dados, em bits por segundo (9600 bits/segundo).
A comunicação serial possibilita o Arduino se comunicar com um computador ou com outros dispositivos. Todas as placas Arduino possuem pelo menos uma porta serial (também conhecida como UART ou USART).
Observação: Os LEDs RX e TX da placa piscam quando há a transferência de dados entre o computador e a placa Arduino. O fato ajuda a perceber se a comunicação está ocorrendo da maneira correta.
A função loop() tem como propósito fundamental a repetição contínua do código atribuído a ela. Haverá execução dos códigos desta função até o momento em que a placa não puder ser energizada.
Siga os passos abaixo:
1º Passo: Digite os comandos da mesma forma que se encontra abaixo.
Atenção: Você deverá digitar o que se encontra do lado esquerdo. As informações em vermelho do lado direito é apenas para que você entenda o que cada comando significa.
2º Passo: Clique em Verify.
3º Passo: Realize a seguinte montagem:
3º Passo: Insira o cabo USB no seu PC e o outro extremo na placa Arduino.
4º Passo: Clique em Upload.
5º Passo: Gire a chave seletora do multímetro para 20 V.
6º Passo: Meça a tensão de saída de cada porta digital em relação ao GND, como mostra a figura abaixo, uma porta de cada vez.
7º Passo: Verifique o valor de, aproximadamente, 5 V no visor do multímetro.
8º Passo: Realize a medição na outra porta digital de saída em relação ao GND como mostra a figura abaixo.
9º Passo: Verifique o valor de, aproximadamente, 5 V no visor do multímetro.
10º Passo: Faça o mesmo procedimento para os demais fios.
Agora que você já testou as portas digitais do Arduino que serão utilizadas, está na hora de realizar o primeiro projeto utilizando, de fato, o Arduino. A ideia é ativar 10 LEDs, você utilizará o mesmo programa que digitou anteriormente, não necessitando fazer nenhuma alteração.
1º Passo: Retire o cabo USB que está conectado na placa Arduino.
2º Passo: Retire os fios que você utilizou no momento do teste com o multímetro.
Observação: Antes de dar continuidade aos passos, você deverá aprender a diferenciar os terminais do LED para que realize a montagem correta na protoboard. Para isso, leia a explicação a seguir e depois dê sequência aos passos.
DIFERENCIANDO TERMINAIS DO LED
Para você diferenciar Anodo de Catodo, você pode tentar observar 3 características:
1. O maior terminal é o Anodo e o menor o Catodo. No entanto, quando o LED já foi muito utilizado tem a chance de já estar do mesmo tamanho;
2. O lado reto, isto é, o “chanfro” é uma característica exclusiva do Catodo;
3. O Catodo apresenta a parte interna metálica maior que o Anodo.
Caso não consiga identificar Anodo ou Catodo por alguma dessas características acima citadas, a análise pode ser feita também por meio do multímetro.
Já que o LED é um diodo emissor de luz, seu teste é igual ao feito com diodos comuns, a diferença é que se o LED estiver em bom estado, ele irá acender.
DIFERENCIANDO TERMINAIS DO LED COM O MULTÍMETRO
1º Passo: Gire a chave seletora do multímetro para a escala de diodo.
2º Passo: Coloque a ponteira vermelha do multímetro em um terminal e a preta no outro. Poderá ocorrer 2 casos:
– Se o LED acender, o terminal que está conectado à ponteira vermelha é o mais positivo, ou seja, é o anodo.
– Se o LED não acender, inverta as ponteiras e, quando acender, o terminal que está conectado à ponteira vermelha é o mais positivo, ou seja, é o anodo.
3º Passo: Gire a chave seletora do multímetro para OFF.
4º Passo: Realize a montagem como mostra abaixo.
5º Passo: Conecte o cabo USB no PC e na placa Arduino.
6º Passo: No software, clique em Upload
Faremos agora alterações no programa para que você crie habilidade em programar com o Arduino. Com essas alterações, os LEDs acenderão um de cada vez a cada 2 segundos e, por fim, após todos estarem acesos, um de cada vez será desligado com um intervalo de 2 segundos, até que todos sejam desligados. Para isso, siga os passos:
1º Passo: Digite o programa que se encontra na página a seguir.
Observação: A declaração das variáveis se mantém e o void setup também. Você só precisará alterar o programa anterior a partir do void loop.
2º Passo: Clique em Verify.
3º Passo: Clique em Upload.
4º Passo: Verifique se o seu projeto está trabalhando adequadamente. Isto é, se os LEDs estão acendendo um de cada vez a cada 2 segundos e, após todos estarem acesos, um de cada vez está sendo desligado com um intervalo de 2 segundos.