Arduino Omega Ebook Arduino Junior
Arduino Omega Ebook Arduino Junior
Arduino Omega Ebook Arduino Junior
Sumário
1 INTRODUÇÃO .................................................................................. 2
2 CONCEITOS IMPORTANTES .......................................................... 3
3 COMPOSIÇÃO DO ARDUINO ......................................................... 14
4 BAIXANDO A IDE DO ARDUINO .................................................... 18
5 ACENDENDO LEDs ......................................................................... 21
6 SEQUENCIAL DE LEDs ................................................................. 33
7 EFEITO CHAMAS ............................................................................ 37
8 LED COM BOTÃO ...........................................................................41
9 SEMÁFORO ......................................................................................49
10 CONTROLANDO A INTENSIDADE DO LED ................................ 53
11 SEQUENCIAL DE LEDS COM POTENCIÔMETRO ...................... 58
12 CONTROLANDO SERVO MOTOR ................................................ 65
13 CONTROLANDO DISPLAY LCD ................................................... 70
14 SENSOR DE LUZ ........................................................................... 78
15 SENSOR DE SOM .......................................................................... 88
16 SENSOR DE ESTACIONAMENTO ................................................ 95
17 MONITORAMENTO DE TEMPERATURA .................................... 102
18 FINALIZAÇÃO ................................................................................ 107
Introdução
Esse E-book foi desenvolvido pela Arduino Ômega e destina-se aos makers
iniciantes que querem aprender a utilizar o Arduino e desenvolver projetos de
forma prática e divertida! Aqui você vai aprender como construir projetos
utilizando os materiais disponíveis no Kit Arduino Júnior mesmo que você não
tenha nenhum conhecimento sobre. Nesse E-book será apresentado qual a
função dos principais componentes, conceitos de eletrônica e elétrica e
ensinamentos sobre programação.
2
Conceitos Importantes
O que é Arduino ??
O Arduino é uma plataforma eletrônica de código aberto desenvolvido na Itália
que une hardware e software simples para uso. As placas Arduino conseguem
ler Entradas e transformar em Saídas graças a um Microcontrolador embutido.
Dessa forma, através de códigos, é possível dizer a sua placa o que ela deve
fazer. Por ser uma plataforma de código aberto, qualquer pessoa pode modificar,
melhorar e personalizar, utilizando o mesmo hardware do Arduino, porém não é
permitido utilizar o nome Arduino e nem a logo.
3
Entradas e Saídas
De forma resumida as entradas são por exemplo
apertar um botão, quando ele é acionado é enviado
um sinal para o microcontroldor do Arduino que
pode ativar algo, como por exemplo um LED ou um
motor.
Microcontroladores
Os microcontroladores são uma junção de Software
e Hardware que através da programação conseguimos
controlá-los para desempenhar tarefas. Ele é um tipo
especial de circuito integrado, visto que conseguimos
programar os microcontroladores para realizar
tarefas específicas. Em breve vamos descobrir
diversas coisas que podemos fazer utilizando
microcontroladores. No caso do Arduino Uno R3 o
microcontrolador utilizado é o ATmega 328.
ATmega
4
Arduino Uno R3
Em nossos projetos vamos utilizar a placa Arduino Uno, esse modelo é o mais
conhecido e mais utilizado por pessoas que querem ingressar no mundo da
Robótica e Automação. Ele possui 14 Portas Digitais e 6 delas podem ser
utilizadas como saída PWM (controle de dispositivos variando a intensidade).
Além disso, possui um microcontrolador ATmega328 que possui 32 KB de
memória, que é suficiente para desenvolver diversos projetos.
5
Sinais Digitais
Como visto anteriormente, o Arduino Uno possui 14
Portas Digitais, mas afinal, você sabe o que é um
Sinal Digital ?
Lâmpadas;
Buzinas;
Ventiladores.
Chaves seletoras;
Fins de Curso;
Botões.
6
Sinais Analógicos
Além de portas digitais, o Arduino Uno também possui Portas Analógicas. O
Sinal Analógico é um sinal que pode assumir infinitos valores em um intervalo
de tempo. Exemplos de Sinais Analógicos são:
Sensores de Temperatura;
Sensores de Umidade;
Sensores de Pressão;
Potenciômetros.
Simplificando...
Para simplificar, pense no interruptor e um dimmer de uma lâmpada…
7
PWM
Outro conceito que aparecerá em nossos projetos é o PWM, que significa Pulse
Width Modulation, traduzindo para o português fica Modulação por Largura de
Pulso. Ele nada mais é que uma técnica desenvolvida para obter resultados
analógicos por meios digitais. Essa técnica consiste na geração de uma onda
quadrada em uma frequência muita alta em que pode ser controlada a
percentagem do tempo em que a onda permanece em nível lógico alto. Esse
tempo é chamado de Duty Cycle e sua alteração provoca mudança no valor
médio da onda, indo desde 0V (0% de Duty Cycle) a 5V (100% de Duty Cycle) no
caso do Arduino.
8
Tensão Elétrica
Também conhecida como Diferença de Potencial, a
tensão é a grandeza que mede a diferença de potencial
elétrico entre dois pontos. É a força necessária para
mover os elétrons e criar assim uma Corrente Elétrica.
O equipamento utilizado para medir a tensão é conhecido
como voltímetro, no Sistema Internacional a unidade
de medida é Volts, onde o símbolo é V.
Tipos de Tensão
A tensão pode ser Contínua ou Alternada. Na contínua ela não muda de
polaridade com o passar do tempo, já na alternada é ao contrário, ou seja, muda
de polaridade com o passar do tempo.
Exemplos
A Contínua não muda de polaridade com o passar do
tempo. A tensão das pilhas é contínua.
9
Fórmulas
Podemos calcular a Tensão Elétrica utilizando a Lei de Ohm, onde a tensão é
igual a resistência vezes a corrente elétrica.
OBS: U = Tensão
Resumindo: U = R x I R = Resistência
I = Corrente
Tensão = Potência
Corrente
OBS: U = Tensão
Resumindo: U = P
P = Potência
I I = Corrente
OBS: O termo Voltagem apesar de ser muito falado não existe, é apenas um
termo popular.
10
Corrente Elétrica
A Corrente Elétrica é um fenômeno físico onde ocorre o movimento de cargas
elétricas, como os elétrons, que acontece no interior de diferentes materiais em
razão da aplicação de uma diferença de potencial elétrico. A corrente elétrica é
uma grandeza escalar, sua unidade de medida de acordo com o Sistema
Internacional de Unidades, é o Ampère, cujo símbolo é A. Essa unidade mede o
módulo da carga elétrica que atravessa a secção transversal de um condutor a
cada segundo e por isso também pode ser escrita como Coulombs Por
Segundo, onde o símbolo é C/s.
Tipos de Corrente
Assim como a Tensão Elétrica, existem dois tipos de corrente, a Corrente
Alternada (CA) e a Corrente Contínua (CC).
11
Fórmulas
Para se saber qual a intensidade da Corrente Elétrica em um condutor, é
possível utilizar a equação de carga elétrica pelo tempo.
Corrente = Tensão
Resistência
12
Resistência Elétrica
A Resistência Elétrica é definida como a capacidade que um corpo tem de opor-
se à passagem da Corrente Elétrica. A unidade de medida da resistência no
Sistema Internacional é o Ohm (Ω), e representa a razão volt/Ampére.
Fórmulas
Para descobrir a Resistência Elétrica podemos utilizar a Primeira Lei de Ohm.
Resistência = Tensão
Corrente
13
Composição do Arduino
Bem, agora que já conhecemos os principais conceitos que vão ser utilizados,
vamos conhecer um pouco mais sobre o Arduino Uno.
Portas Digitais
Portas Analógicas
14
Portas para Alimentação
Essas são as portas destinadas para fornecer energia a circuitos e componentes
externos.
Vin: A porta Vin fornece a mesma tensão que é recebida pelo pino de
alimentação externo.
3,3V: Porta que fornece 3,3 volts para a alimentação de dispositivos externos.
OBS: Os pinos que não possuem identificação não estão conectados a nada,
então não devem ser utilizados.
15
Outras Portas
RX: Receiver
TX: Transmitter
São as portas utilizadas pelo Arduino para fazer a Comunicação Serial. Você
pode utilizar essas portas como portas digitais normais, porém é melhor evitar !!
16
Botão para Resetar o Arduino.
17
Baixando a IDE do Arduino
Clique Aqui para baixar a IDE do Arduino. Caso tenha dúvidas, siga o passo a
passo abaixo.
Clique em Software.
18
Se quiser, você pode fazer uma
doação para ajudar o
desenvolvimento da Arduino IDE.
Caso contrário, basta clicar em Just
Download e o programa começará
a baixar.
Clique em I Agree.
19 3
5
Selecione todas as caixas e
clique em Next.
20
Acendendo LEDs
Chegamos em nosso primeiro projeto com o Arduino, nele através da
programação vamos acender e apagar LEDs, mas antes é necessário
conhecermos os componente que serão utilizados !!
LED
O LED é um diodo emissor de luz, ele é um componente capaz de emitir luz
visível transformando a energia elétrica em energia luminosa.
Ânodo: Positivo
Cátodo: Negativo
Resistor
Resistores são dispositivos muito utilizados para controlar a passagem de
corrente elétrica em circuitos elétricos por meio do Efeito Joule, que converte
energia elétrica em energia térmica.
Vamos utilizar ele pois se ligarmos um LED direto no 5 volts fornecido pelo
Arduino, ele irá queimar !!
21 3
5
Código de Cores
Você deve ter notado que os resistores possuem algumas faixas coloridas em
seu corpo, essas listras são códigos que mostram o valor do resistor, vamos
aprender a como ler esses códigos !!
1- As faixas coloridas são lidas a partir da que está mais próxima de uma
extremidade.
22
Valor das Cores
COR VALOR
Preto 0
Marrom 1
Vermelho 2
Laranja 3
Amarelo 4
Verde 5
Azul 6
Violeta 7
Cinza 8
Branco 9
Dourado 5% impre.
Prateado 10% impre.
23 3
5
Como saber qual a resistência
correta ??
Existe uma fórmula para saber qual a resistência deve ser utilizada em um
LED. Mas antes é preciso saber qual é a Tensão e a Corrente de cada LED.
Cálculos
Para se calcular o resistor adequado para o LED utilizaremos a seguinte
fórmula:
OBS: O valor do resistor pode ser acima do resultado, porém nunca abaixo, por
exemplo, se o valor for igual a 150 Ω, podemos usar um resistor de valor mais
alto, como 200 Ω, ou até mesmo 1KΩ, que são 1000 Ω.
24
Protoboard
O próximo componente é a Protoboard, que Nada mais é do que uma placa
com furos e conexões condutoras utilizada para a montagem de protótipos e
projetos que estão na fase inicial. A vantagem de se utilizar uma Protoboard é
que podemos montar os componentes direto nele, assim eliminamos a
necessidade de utilizar a solda.
Conexões
As conexões da Protoboard são dessa forma por dentro:
25 3
5
Jumper
Os Jumpers nada mais são do que condutores para ligar um ponto a outro.
Circuito
Para alimentarmos o nosso circuito é necessário conectar a Porta GND do
Arduino na Protoboard.
26
Agora, vamos conectar nosso resistor e o LED.
Circuito na Prática
27 3
5
Funções da Programação
Antes de iniciarmos a programação do nosso projeto, é importante conhecer as
funções que cada código vai exercer.
Int
O primeiro comando que será utilizado é o Int.
28
veja como deve ser escrita variável do tipo Int:
int LedVermelho = 4;
Void setup
A função setup() é chamada quando a placa inicia. É usada para inicializar
variáveis, configurar o modo dos pinos Entrada (INPUT) ou Saída
(OUTPUT), inicializar bibliotecas, entre outros. Essa função só é executada
uma vez, quando a placa é alimentada ou acontecer um reset.
Essa função deve ser escrita da seguinte maneira:
void setup () {
Pin Mode
O comando pinMode é onde configuramos se a porta que vamos utilizar
será uma Entrada (INPUT) ou uma Saída (OUTPUT).
Essa função deve ser escrita dentro do void setup e da seguinte forma:
pinMode(pino, modo);
29
Em nossa programação ficará assim:
pinMode(LedVermelho, OUTPUT);
Como criamos uma variável do tipo Int e já declaramos a porta utilizada pelo
LED, não é necessário colocar o número da porta novamente, apenas o nome da
variável que é “LedVermelho”.
Void Loop
Após de criar uma função setup(), a qual inicializa e atribui os valores iniciais, a
função loop() repete-se consecutivamente enquanto a placa estiver ligada,
permitindo o seu programa mudar e responder a essas mudanças, sendo assim,
nessa função vamos montar a maior parte do nosso código !!
void loop () {
Digital Write
Esse comando aciona um valor alto (HIGH) ou baixo (LOW) em uma Porta
Digital, ou seja ela que vai ligar ou desligar o nosso LED.
digitalWrite(pino, modo);
30
Exemplo com LED ligado:
digitalWrite(LedVermelho, HIGH);
Delay
A função Delay é utilizada para pausar o programa por uma quantidade
especificada de tempo (em milissegundos). Cada segundo equivale a
1000 milissegundos.
delay(tempo);
delay(3000);
OBS: Todos os comandos devem ser finalizados com ponto e vírgula (;)
Programação
Agora chegou a hora de programarmos nosso projeto, vamos utilizar todas
as funções que vimos a cima !!
31
void loop () { // inicia o void loop
} // encerra a programação
32
Sequencial de LEDs
Agora que conhecemos os componentes e as funções da programação vamos
montar um sequencial de LEDs, a cada 1 segundo um LED de cor diferente se
acende, a ordem será a seguinte:
1- Verde
2- Amarelo
3- Vermelho
4- Azul
Circuito
33
O menor terminal do LED vermelho deve estar conectado ao GND e o maior a
um resistor de 1KΩ e na Porta Digital 5.
Circuito na Prática
34
Programação
int LedVerde = 3; // Declaramos que o LED está na porta digital 3
int LedAmarelo = 4; // Declaramos que o LED está na porta digital 4
int LedVermelho = 5; // Declaramos que o LED está na porta digital 5
int LedAzul = 6; // Declaramos que o LED está na porta digital 6
35
delay(1000); // Espera o tempo de 1 segundos
} // encerra a programação
Desafio
Agora que você já sabe como controlar um LED com o Arduino, temos um
desafio !!
O desafio:
1- Apaga Azul
2- Apaga Vermelho
3- Apaga Amarelo
4- Apaga Verde
36
Efeito de Chamas
Continuando nossos projetos, agora vamos utilizar das portas PWM do Arduino
para variar aleatoriamente a luminosidade de LEDs, criando um efeito de
cintilação característico das chamas.
Circuito
37
Circuito na Prática
38
Função Random
A função random() gera números pseudoaleatórios. Vamos utilizar essa função
na programação para variar aleatoriamente a luminosidade dos LEDs.
Programação
int led1 = 9;
int led2 = 10;
int led3 = 11;
void setup() {
void loop() {
analogWrite(led1,random(120)+136);
analogWrite(led2,random(120)+136);
analogWrite(led3,random(120)+136);
39
// Delay com valor aleatório entre 0 e 100ms
delay(random(100));
}
40
LED com Botão
Agora que já sabemos como acender e apagar um LED através da programação
no Arduino, vamos aprender como fazer essa função utilizando um botão,
precisamos desenvolver um programa que consiga ler se o botão está
pressionado ou não, caso esteja o LED é acesso.
Push Button
Também conhecido com Chave Táctil, o Push Button é um componente muito
utilizado no mundo da eletrônica em diversos projetos.
41
Por dentro de um Push Button
Circuito
42
Primeiro, é necessário alimentarmos a protoboard com as portas GND e 5V do
Arduino.
Circuito na Prática
43
Funções da Programação
Antes de começarmos a programação, vamos conhecer as novas funções que
vamos utilizar !!
Digital Read
Sua função é ler o valor de um Pino Digital especificado, que pode ser alto
(HIGH) ou baixo (LOW).
digitalRead(pino)
Exemplo:
val = digitalRead(botao);
If
A função if checa uma condição e executa o comando a seguir ou um bloco de
comandos delimitados por chaves, se a condição é verdadeira ('true').
if (condição) {
//comando(s)
44
If em português significa Se, para facilitar veja o exemplo a seguir:
O Arduino fará a leitura de um botão, se o valor desse botão for alto (HIGH) um
LED deverá ser acesso.
if (estadoBotao == HIGH) {
Else
Uma cláusula else será executada se a condição do comando if resulta em false,
ou seja, o else é o contrário do if.
if (condição1) {
// faz coisa A
} else {
// faz coisa B
45
Programação
int led = 4; // Declaramos que o LED está na porta digital 4
int botao = 3; // Declaramos que o botão está na porta digital 3
int estadoBotao = 0; // Variável com os estados do botão (0 LOW, 1 HIGH)
estadoBotao = digitalRead(botao);
}
}
46
Interruptor
Alterando um pouco a programação e inserindo uma nova função, conseguimos
fazer com que o botão funcione como um interruptor, ou seja, um toque para
ligar o LED e um para desligá-lo.
While
A nova função que vamos utilizar é a While, essa função se repete
continuamente, e infinitamente, até a expressão dentro dos parênteses (), se
torne falsa.
Programação
int led = 4; //Declaramos que o LED está na porta digital 4
int botao = 3; //Declaramos que o LED está na porta digital 3
int estadoLED = 0; //Variável com os estados do LED (0 LOW, 1 HIGH).
digitalWrite(led,estadoLED);
47
while(digitalRead(botao) == HIGH); // Equanto o botão não for pressionado
novamete, o LED continua ligado
48
Semáforo
Agora que já sabemos como controlar LEDs utilizando um Botão, vamos criar
um sistema semelhante aos semáforos. Quando o botão estiver pressionado o
semáforo funciona normalmente, caso o botão não esteja pressionado, o LED
amarelo fica piscando alertando que o semáforo não está funcionando.
Circuito
49
O menor terminal do segundo LED vermelho deve estar conectado ao GND e o
maior a um resistor de 1KΩ e na Porta Digital 5.
Circuito na Prática
50
Programação
int botao = 2; // Declaramos que o botão está na porta digital 2
int ledVerde = 3; // Declaramos que o LED está na porta digital 3
int ledAmarelo = 4; // Declaramos que o LED está na porta digital 4
int ledVermelho = 5; // Declaramos que o LED está na porta digital 5
51
delay(1000); // tempo de 1 segundos
}
}
52
Controlando a intensidade do LED
Potenciômetro
Potenciômetro é um componente eletrônico muito utilizado que cria uma
limitação no fluxo de corrente elétrica que passa por ele, essa limitação
geralmente é ajustada manualmente, dessa forma podemos aumentar ou
diminuir esse fluxo.
53
Onde encontramos Potenciômetros ?
Os potenciômetros são encontrados em controle de volumes de aparelhos de
som, controle de posicionamento em controles de videogames, controle de
brilho e contraste em telas LCD, entre outros.
Circuito
54
O menor terminal do LED deve estar conectado ao GND, o maior a um resistor
de 1KΩ e na Porta PWM ~3.
Circuito na Prática
55
Funções da Programação
Antes de iniciarmos a programação, vamos conhecer a nova função que será
utilizada !!
Map
A função Map permite remapear um número de um intervalo para outro, ou seja,
um intervalo numérico que vai de um valor mínimo a um máximo pode ser
alterado para um novo valor mínimo e máximo.
Exemplo :
novo_valor = map(valor, 0, 1023, 0, 255);
Programação
int pot = A0; // Definindo que o Potenciômetro está na porta analógica A0
int led = 3; // Definindo que o LED está na porta digital 3
56
valorPot = analogRead(pot); // Faz a leitura analógica da porta em que o
potenciômetro esta conectado
57
11 Sequencial de LEDs com Potenciômetro
Esse projeto é muito semelhante ao segundo projeto que fizemos, porém ao
invés dos LEDs se acenderem automaticamente, dessa vez eles vão se acender
de acordo com a posição do potenciômetro.
Circuito
58
Depois de 3 LEDs amarelos, os menores terminais devem estar conectados ao
GND do circuito e os maiores terminais em resistores de 1KΩ e nas seguintes
Portas Digitais:
Por fim, 3 LEDs verdes, os menores terminais devem estar conectados ao GND
do circuito e os maiores terminais em resistores de 1KΩ e nas seguintes Portas
Digitais:
59
Circuito na Prática
60
Programação
int led = 2; // Definindo que o LED Vermelho 1 está na porta digital 2
int led2 = 3; // Definindo que o LED Vermelho 2 está na porta digital 3
int led3 = 4; // Definindo que o LED Vermelho 3 está na porta digital 4
int led4 = 5; // Definindo que o LED Amarelo 1 está na porta digital 5
int led5 = 6; // Definindo que o LED Amarelo 2 está na porta digital 6
int led6 = 7; // Definindo que o LED Amarelo 3 está na porta digital 7
int led7 = 8; // Definindo que o LED Verde 1 está na porta digital 8
int led8 = 9; // Definindo que o LED Verde 2 está na porta digital 9
int led9 = 10; // Definindo que o LED Verde 3 está na porta digital 10
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
pinMode(led9, OUTPUT);
pinMode(pot, INPUT);
}
61
void loop(){ // incia o void loop
} else { // Se não
} else { // Se não
} else { // Se não
62
digitalWrite(led3, LOW); // O terceiro LED permanece apagado
}
} else { // Se não
} else { // Se não
} else { // Se não
63
} else { // Se não
} else { // Se não
} else { // Se não
}
}
64
12 Controlando Servo Motor
Servo Motor
Os servos motores são dispositivos eletromecânicos utilizados para movimentar
com precisão determinados objetos, permitindo-o girar em ângulos ou distâncias
específicas, com garantia do posicionamento e velocidade.
Ele nada mais é que um motor elétrico rotativo acoplado a um sensor que passa
a condição de seu posicionamento, permitindo o controle preciso da velocidade,
aceleração e da posição angular.
O servo motor que utilizaremos é o Micro Servo 9g SG90, ele possui alta
qualidade e é excelente para nossos projetos de robótica com Arduino.
65
Circuito
O fio de cor preta ou marrom do servo motor, deve ser conectado ao GND, o fio
de cor vermelha nos 5V e o de cor amarela na Porta Digital 3.
66
Circuito na Prática
67
Bibliotecas
Na programação do nosso projeto, vamos ter que usar uma biblioteca.
Resumidamente, uma biblioteca nada mais é que um trecho de software que
fornece funcionalidade específica a um programa.
Nós vamos utilizar a biblioteca Servo, geralmente ela já vem instalada com a IDE
do Arduino, porém caso precise baixa-la clique aqui.
Programação
#include <Servo.h> // Incluindo a biblioteca
68
servo.write(valorpot); //Faz com que o servo se movimente de acordo com o valor
do potenciômetro
delay(1);
69
13 Controlando um Display LCD
Agora vamos incrementar um pouco mais nossos projetos, vamos aprender a
controlar um Display LCD escrevendo textos utilizando o Arduino !!
Display LCD
O Display LCD serve para escrever textos e sinalizações, tem outras diversas
aplicações com microcontroladores como o Arduino. São 16 colunas por 2
linhas, backlight azul e escrita branca. Possui o controlador HD44780 usado em
toda indústria de LCD’s como base de interface.
Uma vantagem que esse display traz é o Módulo I2C integrado, dessa forma
você faz a conexão entre o microcontrolador e o display utilizando apenas os
pinos SDA e SCL, deixando as outras portas livres para o desenvolvimento do
seu projeto.
70
Circuito
71
Circuito na Prática
72
Funções da Programação
Antes de começarmos a programação, vamos conhecer as novas funções que
vamos utilizar !!
Lcd.begin
Essa função inicializa a interface para a tela LCD e especifica as dimensões da
tela. Precisa ser chamado antes de qualquer outro comando da biblioteca LCD.
Exemplo:
lcd.begin(16,2);
lcd.setBacklight
Essa função utilizamos para ligar ou desligar a luz dos Displays que possuem o
módulo I2C.
lcd.setBacklight(modo);
Exemplo:
lcd.setBacklight(HIGH);
73
lcd.setCursor
Essa função posiciona o cursor do LCD, ou seja, define o local em que o texto
escrito no LCD será exibido.
lcd.setCursor(coluna, linha);
Exemplo:
lcd.setCursor(0,0);
lcd.print
Nessa função devemos escrever o texto para imprimir no Display LCD.
lcd.print("texto")
lcd.clear
Essa função limpa a tela LCD, ou seja, apaga os textos escritos.
lcd.clear ();
74
Instalando Biblioteca
Para conseguirmos programar o Display, é necessário adicionarmos a biblioteca
New Liquid Crystal, você pode baixá-la Clicando Aqui.
75
Programação
// Incluindo bibliotecas necessárias
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
76
Possível Erro
1- As letras não estão aparecendo: Se isso acontecer você deve regular a
intensidade do brilho dos textos. Para fazer isso é necessário ajustar o trimpot
atrás do display no Módulo I2C com uma chave Philips.
TRIMPOT
77
14 Sensor de Luz
A partir de agora vamos dar início nos projetos com sensores. Nesse, vamos
utilizar um Fotoresistor LDR para criar um sistema de iluminação muito
semelhante aos utilizado nos postes de iluminação de cidades, onde sempre que
o LDR detectar baixa luminosidade um LED é acesso.
Fotoresistor LDR
Fotoresistor LDR é um componente eletrônico muito utilizado, sua função é
semelhante ao resistor comum de limitar a corrente elétrica que passa sobre
ele, porém sua resistência varia de acordo com a intensidade da luz.
Quanto mais luz incidir sobre o componente, menor a resistência. Este sensor de
luminosidade pode ser utilizado em projetos com Arduino e outros
microcontroladores para alarmes, automação residencial, sensores de
presença e etc.
78
Circuito
Depois, encaixe o Sensor LDR na protoboard, um dos terminais deve ser ligado
aos 5V e outro ao GND, a um resistor de 10KΩ e na Porta Analógica A0.
Por fim, o menor terminal do LED deve estar conectado ao GND e o maior a
um resistor de 1KΩ e na Porta Digital 4.
79
Circuito na Prática
80
Novas funções
Antes de começarmos a programação, vamos conhecer as novas funções que
vamos utilizar !!
Serial.begin
Essa é a primeira função utilizada quando vamos fazer a comunicação serial,
ela configura a taxa de comunicação em bits por segundo.
Serial.println
Essa função Imprime dados no monitor serial como texto.
Serial.println(valor);
Programação
int led = 4; // Definindo que o LED está na porta digital 4
81
pinMode (led, OUTPUT); //Define LED como saída
pinMode (sensor, INPUT); //Define sensor como entrada
if((valorsensor) < 300){ //Se o valor de valor do sensor for menor que 300
digitalWrite(led, HIGH);// O LED acende
} else{ // Se não
Para ver o valor que o sensor está lendo em tempo real, pressione a tecla Ctrl +
shift + m e irá abrir o monitor serial.
82
Incrementando
Ao invés de utilizarmos o LED podemos fazer uma alteração no circuito e utilizar
uma lâmpada, para isso será necessário usar o Módulo Relé e a única alteração
que é preciso fazer na programação é inverter o digitalWrite para LOW, uma vez
que o relé funciona de forma invertida e sua programação é igual a de um LED.
Módulo Relé
Este Módulo Relé permite uma integração com uma ampla gama de
microcontroladores como o Arduino. A partir das saídas digitais pode-se,
através do relé, controlar cargas maiores e dispositivos como motores AC ou
DC, eletroímãs, solenóides e lâmpadas incandescentes.
Este módulo tem um canal sendo assim concebido para ser integrado para
controlar até 1 relé. O módulo é equipado com um relé de alta qualidade, com
carga nominal 10A/250VAC, 10A/125VAC, 10A/30VDC. Cada canal possui um
LED para indicar o estado da saída do relé.
83
Circuito
Depois, encaixe o Sensor LDR na protoboard, um dos terminais deve ser ligado
aos 5V e outro ao GND, a um resistor de 10KΩ e na Porta Analógica A0.
Um fio deve ser conectado a lâmpada e no contato COM do relé, outro na rede
elétrica.
Atenção: A lâmpada deve ficar o mais longe do sensor possível, caso contrário
ela ficará piscando sem parar. Caso você não tenha experiência com circuitos
elétricos, para evitar o risco de choques peça ajuda a uma pessoa
capacitada.
84
Circuito na Prática
85
Programação
int rele= 4; // Definindo que o Relé está na porta digital 4
if((valorsensor) < 300){ //Se o valor de valor do sensor for menor que 300
digitalWrite(rele, LOW);// O relé é acionado
} else { // Se não
86
Baixe o código do projeto Clicando Aqui!
87
15 Sensor de Som
Trimpot
88
Circuito
89
Circuito na Prática
90
Programação
int led = 3; // Definindo que o LED está na porta digital 3
int sensor = 2; // Definindo que o Sensor está na porta digital 2
91
Incrementando
Ao invés de utilizarmos o LED podemos fazer uma alteração no circuito e utilizar
uma lâmpada, para isso será necessário usar o Módulo Relé .
Circuito
O pino IN do relé deve ser conectado na Porta Digital 3, o pino GND no GND e
o pino VCC no 5V.
Um fio deve ser conectado a lâmpada e no contato COM do relé, outro na rede
elétrica.
Atenção: Caso você não tenha experiência com circuitos elétricos, para
evitar o risco de choques peça ajuda a uma pessoa capacitada.
92
Circuito na Prática
93
Programação
int rele = 3; // Definindo que o Relé está na porta digital 3
int sensor = 2; // Definindo que o Sensor está na porta digital 2
94
16 Sensor de Estacionamento
95
Buzzer
O Buzzer 5V é um componente para adicionar efeitos sonoros em projetos
eletrônicos como por exemplo, alarmes, sistemas de sinalização, jogos,
brinquedos, etc. O Buzzer do tipo Ativo contém um circuito oscilador embutido,
dessa forma basta você energizar o componente para que o mesmo comece a
emitir som.
Circuito
96
Primeiro é necessário alimentar a protoboard com o GND e o 5V do Arduino.
97
Circuito na Prática
98
Programação
Para conseguirmos programar nosso sensor, é necessário adicionarmos a
biblioteca “Ultrasonic.h”, você pode baixá-la Clicando Aqui.
int ledVerde = 2;
int ledAmarelo = 3;
int ledVermelho =4;
int buzzer = 5;
// Variáveis de controle
long microsec = 0;
float distanciaCM = 0;
void setup() {
pinMode(ledVerde,OUTPUT);
pinMode(ledAmarelo,OUTPUT);
pinMode(ledVermelho,OUTPUT);
pinMode(buzzer,OUTPUT);
}
99
// convertendo a distância para centímetros
ledDistancia();
// unidade de medida
Serial.println(" cm");
delay(500);
}
void ledDistancia() {
100
// se a distância for menor que 10cm
101
17 Monitoramento de Temperatura
LM35
O Sensor de Temperatura LM35DZ pode ser uma ótima opção se você busca
precisão, além de ter uma fácil comunicação com microcontroladores como o
Arduino. Esse sensor é muito usado para projetos de automação residencial ou
até mesmo industrial, ele possui faixa de leitura de 0°C a 100°C.
Pinagem
102
Circuito
103
Circuito na Prática
104
Float
Essa função é um tipo de dado para números de ponto flutuante, ou seja, um
número racional.
Programação
// Incluindo bibliotecas necessárias
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
void loop(){
lcd.setCursor(6,0);
lcd.print(temperatura); // imprime na tela o valor da temperatura
105
lcd.setCursor(0,0);
lcd.print("TEMP:"); // imprime o texto
lcd.setCursor(11,0);
Sugestões
Nesse projeto você também pode adicionar o Relé e incluir no código a função if
e else para que se a temperatura ficar muito alta, uma ventoinha ou ventilador
seja ativado.
106
18 Finalização
107
E-book Robótica
Venha aprender robótica com a gente! Com o Kit Arduino Robôs e o noso E-
book Robótica para Iniciantes você irá aprender sobre Arduino, eletrônica,
física, programação e robótica! Bora lá?
108
E-book IoT
Venha aprender sobre Internet das Coisas com a gente! Com o Kit Internet das
Coisas e o nosso E-book você irá aprender sobre NodeMCU, eletrônica, física,
programação e projetos mais avançados! Bora lá?
Quer receber uma notificação no seu celular quando começar a chover? Quer
irrigar o seu jardim de forma automática quando o solo estiver seco? Quer
acender lâmpadas ou ligar eletrodomésticos com o seu celular? Então adquira o
Kit e baixe o E-Book e tenha sua casa dentro do seu celular!
109
Quem escreveu o E-book ?
Rangel Gabriel
E-mail: rangelarena@gmail.com
Arduino Omêga
A Arduino Omega é uma loja virtual sediada em
BH/MG, especializada em Arduino e componentes
eletrônicos.
Temos a missão de promover transformação
cultural e social através da educação, inserindo o
maior número possível de pessoas no movimento
maker, levando acesso a tecnologia para todos os
interessados, e mostrando que é possível
desenvolver suas ideais através da tecnologia.
Redes Sociais:
110
Referências
Tensão:
https://www.mundodaeletrica.com.br/tensao-eletrica-x-voltagem/ - acesso em
16/06/2021.
Corrente:
https://mundoeducacao.uol.com.br/fisica/corrente-eletrica.htm - acesso em
16/06/2021.
https://brasilescola.uol.com.br/fisica/corrente-eletrica.htm - acesso em
16/06/2021.
https://www.mundodaeletrica.com.br/o-que-e-corrente-eletrica/ - acesso em
16/06/2021.
LED:
https://athoselectronics.com/o-que-e-led-diodo-emissor-
luz/#:~:text=O%20LED%20%C3%A9%20um%20Diodo,energia%20el%C3%A9tri
ca%20em%20energia%20luminosa.&text=Como%20se%20trata%20de%20um,c
orrente%20el%C3%A9trica%20em%20um%20sentido. - acesso em 25/06/2021.
Resistores:
https://brasilescola.uol.com.br/fisica/resistores.htm#:~:text=Resistores%20s%C3
%A3o%20dispositivos%20usados%20para,esses%20s%C3%A3o%20conhecido
s%20como%20diel%C3%A9tricos. - acesso em 25/06/2021.
111
Resistência Elétrica:
https://brasilescola.uol.com.br/o-que-e/fisica/o-que-e-resistencia-eletrica.htm -
acesso em 31/08/2021.
Sensor Ultrassônico:
https://balluffbrasil.com.br/sensor-ultrassonico-como-ele-funciona-e-de-que-
modo-pode-ajudar-a-sua-industria/ - acesso em 23/06/2021.
112