Apostila de Introdução À PE Com Arduino
Apostila de Introdução À PE Com Arduino
Apostila de Introdução À PE Com Arduino
O que é Arduino?
O que tem na placa?
Alimentação (USB/Conector P4)
Pinos (5V, 3V3, GND, Analógicos, Digitais, PWM, AREF)
Botão de reset
LED indicador de energia
LEDs TX e RX
CI principal
Reguladores de tensão
Qual placa usar com o kit?
Introdução à Arduino IDE
Instalando o driver da placa
Protoboard
Testando a protoboard
Lógica de programação
Introdução à eletrônica
Corrente, tensão e resistência
Polaridade
Curto-circuito
Hardware
Circuito
O que deve acontecer
EXPERIMENTO 1
Blink
Comentários
Saídas digitais
Pausando o programa
Piscando um LED fora da placa
Circuito
EXPERIMENTO 2
Semáforo
Circuito
Código
Entendendo o código
EXPERIMENTO 3
Funcionando um botão
Entradas digitais
Resistor de pull-down
Hardware
Circuito
Código
Entendendo o código
Criando condições
EXPERIMENTO 4
Buzzer
Buzzer passivo e buzzer ativo
Hardware
Circuito
Código
Entendendo o código
Variáveis
Criando uma variável
Frequencímetro
Circuito
Código
EXPERIMENTO 5
Projeto Piano
Notas musicais
Circuito
Código
O que deve acontecer
Piano
EXPERIMENTO 6
Sensor De Luz
Sensores fotoelétricos
Divisor de tensão
Lendo um LDR
Circuito
Código
Entendendo o código
Ampliando o experimento
Circuito
Código
EXPERIMENTO 7
Trabalhando Com Gráficos
Potenciômetro
Hardware
Circuito
Código
Entendendo o código
O que deve acontecer
Adicionando gráficos
EXPERIMENTO 8
Projeto Dimmer
PWM
Circuito
Código
O que deve acontecer
Dimmer com PWM
Circuito
Código
EXPERIMENTO 9
LED RGB
Circuito
Código
Entendendo o código
O que deve acontecer
EXPERIMENTO 10
LED RGB + Potenciômetro
Código
Entendendo o código
EXPERIMENTO 11
Aferindo temperatura e umidade relativa do ar
Como o DHT11 funciona?
Circuito
Código
O que deve acontecer
EXPERIMENTO 12
Alarme sonoro ativado por mudança de temperatura
Circuito
Código
Entendendo o código
EXPERIMENTO 13
Aferindo distâncias com o sensor HC-SR04
Circuito
Código
O que deve acontecer
EXPERIMENTO 14
Simulando um sensor de ré
Circuito
Código
Entendendo o código
EXPERIMENTO 15
Acionamento de cargas com módulo relé
Circuito
Código
O que é Arduino?
Antes de qualquer coisa, é importante que você saiba um pouco sobre a plataforma que
te acompanhará ao longo de todos os experimentos que preparamos para você!
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-o-que-e-arduino
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-o-que-e-arduino
OBSERVAÇÃO
15 V, pois você irá superar a tensão máxima do seu Arduino (e assim
queimá-lo). A tensão recomendada para a maioria dos modelos Arduino é
de 6 V a 12 V.
OBSERVAÇÃO: quando alimentar a sua placa por uma fonte
externa, verifique que o terminal positivo (+) é o terminal interno do
conector P4.
Pinos (5V, 3V3, GND, Analógicos, Digitais, PWM, AREF)
Os pinos na sua placa Arduino são os lugares onde você conecta os fios para
construir um circuito. O Arduino tem vários tipos diferentes de pinos, cada um dos quais
é rotulado na placa e usado para diferentes funções.
GND (3): abreviação de "ground" (terra em inglês). Existem vários pinos de
GND no Arduino, qualquer um deles pode ser utilizado para aterrar seu circuito;
5V (4) e 3V3 (5): o pino de 5V fornece 5 volts de energia e o pino de 3V3 fornece
3,3 volts. A maioria dos componentes simples usados com o Arduino trabalham somente
com 5 V ou 3,3 V.
Analógico (6): a área dos pinos rotulada com "ANALOG IN" (A0 a A5 no UNO)
é para os pinos analógicos. Esses pinos podem ler o sinal de um sensor analógico (como
um sensor de luminosidade) e convertê-lo em um valor digital para usar no código;
Digital (7): a área dos pinos rotulada com "DIGITAL" (0 a 13 no UNO) é para
os pinos digitais. Esses pinos podem ser usados tanto para entrada digital (como dizer
se um botão está pressionado) como para saída digital (como alimentar um LED);
PWM (8): o til (~) sinalizado ao lado de alguns dos pinos digitais (3, 5, 6, 9, 10
e 11 no UNO). Esses pinos atuam como pinos digitais normais, mas também podem ser
utilizados para algo chamado Modulação por Largura de Pulso (PWM).
OBSERVAÇÃO:
geralmente os pinos analógicos do
Arduino podem também ser usados
como entrada ou saída digital (isso
vale para A0 a A5 no UNO).
Botão de reset
Assim como a Nintendo original, o Arduino possui um botão de reinicialização
(9). Empurrando, ele conectará temporariamente o pino de reset (RST) ao GND e
reiniciará o programa carregado no Arduino. Isso pode ser muito útil se o seu código
não repetir, mas você quer testá-lo várias vezes.
LEDs TX e RX
TX é a abreviação para transmitir, o RX é a sigla para receber. Essas marcas
aparecem um pouco na eletrônica para indicar os pinos responsáveis pela comunicação
serial. No Arduino, há dois lugares onde TX e RX aparecem: uma vez ao lado dos pinos
digitais 0 e 1, e uma segunda vez ao lado dos LEDs indicadores TX e RX (11). Esses
LEDs nos darão boas indicações visuais sempre que nosso Arduino estiver recebendo
ou transmitindo dados.
CI principal
O maior componente da placa, com várias pernas metálicas, é um CI, ou
circuito integrado (12). Pense nisso como o cérebro do nosso Arduino, pois é nele que
o código é executado e todos os dados são processados. O CI principal no Arduino é
diferente entre modelos de placa, mas geralmente é da linha ATmega de
microcontroladores da empresa Atmel.
Reguladores de tensão
Os reguladores de tensão (13) não são realmente algo que você pode mexer
em seu Arduino. Mas é potencialmente útil saber que estão lá e para o que servem. Os
reguladores de tensão fazem exatamente o que o nome diz, eles controlam a tensão
interna da sua placa Arduino. Pense nisso como um tipo de registro automático, ele faz
com que a tensão do circuito seja sempre a mesma, independente da tensão de
alimentação. Claro, tudo tem seus limites, então não ligue seu Arduino a qualquer fonte
com uma tensão maior que 15 V.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-o-que-e-arduino
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-o-que-e-arduino
Fonte: www.sparkfun.com
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-software-e-drivers
Protoboard
Imagine que você está montando um circuito eletrônico, dimensionou os
componentes corretamente e a gora só precisa testar para verificar se tudo o que foi
feito vai funcionar corretamente. Cada teste que fosse necessário demandaria a
montagem de uma placa de circuito impresso, que envolveria horas de trabalho, gasto
de componentes, visto, etc. Pensando em facilitar e agilizar os testes, foi criada a "placa
de ensaio", mais conhecida como PROTOBOARD, que basicamente é uma placa
repleta de contatos que facilitam a montagem e testes de circuitos eletrônicos. Abaixo
iremos apresentar as funcionalidades de uma protoboard e alguns exemplos de ligações
básicas.
Para este tutorial vamos usar a protoboard de 400 pontos e é capaz de atender
todos os projetos desenvolvidos na apostila. Mas isso não impede que os projetos sejam
desenvolvidos com outros modelos de protoboards, como os modelos de 840 e 1660
furos, além dos modelos mais compactos, como as minis protoboards.
A primeira coisa que devemos ter em mente para saber usar uma protoboard é
conhecer suas interligações internas e seu layout. Como é possível observar na imagem
abaixo, uma protoboard na maioria das vezes é dividida em "faixa de terminais" e "faixa
de barramento".
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Experimento básico
Neste experimento vamos ligar um LED, usando os pinos de 5V e GND da
placa Arduino, para testarmos as ligações internas da protoboard.
Lista de materiais
1x Placa Arduino + Cabo USB
1x Protoboard
1x LED Branco de Alto Brilho 5 mm
Testando a protoboard
Com o esquemático abaixo podemos alternar a posição do jumper da faixa de
terminais e da faixa de barramento para conferir as ligações da protoboard.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Figura 10: Ligação no barramento do LED
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Lógica de programação
Lógica de programação é basicamente o fato de criar uma sequência que deve
ser seguida ordenadamente a fim de chegar a um objetivo. Não é de hoje que você
segue sequências predeterminadas, você tem feito isso sua vida inteira. O simples fato
de caminhar gerou um processo de sequenciamento, quando crianças, elaboramos em
nossa mente toda uma sequência para iniciar a caminhar, desde manter o equilíbrio até
dar os primeiros passos.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Para que fique mais fácil de entender, vamos fazer uma analogia e comparar a
bateria aos dois tanques de água da figura abaixo. Imagine que a água é a energia (ou
elétrons), o tanque à esquerda é o terminal positivo e à direita é o negativo. Quando
conectamos os dois tanques com um cano, a água fluirá entre eles até que os níveis
fiquem iguais. Podemos então dizer que a tensão (V) pode ser representada pela
diferença de pressão que força a água através do cano. A água fluindo pelo cano
representa a corrente (A): quanto mais pressão, mais corrente. Já a resistência (R) é
representada pelo diâmetro pequeno do cano, que restringe o fluxo de água, podendo
ser comparado a um resistor que restringe o fluxo de corrente em um circuito.
Figura 13: Exemplo de tensão, corrente e resistência
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Essas três grandezas são relacionadas pela lei de Ohm. Ela determina que,
para um condutor mantido à temperatura constante, a razão entre a tensão entre dois
pontos e a corrente elétrica é igual a resistência elétrica. Em termos matemáticos, isso
pode ser representado pela seguinte equação:
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Polaridade
A corrente elétrica percorre os circuitos eletrônicos passando pelos
componentes que, por sua vez, desempenhem suas funções. Por convenção,
assumimos que ela flui do terminal positivo para o negativo da sua fonte de energia.
Esse sentido é importante para sabermos como ligar alguns determinados
componentes, pois alguns deles possuem polaridade, ou seja, seu funcionamento
depende do sentido que a corrente passa pelos seus terminais. Existe também os
componentes que não possuem polaridade e seu funcionamento não depende do
sentido da corrente, como é o caso dos resistores.
A polaridade dos componentes é indicada das mais diversas formas, desde
marcações do terminal positivo ou negativo, uma diferença no tamanho nas pernas ou
em um esquema detalhado em sua documentação.
No LED, por exemplo, os terminais são indicados de duas maneiras: na
diferença entre as duas pernas (o terminal negativo tem comprimento menor que o
terminal positivo) e em um chanfro no corpo que indica o terminal de polaridade
negativa. Identifique em um dos LEDs do seu kit qual é o terminal positivo e qual é o
negativo de acordo com a imagem ao lado.
Obedecer essa característica dos componentes na hora de montar o circuito
pode ser a diferença entre o projeto funcionar ou não. Existe também a possibilidade de
você queimar o componente ou até mesmo sua fonte de energia se ligar um componente
com sua polaridade invertida.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Curto-circuito
Assim como inverter a polaridade de um componente, criar um curto-circuito é
uma prática proibida para quem quer evitar danos aos seus componentes ou até causar
um acidente mais grave!
Damos o nome de curto-circuito para um circuito que possui uma resistência
pequena o suficiente para elevar a corrente que passar por ele a níveis acima do
suportado por seus componentes e/ou fonte. Isso normalmente ocorre quando
conectamos um fio, ou qualquer condutor elétrico de resistência desprezível, entre os
terminais de uma fonte de energia, como os pinos 5V e GND de seu Arduino. Isso é o
mesmo que colocar uma resistência nula no circuito e, pela lei de Ohm, teremos que
para qualquer tensão aplicada, a corrente tenderá ao infinito.
Na prática isso causa um fluxo de energia muito maior que os componentes
podem suportar. Essa energia é então transformada em calor até que os componentes
literalmente queimem.
Figura 18: Curto Circuito
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Hardware
Para esse experimento vamos basicamente utilizar LEDs e resistores. A
nossa placa Arduino atuará apenas como uma fonte de energia, portanto não iremos
programá-la ainda.
Lembre-se de identificar os terminais dos LEDs e que os resistores não têm
polaridade, portanto não importa a ordem de seus terminais no circuito. Além disso,
você pode visualizar a diferença entre os dois tipos de resistores pelas cores dos anéis
em seu corpo (utilize a imagem ao lado abaixo como referência).
Figura 19: Resistores e LED
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Lista de materiais
Você precisará dos seguintes materiais para o desenvolvimento dessa
atividade:
1x Placa Arduino + Cabo USB
2x LED 5mm
1x Protoboard
Jumpers
Circuito
Esse é o primeiro circuito que irá ser montando e temos algumas dicas que vão
ajudar na montagem dos circuitos:
Dica 1: antes de montar qualquer circuito em seu Arduino, certifique-se que o
cabo USB está desconectado do computador. Assim você evitará queimar seus
componentes ou sua placa Arduino durante a montagem.
Dica 2: sempre verifique a polaridade dos componentes antes de conectá-lo ao
seu circuito.
Dica 3: não se importe com as cores dos fios na hora de fazer as ligações, o
importante é fazer a ligação correta! Preste bastante atenção ao fazer as
ligações, pois apenas um fio no lugar errado pode comprometer todo o
experimento.
Dica 4: sempre revise o seu circuito antes de energizar sua placa Arduino pela
USB de seu computador. Lembre-se que você pode ter criado um curto-circuito
mesmo sem perceber.
Agora é só colocar os componentes conforme está sendo mostrado na imagem
abaixo, bem como suas ligações. Note que os resistores possuem valores diferentes:
Pensando no conceito
de tensão, corrente e
resistência, você
consegue imaginar o
que vai acontecer com
cada um dos LEDs?
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Será que isso faz sentido? Vamos analisar matematicamente os dois circuitos
e verificar se faz sentido. Sabemos que a tensão total no circuito é de 5 V do Arduino,
e, apenas para facilitar os cálculos, vamos assumir que a resistência e,
consequentemente, a tensão do LED (sim, o LED oferece uma resistência à passagem
dos elétrons) são nulas. Então teremos:
Note que a corrente elétrica que passa pelo LED 1 é mais de 30x maior que a
do LED 2 e isso pode ser visualizado na intensidade luminosa de cada um dos LEDs.
Com isso podemos comprovar na prática a lei de Ohm e ainda descobrir uma
característica interessante sobre os LEDs: a intensidade luminosa de um LED é
proporcional à corrente elétrica que passa por ele.
EXPERIMENTO 1
Blink
Vamos começar nosso aprendizado fazendo o que a maioria das pessoas
fazem ao pegar um Arduino na mão pela primeira vez: piscar um LED! Por mais simples
que este experimento possa ser, ele é fundamental para o uso desse material. Ao
passarmos o código deste experimento para a placa saberemos se o driver está
instalado corretamente, se a placa escolhida é de fato a que vamos usar, além de
conseguir se familiarizar melhor com a elementos de um código Arduino estudados no
capítulo anterior.
Abra o código Blink que está disponível no menu de Exemplos na IDE do
Arduino. Para acessálo vá em: Arquivo -> Exemplos -> 01.Basics -> Blink na sua IDE
como é mostrado na imagem abaixo:
Figura 21: Arduino IDE
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Agora você irá enviar o seu primeiro programa para o Arduino. Você só
precisará selecionar corretamente sua placa e a porta COM. Na parte inferior direita de
sua IDE (1) você pode visualizar rapidamente essa informação. Se algo estiver errado,
vá no menu Ferramentas para consertar.
Tudo dando certo. Então clique no botão Verificar (2) para que o seu código
seja verificado e compilado. Em seguida é só clicar no botão Carregar (3). Se tudo
correr bem você verá a mensagem "Carregado" na parte inferior esquerda da tela (4)
e o LED da sua placa irá começar a piscar com intervalos de 2 segundos.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Comentários
Antes de entender as funções do Arduino que geram sinais eletrônicos,
precisamos separar o que realmente é código interpretável do que são chamados de
comentários. Eles são "anotações" que são feitas no corpo do código para servir de
auxílio na leitura do código por outras pessoas ou até mesmo pelo próprio criador no
futuro.
Para fazer um comentário que irá se desenvolver por mais de uma linha é só
usar as notações: /* e */. O primeiro (/*) indica onde começam os comentários e o
segundo (*/) indica onde os comentários acabam. Para comentários de única linha,
basta utilizar a notação //. Tudo o que estiver na mesma linha e após essa notação será
considerado um comentário.
Figura 23: Comentários
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Acredite, comentar o código é uma boa prática de programação e você deve
praticá-la sempre que possível. Na hora que se escreve o código tudo faz sentido, mas
daqui a alguns meses é bem possível que você não se lembre ao certo qual lógica
utilizou ou o que fazem algumas linhas. Apenas tome cuidado para não exagerar, use
poucas palavras para comentar as partes importantes.
Saídas digitais
Na introdução à eletrônica você aprendeu que o LED acende quando existe
energia passando por ele. Então o que o Arduino faz nesse projeto é usar um de seus
pinos para controlar a energia que passa pelo LED, deixando com que ela passe por
um tempo e cortando seu fluxo em seguida. Assim o LED acende e apaga, acende e
apaga, e assim por diante.
Antes de utilizar um pino do Arduino, precisamos configurá-lo como uma
entrada (INPUT) ou uma saída (OUTPUT) através da função pinMode(). Neste caso,
utilizamos pinMode(LED_BUILTIN, OUTPUT) porque queremos definir o pino onde
está conectado o LED (LED_BUILTIN) como saída. Como existem diferentes placas
Arduino, foi criada a constante LED_BUILTIN para representar o número do pino onde
o LED da placa está conectado. No caso do Arduino/BlackBoard UNO e Mega, por
exemplo, o LED está conectado fisicamente ao pino 13.
Quando usamos um pino como saída podemos comandá-lo para ser HIGH (5
V) ou LOW (0 V) por meio da instrução digitalWrite(). Nela definimos o pino e a tensão
que queremos na saída. Quando o pino do LED é colocado em 5 V
(digitalWrite(LED_BUILTIN, HIGH)) o LED acende. Quando colocado em 0V
(digitalWrite(LED_BUILTIN, LOW)) o LED apaga.
Pausando o programa
A maioria das placas Arduino trabalha com um clock de 16MHz, o que significa
que ela executa 16 milhões de operações por segundo (algumas placas podem trabalhar
com um clock mais rápido ou mais lento). A função digitalWrite() leva menos de 4 us
para ser executada. Esse tempo não é suficiente para vermos o LED piscar, então
precisamos usar uma função para pausar o fluxo de programa. E para isso utilizamos a
função delay(tempo_ms). Essa função faz o programa ficar parado durante o tempo
determinado entre parênteses, neste caso 1000 milissegundos (é o mesmo que 1
segundo).
Piscando um LED fora da placa
Vamos tornar as coisas um pouco mais legais e piscar um LED um pouco maior
do que o que está na placa.
Lista de materiais
Você precisará dos seguintes materiais para o desenvolvimento dessa
atividade:
1x Placa Arduino + Cabo USB
1x LED 5mm
1x Resistor 300
1x Protoboard
Jumpers
Circuito
Desconecte a placa de seu computador e monte o circuito conforme a imagem
abaixo. Lembre-se do que falamos sobre os LEDs e resistores para conectá-los
corretamente em sua protoboard.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
EXPERIMENTO 2
Semáforo
Chegou a hora de montarmos o nosso primeiro projeto! Os projetos são uma
maneira de fixar os seus conhecimentos aprendidos. A ideia é usar todos os conceitos
novos para montar algo que tenha uma funcionalidade ou aplicação mais complexa e
divertida, como, por exemplo, o semáforo de LEDs. Pois bem, vamos construir um
pequeno semáforo feito com LEDs e algumas linhas de código, e você ainda exercita
sua educação no trânsito.
Lista de materiais
Você precisará dos seguintes materiais para o desenvolvimento dessa
atividade:
1x Placa Arduino com Cabo USB
2x LED verde 5mm
1x LED amarelo 5mm
2x LED vermelho 5mm
5x Resistor 300
1x Protoboard
Jumpers
Circuito
O circuito será basicamente uma extensão do que montamos no experimento
Piscando um LED. Só que dessa vez montaremos dois LEDs a mais para formar as três
luzes de um semáforo: verde, amarelo e vermelho. Você pode assumir a imagem abaixo
como referência para montagem.
Figura 25: Montagem do Circuito
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Como uma das principais ideias deste material é fazer você aprender a
programar placas Arduino, recomendamos que você sempre digite o código de cada
experimento em sua Arduino IDE daqui em diante. Isso fará com que você se acostume
com a capitalização, os caracteres especiais e com toda certeza fará você absorver
melhor a lógica e implementação de cada exemplo.
Abaixo está o código que você deve digitar e carregar em sua placa.
Figura 26: Programação projeto semáforo
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Entendendo o código
O que o código faz é acender apenas o LED correspondente a cada uma das
fases do sinal: siga (verde), atenção (amarelo) e pare (vermelho). Note que para cada
um dos estados o tempo de pausa é diferente, alternando em delays de 3, 2 e 5
segundos. Claro que antes de ligar ou desligar o LED, foi realizada a configuração dos
pinos onde cada um deles está conectado como saída.
EXPERIMENTO 3
Funcionando um botão
Agora que você já é capaz de acionar cargas simples através do seu Arduino,
vamos aprender a trabalhar com o nosso primeiro sensor, o botão.
O botão é um dos dispositivos mais populares quando se fala de interface
humano-máquina. Seja no seu smartphone, nos elevadores ou até mesmo o próprio
interruptor da luz da sua sala, os botões são responsáveis por disparar ações em
diversos sistemas eletrônicos presentes no nosso dia-a-dia. Com um simples apertar
você pode ligar uma lâmpada, travar a tela do seu celular ou interagir com um jogo
eletrônico.
Vamos então entender mais sobre esse recurso simples e barato, que é
extremamente versátil e será utilizado em diversos exemplos ao longo desse material.
Entradas digitais
No experimento anterior você viu como os pinos do Arduino funcionam como
saída digital, onde a energia flui por eles até a carga. Entretanto, eles também podem
ser configurados para fazer o contrário, deixando com que a energia flua de fora para
dentro, podendo então ser mensurada. Assim fica fácil detectar quando a tensão no pino
é 5 V e quando é 0 V.
Então quando queremos usar um botão com nossa placa, basta conectá-lo
corretamente a um pino que esteja configurado como entrada e poderemos detectar se
o botão está pressionado ou solto.
Resistor de pull-down
Se você simplesmente conectar um dos pares de terminais ao VCC e o outro
ao pino do Arduino, quando você pressionar o botão o pino terá 5 V. Mas qual sinal
chegará ao pino do Arduino quando o botão não estiver pressionado? Nada? Na
verdade, a melhor resposta seria "qualquer coisa", pois como não tem nenhum sinal
válido (5 V ou 0 V) conectado a ele, o caminho fica livre para os ruídos existentes no
circuito. O pino do Arduino então poderá assumir um valor lógico verdadeiro ou falso a
qualquer momento.
Para retirar essas flutuações que prejudicam a interpretação dos sinais, nós
utilizamos normalmente um resistor de pull-down. Ele atua garantindo que o sinal de
GND chegue até o pino enquanto o botão não for pressionado, e protege o circuito
contra um curto circuito quando você aperta o botão. Veja um exemplo de ligação na
imagem abaixo.
Figura 27: Circuito botão
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Hardware
Neste experimento vamos usar um botão para controlar o estado de um LED.
O botão possui quatro terminais que são interligados aos pares (terminal a com c e b
com d). Ao pressionar o botão, os quatro terminais são conectados entre si, gerando
continuidade no circuito. Podemos então utilizar esse funcionamento para alterar o
estado lógico de uma entrada digital do Arduino.
Figura 28: Circuito botão
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Lista de materiais
Você precisará dos seguintes materiais para o desenvolvimento dessa
atividade:
1x Placa Arduino com Cabo USB
1x LED 5mm
1x Resistor 300
1x Chave Momentânea (PushButton)
1x Protoboard
Jumpers
Circuito
Colocando um resistor para limitar a corrente do LED e um resistor de pull-
down no botão, podemos então montar o circuito para esse exemplo conforme a imagem
abaixo:
Figura 29: Montagem circuito botão
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Ao carregar o código abaixo em seu Arduino, você poderá ver o LED acender
quando pressionar o botão e apagar quando soltar.
Figura 30: Código circuito botão
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Entendendo o código
Você já tinha aprendido anteriormente a configuração do pino do LED como
saída e o seu acionamento. Para configurar o pino do botão como entrada, também
utilizamos a função pinMode, só que dessa vez usamos INPUT no lugar de OUTPUT.
E para realizar a "escrita digital" no pino do LED usamos digitalWrite, enquanto
que para realizar a leitura digital se usa digitalRead. Ao contrário da função de escrita,
que não retorna nenhum valor, a função de leitura nos retorna o valor atual do pino entre
parentesis (nesse caso, o 9). Isso significa que se o botão estiver pressionado, o valor
da tensão no pino é de 5 V e a função retornará HIGH. Enquanto o botão estiver solto,
o valor é de 0 V, retornando então LOW.
Criando condições
Até o momento só tínhamos construído códigos sequenciais, que sempre
executavam uma linha atrás da outra. Agora nós precisamos realizar algum tipo de
desvio, pois acender ou apagar o LED depende de uma condição: o botão estar ou não
pressionado.
É para isso que entra a estrutura condicional if/else. Ela realiza um teste lógico
para decidir entre dois trechos de código. Ela executa o primeiro se a condição for
verdadeira e o segundo se a condição for falsa.
Figura 30: Código circuito botão
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
EXPERIMENTO 4
Buzzer
Buzzers podem ser divertidos e úteis em circuitos eletrônicos. O buzzer
consiste em um invólucro exterior com dois pinos para ligá-lo ao 5 V e GND. Dentro
desse invólucro existe um elemento piezoelétrico que consiste em um disco cerâmico
central rodeado por um disco de vibração de metal, normalmente feito de bronze.
Quando aplicamos uma corrente ao buzzer, o disco de cerâmica é contraído ou
expandido. Isso é o que gera o som que ouvimos. Variando a frequência do sinal no
buzzer, a velocidade das vibrações é alterada e modificam o passo do som resultante.
Hardware
O primeiro passo que tomaremos é fazer
o controle simples do buzzer. A ligação deste
componente é similar à ligação de um LED.
Entretanto, não é necessário utilizar um resistor
para limitar a corrente dele, você deve-se apenas
ficar atento à sua polaridade. Observe que na parte
de cima de seu buzzer existe uma marcação com o
sinal de positivo que indica o terminal positivo do
mini autofalante. Você deve então obedecer esta
polaridade na hora de ligá-lo.
Lista de materiais
Você precisará dos seguintes materiais para montar os circuitos desse capítulo:
1x Placa Arduino + Cabo USB
1x Buzzer Passivo 5V
2x Chave Momentânea (PushButton)
1x Protoboard
Jumpers
Circuito
Veja um exemplo simples da ligação do buzzer à placa Arduino:
Figura 31: Montagem circuito buzzer
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Com uma simples modificação no código do exemplo Blink, obtemos o código
abaixo já adaptado para o buzzer. Escreva o código em sua Arduino IDE e carregue-o
em sua placa.
Figura 32: Código do buzzer
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Entendendo o código
Consegue perceber a semelhança desse código com o código Blink?
Acionamos o buzzer por um segundo e desativamos por mais um segundo em um loop,
resultando assim em um "pisca-pisca sonoro". Veja que, ao contrário de como fizemos
com o LED, não utilizamos a função digitalWrite (isso até funcionaria se nosso buzzer
fosse ativo, ou seja, se ele tivesse um oscilador interno). Usamos a função tone, pois o
nosso buzzer é passivo e precisamos gerar uma frequência para que ele emita algum
som.
Para fazer o acionamento utilizamos uma instrução tone(10, frequencia). Sua
utilização é bem simples: devemos definir, nessa ordem, em qual pino e em qual
frequência iremos gerar o sinal. Esse sinal então será gerado até que a função noTone
seja chamada e pare de gerar a frequência no pino.
Variáveis
Além da função tone, temos outra palavra nova em nosso código, a int. Essa
palavra está relacionada a um conceito muito importante, presente em praticamente
todas as linguagens de programação: as variáveis. Imagine que você quer armazenar
um valor numérico, o estado de um botão ou até mesmo a frequência com que o seu
buzzer irá oscilar. As variáveis nos permitem armazenar esses valores na memória de
nossa placa para que possamos recuperá-los em outro trecho do código.
Quando criamos uma variável, estamos na verdade atribuindo um nome para
uma seção da memória do microcontrolador, e assim aquele espaço fica reservado para
que possamos ocupá-lo com o valor que desejarmos. Uma boa analogia é você pensar
que essa memória é como se fosse um armário cheio de gavetas, e que quando criamos
uma variável, estamos na verdade rotulando uma delas para guardar um valor dentro
dela.
Para cada tipo e tamanho de conteúdo existe um tipo e tamanho de gaveta. De
acordo com o tipo do seu valor (booleano, inteiro, racionais, etc) e também do tamanho
dele, é necessário especificar um tipo de variável na hora de criá-la. Por exemplo, se
você está lendo o estado de um botão que só pode assumir HIGH ou LOW (que é o
mesmo que 1 e 0 ou verdadeiro e falso), podemos utilzar uma variável do tipo bool.
Já para valores inteiros devemos utilizar o tipo int, ou long se o valor for realmente
grande.
Criando uma variável
Nesse código criamos nossa primeira variável, a , responsável por
armazenar o valor da frequência do sinal que será usado para acionar o buzzer. Para
declarar uma variável você precisa definir o tipo, o nome e opcionalmente deve inicializá-
la com um valor válido.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Em seguida você determina o nome que você precisará usar sempre que
desejar usar ou alterar o valor que está armazenado dentro dela. Para isso existem
algumas regras que devem ser seguidas para que não aconteçam problemas de
compilação ou de mau funcionamento:
O único caractere especial que pode ser utilizado é o underline ("_").
Letras acentuadas também são proibidas.
O nome da variável não pode ser iniciado com um número. Você pode
usar números, mas só após o primeiro caractere válido.
Não pode haver espaços no nome da variável. Você pode separar
palavras compostas com um underline.
O nome de uma variável não pode ser igual ao de uma palavra
reservada (setup, int, loop, etc).
Por último você atribui um valor inicial na variável para garantir que ela não
esteja ocupada por sujeira da memória do microcontrolador, pois isso pode ser
inconveniente. Para atribuir esse valor fazemos uso de um operador de atribuição,
representado por um sinal de igual ("="). Este operador aritmético nos permite modificar
o conteúdo interno de uma variável. Os outros operadores permitem também que
façamos operações matemáticas com os valores, como soma, multiplicação ou divisão.
Tem também o operador módulo (%) que resulta no resto da divisão de um número
inteiro por outro.
Figura 33: Tabela de variáveis
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Circuito
Para isso vamos adicionar dois botões ao circuito que já está montado em
nossa protoboard.
Figura 34: Montagem dos botões
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Vamos programar a placa para que os botões consigam alterar a frequência do
buzzer entre um acionamento e outro, permitindo estudar o comportamento em
frequências altas e baixas.
Figura 35: Código dos botões
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
EXPERIMENTO 5
Projeto Piano
Notas musicais
Quando a corda de um violão vibra, ela movimenta moléculas de ar ao seu
redor na mesma frequência de vibração da corda. Os nossos ouvidos então captam
essa vibração, processando e transformando em um som ao nosso cérebro. Para cada
frequência de vibração, o cérebro atribui um som diferente, que são denominadas notas
musicais. Portanto, as notas musicais são os elementos mínimos de um som.
Para facilitar a escrita e aumentar a velocidade de leitura, foi criada uma
notação universal permitindo que cada nota seja identificada por uma letra, facilitando
assim a comunicação entre músicos de diferentes países. Existem sete letras para
representar as notas musicais:
Lista de materiais
Você precisará dos seguintes materiais para montar os circuitos desse capítulo:
1x Placa Arduino + Cabo USB
1x Buzzer Passivo 5V
1x LED verde 5mm
1x LED amarelo 5mm
1x LED vermelho 5mm
Circuito
Deixamos abaixo o circuito que iremos utilizar até o final desse projeto.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Nesse primeiro código iremos utilizar apenas o buzzer que está no circuito para
executar cada uma das notas musicais em uma sequência. De diferente, só as variáveis
que armazenam as frequências correspondentes a cada nota musical, porque o restante
já foi abordado antes. Escreva o código em sua Arduino IDE e carregue-o em sua placa.
Figura 37: Código do Projeto
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
O que deve acontecer
Ao carregar o código para a placa, o buzzer deve tocar por um segundo cada
uma das notas musicais de maneira sequencial. Ao final, ele desligará o buzzer por 2
segundos e reiniciará a sequência.
Piano
Ao executar o código anterior você poderá ouvir as notas musicais, mas não
poderá controlá-las. Agora vamos implementar um código que permita o controle de
qual nota será executada e ainda acionar LEDs para indicar visualmente qual frequência
está sendo aplicada ao buzzer.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Figura 40: Código do Projeto Piano
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
EXPERIMENTO 6
Sensor De Luz
Sensores fotoelétricos
Resumidamente, um sensor fotoelétrico é um componente eletrônico que
responde eletricamente às variações de intensidade de luz incidente. Um bom exemplo
desse tipo de sensor são os LDRs ou Light-Dependent Resistor. Este componente varia
sua resistência em função da intensidade da luz, respondendo com máxima resistência
em situações de pouca luminosidade e mínima resistência em casos com alta
luminosidade (guarde esta informação, pois ela será útil mais para frente).
Divisor de tensão
Como as placas Arduino não medem resistência, pois a única coisa que o
Arduino consegue interpretar é tensão, precisaremos usar um artifício para efetuar a
leitura dos sensores. Para isso usaremos o circuito divisor de tensão. Este circuito é
necessário pois ele faz com que a tensão de entrada seja fracionada, permitindo que a
leitura da tensão possa ser efetuada. Na imagem abaixo podemos visualizar o
esquemático do circuito divisor de tensão e como devemos montá-lo para usar um LDR.
Repare que sem o resistor d
(GND), independente da resistência do LDR.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Lendo um LDR
Nesta primeira etapa do capítulo, vamos entender como um sensor de
luminosidade LDR funciona com um Arduino.
Lista de materiais
Você precisará dos seguintes materiais para montar os circuitos desse capítulo:
1x Placa Arduino + Cabo USB
1x Protoboard
1x Sensor de Luminosidade LDR 5mm
1x Resi
Jumpers
Circuito
Depois de toda essa teoria, vamos aplicar o que foi visto. Para isso monte o
circuito abaixo:
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Abaixo está o código que será utilizado neste experimento. Copie ele em sua
Arduino IDE e carregue para sua placa.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Entendendo o código
O primeiro conjunto de instruções são as definições e declaração das mesmas:
const int pinoLDR = A0: isso significa que pinoLDR é uma
CONSTANTE INTEIRA, por isso o const int. É uma constante porque
a posição do sensor ligado no Arduino não mudará, ela ficará sempre
na entrada analógica 0.
int leitura = 0: a variável leitura vai armazenar o valor lido diretamente
pelo pino analógico depois da conversão feita pelo ADC, sem
tratamento nenhum. É do tipo inteiro (int) pois este valor vai de 0 a 1023.
float tensao = 0.0: aqui temos que tensao é uma variável do tipo float
e começa valendo zero. Este tipo de variável aceita casas decimais, e
nós teremos uma precisão de tensão de duas casas depois da vírgula
(acredite, será uma ótima precisão).
Seguindo com o programa vamos à parte do setup.
O comando Serial.begin serve para dizer ao Arduino que você irá
coletar ou escrever dados no Arduino utilizando a porta serial, ou seja,
através do cabo USB você vai ler ou escrever valores no mundo
externo. O número entre os parênteses trata-se da taxa de dados com
a qual a placa vai se comunicar com o computador, neste caso
usaremos 9600 bps.
Já o comando pinMode(pinoLDR, INPUT), como visto nos tutoriais
anteriores, declara o pino do LDR (A0) como entrada.
Quanto ao loop principal:
O loop é muito simples. Na primeira linha, o Arduino irá assimilar o valor lido
na entrada analógica 0 (que é nossa constante pinoLDR) à variável leitura. Após isto,
realizamos uma conversão de valor digital para tensão e salvamos o resultado na
variável tensao . Essa é uma fórmula fruto de uma regra de três simples.
Depois da operação, colocamos os seguintes comandos:
O primeiro comando significa que iremos escever na porta serial a frase
"Tensão: ". Logo depois, mostramos na tela o valor da variável tensao que já está em
Volts (V). Veja que nos primeiros comandos seriais, escrevemos Serial.print e no último
escrevemos Serial.println. A diferença entre print e println é que este último pula a linha
depois do que escrever. Então depois de enviar o valor de tensão, pulamos uma linha
pra ficar mais fácil de ler. Depois damos um delay, ou seja, uma espera de 1 segundo
para a próxima leitura.
Faça o upload do código para sua placa e abra, finalmente, o monitor serial de
que que tanto falamos, mas mal sabemos o que ele é e o que ele faz. O monitor serial
é a tela na qual são exibidas as mensagens que o Arduino envia para o computador, e
também a tela pela qual podemos enviar comandos em tempo real para o Arduino. Para
ver os dados no monitor serial, basta clicar no botão indicado com a seta vermelha na
figura a seguir, no ambiente de desenvolvimento do Arduino.
Figura 44: Código LDR
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Vale lembrar que a porta COM não é necessariamente 185, como está no topo
da imagem anterior. Cada computador tem sua numeração de portas conforme os
dispositivos que você já conectou a ele.
Veja que no canto inferior direito temos selecionado 9600 bps. Isto tem de ser
selecionado conforme a configuração do parâmetro no comando Serial.begin do setup
de seu programa.
Ampliando o experimento
Nosso objetivo é acionar um LED, ou uma carga, quando a luminosidade do
ambiente estiver baixa. Para isso o circuito que montaremos será o mesmo do sensor
de luz mais um circuito para acender um LED.
Lista de materiais
Você precisará dos seguintes materiais para montar os circuitos desse capítulo:
1x Placa Arduino + Cabo USB
1x Protoboard
1x Sensor de Luminosidade LDR 5mm
1x Resistor 10k
1x LED VERDE 5mm
Jumpers
Circuito
Nesse momento vamos montar o projeto de iluminação automatizada. Para
isso, monte o circuito abaixo e carregue o código na placa Arduino.
Figura 46: Montagem do sistema de LDR
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Carregue a programação abaixo.
Figura 47: Código do sistema de LDR
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
O entendimento do código é parecido com o anterior. Neste caso adicionamos
mais um comando pinMode, pois necessitamos de um pino extra para o acionamento
do LED. Já a estrutura condicional exemplificada abaixo determina quais são as
condições para que o LED acenda. No nosso código determinamos que o componente
ficará ligado para ambientes com pouca iluminação, é importante lembrar que este valor
pode mudar de projeto para projeto.
EXPERIMENTO 7
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Potenciômetro
Facilmente encontrado como opção para controlar o volume em aparelhos de
som, o potenciômetro é um componente eletrônico que possui resistência elétrica
ajustável. Normalmente é um resistor de três pinos onde a conexão central é deslizante
e manipulável. Podemos dizer que por si só o potenciômetro é um divisor de tensão. Em
esquemas elétricos ele é representado da seguinte forma:
Figura 49: Representação potenciômetro
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Hardware
Como explicado anteriormente, um potenciômetro pode ser considerado como
um divisor de tensão. Isso se reflete em suas ligações, que consiste em VCC, GND e
OUT. Neste caso, não precisamos nos preocupar tanto com qual lado do componente
ligaremos o 5V e o GND, porque apenas a direção de rotação será influenciada. Veja
na imagem abaixo.
Figura 50: Potenciômetro
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Vamos usar o potenciômetro para fazer uma leitura analógica com o Arduino e
visualizar os valores em um gráfico.
Lista de materiais
Você precisará dos seguintes materiais para o desenvolvimento dessa
atividade:
1x Placa Arduino com Cabo USB
1x Potenciômetro
1x Protoboard
Jumpers
Circuito
Monte o circuito conforme a imagem abaixo.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Carregue o código abaixo em sua placa Arduino.
Figura 51: Código potenciômetro
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Entendendo o código
O código é praticamente o mesmo dos projetos anteriores, basicamente faz a
configuração e a leitura dos pinos analógicos e, por fim, exibe o resultado no monitor
serial. Mesmo que o código seja o mesmo, vamos recapitular os comandos principais
da comunicação serial: Serial.begin(9600), Serial.print() e Serial.println(). Estes
comandos também são usados para gerar os gráficos com a IDE do Arduino.
É importante saber o que cada comando faz, pois o plotter serial segue algumas
regras para exibir o gráfico:
Os gráficos gerados estão sempre em função do tempo;
Para que o gráfico seja exibido, é necessário que o código tenha pelo
menos um comando de quebra de linha (comando Serial.println());
E por fim cada informação deve ser separada por um espaço, ou seja,
adicione um comando Serial.print(" ") entre cada variável a ser exibida.
Veja que nosso código atende às regras. Dentro da rotina loop temos o
comando de quebra de linha e, como não enviamos mais nenhum comando de escrita
na porta serial, não necessitamos enviar um espaço.
O que deve acontecer
É esperado que, possamos visualizar um gráfico da tensão do potenciômetro
em função do tempo e que as mudanças exibidas no gráfico sejam proporcionais a
mudança de posição do potenciômetro. Porem assim como o monitor serial, precisamos
abrir uma janela que exiba o resultado, neste caso para plotar gráficos, clique em
"Ferramentas" e em seguida "Plotter Serial".
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Ao abrir a janela, o gráfico começará a ser plotado. Veja que as escalas são
geradas automaticamente e quando variamos a posição do eixo do potenciômetro, o
gráfico exibe estas variações.
Figura 52: Serial plotter
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Adicionando gráficos
Agora, e se você quiser plotar múltiplos gráficos? Muito simples, basta o usar
o comando Serial.print(" ") para separar uma variável da outra. Quando usamos este
comando no código anterior, podemos exibir a tensão sobre o potenciômetro e ao
mesmo tempo o valor que a porta analógica está lendo. Carregue o código a seguir para
entender melhor essa função.
Figura 53: Programação multi gráficos
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
EXPERIMENTO 8
Projeto Dimmer
PWM
O PWM é uma técnica que consiste em controlar a proporção de tempo em que
mantemos o sinal ligado e desligado, dentro de um período fixo. Essa proporção de
acionamento é conhecida como duty cycle. Resumidamente, quando dizemos que o
duty cycle de um pino PWM é de 50%, isso implicará que a corrente obtida será de 50%,
e o LED que estiver ligado a este pino, por exemplo, ficará com metade do brilho. A
figura a baixo ilustra essa ideia.
Vamos construir um dimmer simples, usando um pino digital comum para
controlar o brilho de um LED. Lembrando que o experimento que desenvolveremos
agora não é a forma ideal de usar sinais PWM, porém é a forma mais simples de mostrar
o fenômeno resultante de um controle por um sinal PWM.
Lista de materiais
Você precisará dos seguintes materiais para o desenvolvimento dessa
atividade:
1x Placa Arduino + Cabo USB
1x Protoboard
Jumpers
Circuito
Monte o circuito conforme a imagem abaixo.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Grave o seguinte código na placa:
Figura 55: Código dimmer
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Circuito
O circuito que montaremos para este experimento é semelhante ao circuito
usado anteriormente. Porém, ao invés do pino 12 usado no circuito anterior, vamos
usar o pino 11, que é um dos pinos dedicados aos sinais PWM. Lembrando que no
caso da placa Arduino Uno, o sinal PWM pode ser obtido nos pinos 3, 5, 6, 9, 10 e 11,
todos indicados com um til ( ) ou um asterisco ( ) (dependendo da versão da placa),
como a imagem abaixo:
Código
Grave o seguinte código na placa:
Figura 55: Código dimmer PWM
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
EXPERIMENTO 9
LED RGB
Seu funcionamento é muito parecido com os LEDs que usamos até o momento,
porém com algumas modificações. A primeira coisa que podemos ver de diferente é a
sua morfologia, que em vez de apresentar dois terminais, agora apresenta quatro, sendo
que o maior pode ser o cátodo, para LEDs de cátodo comum, ou o ânodo, para LEDs
com ânodo comum. Ou seja, isso nos indica que um LED RGB é basicamente a junção
de três LEDs. A imagem a seguir mostra a representação do componente em esquemas
elétricos, e ao mesmo tempo ajuda a entender como é a ligação interna do componente.
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Lista de materiais
Você precisará dos seguintes materiais para o desenvolvimento dessa
atividade:
1x Placa Arduino com Cabo USB
1x LED RGB
3x Resistor 300
3x Chave Momentânea (PushButton)
1x Protoboard
Jumpers
Circuito
Monte o circuito abaixo com os componentes. Para posicionar o LED RGB,
considere que o pino maior é o cátodo comum, ou seja, ele deve estar conectado ao
GND da placa.
Figura 57: Circuito do LED RGB
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Entendendo o código
Neste código fazemos todas os procedimentos habituais, de definir variáveis,
configurar os pinos, e por fim, escrever a rotina que será executada infinitamente (loop).
Essa rotina usa três condicionais if, que verificam o estado de cada botão. Caso o botão
seja pressionado, seu respectivo LED é aceso, senão ele é apagado.
EXPERIMENTO 10
Lista de materiais
1x Placa Arduino com cabo USB
1x LED RGB
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
O código foi desenvolvido tendo como base o exemplo do experimento anterior,
por isso algumas partes são bem parecidas. Carregue o código abaixo em sua placa
Arduino.
Figura 60: Código do LED RGB e potenciômetro
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Figura 61: Código do LED RGB e potenciômetro
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Entendendo o código
O código foi dividido em três condicionais principais if, um para cada cor.
Quando um dos botões de seleção de cor é pressionado, verifica-se se o botão de ajuste
também foi acionado. Caso isso ocorra, o código atualiza a variável de PWM daquela
cor pelo comando pwmX = map(leituraPotenciometro, 0, 1023, 0, 255) . Caso o botão
de ajuste não tenha sido pressionado, o código apenas aciona o LED da respectiva cor
com o último valor de PWM definido. Se nenhum dos dois botões for pressionado, o
LED é desligado.
EXPERIMENTO 11
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Lista de materiais
Você precisará dos seguintes materiais para o desenvolvimento dessa
atividade:
1x Placa Arduino + Cabo USB
1x Sensor de Temperatura e Umidade DHT11
1x Protoboard
Jumpers
Circuito
O circuito é bem simples. Alimentamos o sensor com 5 V, através dos pinos
VCC e GND, e ligamos o pino de sinal ao pino 9 do Arduino. Observe que o resistor de
10k ohms foi colocado entre os pinos 1 e 2 do sensor.
Figura 64: Circuito do sensor DHT11
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Implementar o protocolo de comunicação com o sensor byte a byte não é o
foco desse material, por esse motivo iremos utilizar uma biblioteca chamada DHT.h que
fará isso por nós, assim podemos nos preocupar apenas com a lógica envolvida.
Internamente a biblioteca DHT.h faz referência à biblioteca Adafruit_Sensor.h, por
esse motivo precisaremos instalar as duas bibliotecas para que o código possa ser
compilado.
Após fazer o download das duas bibliotecas, abra a IDE do Arduino e vá até o
Gerenciador de Bibliotecas, onde você pode adicionar rapidamente uma biblioteca que
está compactada no formato ZIP ou até mesmo a pasta. Para isso abra o menu Sketch
> Incluir Biblioteca (Include Library) > Adicionar Biblioteca .ZIP (Add .ZIP Library...)
conforme a imagem abaixo.
Figura 65: Incluindo biblioteca do sensor DHT11
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
EXPERIMENTO 12
Lista de materiais
Você precisará dos seguintes materiais para o desenvolvimento dessa
atividade:
1x Placa Arduino + Cabo USB
1x Sensor de Temperatura e Umidade DHT11
1x Buzzer
1x LED RGB 5 mm
3x Resistor 300
1x Resistor 10 k
1x Protoboard
Jumpers
Circuito
O sensor DHT11, juntamente com um buzzer e um LED RGB, farão parte desse
circuito. Conforme mostra abaixo:
Figura 66: Circuito do sistema de alarme
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Digite o código abaixo em sua Arduino IDE, compile-o e envie-o para sua placa.
Figura 66: Circuito do sistema de alarme
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Entendendo o código
O código desse projeto verifica a temperatura e identifica em qual faixa ela se
encontra. Se a temperatura estiver dentro da faixa ideal (20 a 30 ºC), o LED acende em
verde e o buzzer se mantém desligado. Caso a temperatura esteja levemente fora da
faixa recomendada (até 35 ou 15 ºC), uma luz azul acenderá e o buzzer tocará numa
frequência de 1000 Hz a cada meio segundo informando o leve desvio. Já se o valor
estiver muito fora do ideal, valores maiores que 35 ºC ou menores que 15 ºC, o LED
acenderá vermelho e o buzzer tocará a cada um segundo numa frequência de 2000 Hz
indicando um alerta máximo.
EXPERIMENTO 13
Lista de materiais
1x Placa Arduino + Cabo USB
1x Protoboard
1x Sensor Ultrassônico - HC-SR04
Jumpers
Circuito
Monte o circuito conforme a imagem abaixo.
Figura 67: Circuito do sensor ultrassônico
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
Como explicado, o sensor ultrassônico precisa de um conjunto de comandos
para medir distâncias. Isso implica que, cada vez que algum projeto usar este sensor, o
mesmo conjunto de comandos deverá ser usado. Para evitar que o código fique muito
repetitivo, extenso, confuso e trabalhoso, é recomendado a utilização de funções, mais
especificamente para este caso, utilizar funções com retorno.
Carregue o código abaixo em sua placa Arduino.
Figura 68: Código do sensor ultrassônico
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
EXPERIMENTO 14
Simulando um sensor de ré
Lista de materiais
1x Placa Arduino + Cabo USB
1x Protoboard
1x Sensor Ultrassônico - HC-SR04
1x Buzzer Passivo 5 V
1x LED Vermelho 5 mm
2x LED Amarelo 5 mm
3x LED Verde 5 mm
Jumpers
Circuito
Monte o circuito conforme a imagem abaixo.
Figura 69: Circuito sensor de ré
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Código
1. Ler o sensor
Para a leitura do sensor usaremos a função desenvolvida no experimento
anterior. A utilização é simples, primeiro implementamos a função do sensor, que neste
caso foi nomeada como sensor_morcego, lembrando que a função do sensor deve
ficar fora da função loop(). Outra coisa que não podemos esquecer é que uma variável
deverá ser criada para receber as leituras do sensor, aqui neste exemplo o nome da
variável será distancia .
EXPERIMENTO 15
Acionar um relé com Arduino não é uma tarefa difícil. Um relé nada mais é que
um componente que, através de condução eletromagnética, faz uma chave se
movimentar. Portanto, um relé é simplesmente uma chave liga e desliga! Normalmente
um relé possui cinco terminais. Dois deles são os terminais da bobina de acionamento.
Esta bobina, no relé, é de 5 V. Ou seja, você precisa de uma tensão DC de 5 V para
fazer a bobina conduzir e fazer o relé "bater", ou acionar a chave. Os outros três
terminais são como os de um interruptor. Um é o terminal comum (C), ou seja, ele é
comum ao circuito. Nele sempre passará a corrente. Os outros dois terminais são os
contatos, um é normalmente aberto (NA) e o outro é normalmente fechado (NF). Eles
são contatos com funções cujo próprio nome está dizendo. O normalmente fechado está
em contato com o pino COMUM a todo momento até que a bobina conduza corrente.
Quando a bobina conduz corrente, o contato do relé se fecha, e o pino COMUM se liga
ao pino NORMALMENTE ABERTO, fazendo-o ficar fechado e conduzir a corrente.
Apenas para ilustrar, para acionar um relé com Arduino precisamos do seguinte circuito:
Figura 70: Circuito do relé
Fonte: https://www.robocore.net/tutoriais/kit-iniciante-v8-a-protoboard
Lista de materiais
1x Placa Arduino + Cabo USB
1x Módulo Relé
Jumpers
Circuito
Figura 71: Circuito do relé
Fonte: https://www.robocore.net/tutoriais/kit-avancado-para-arduino-modulo-rele
Código
Um código simples para ver o relé em funcionamento pode ser o exemplo mais
básico do Arduino, o Blink:
Figura 72: Código do relé
Fonte: https://www.robocore.net/tutoriais/kit-avancado-para-arduino-modulo-rele