0% acharam este documento útil (0 voto)
21 visualizações33 páginas

Comandos e Periféricos no Arduino

Nativos do Futuro módulo 4.

Enviado por

williamrocha
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
21 visualizações33 páginas

Comandos e Periféricos no Arduino

Nativos do Futuro módulo 4.

Enviado por

williamrocha
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

ARDUINO,

o valioso amigo da tecnologia

Módulo 4
Conhecendo mais comandos
e periféricos
ARDUINO, O VALIOSO AMIGO DA TECNOLOGIA
Módulo 4 - Conhecendo mais comandos e periféricos
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 3

APRESENTAÇÃO
Olá, seja bem-vindo (a) ao Módulo 4 – Conhecendo mais comandos e periféricos!

Neste módulo, serão abordados novos periféricos, ou seja, dispositivos que recebem ou enviam
informações para o computador. Além disso, serão apresentadas novas lógicas de programação,
novos recursos e comandos de código.

Seguem alguns tópicos do que será apresentado:

• Botão Push-Button; • Comandos analogRead() e digitalRead();


• Buzzer; • Estrutura condicional;
• Sensor de luminosidade LDR; • Operadores lógicos;
• LED RGB; • Variáveis, millis() e Porta Serial.
• Potenciômetro;

Ao final dos principais temas, haverá uma atividade de fixação do conteúdo abordado.
O Vídeo 1 apresenta o Módulo 4.

Vídeo 1 - Abertura

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 4

s
by
SUMÁRIO
• Apresentação3
• Botão push-button 6
• Buzzer8
• Sensor de Luminosidade (LDR)8
• LED RGB9
• Potenciômetro10
• Comandos analogRead() e digitalRead() 10
• Quiz 1 12
• Estrutura condicional 14
• Quiz 2 19
• Operadores lógicos 20
• Variáveis, millis() e porta serial 23
• Conclusão do módulo 30
• Gabarito dos quizzes 31
• Referências bibliográficas 32

s
Engenharia e Tecnologia by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 6

BOTÃO PUSH-BUTTON
O push-button ou botão de pressão elétrico, visto na Figura 1, é um tipo de sensor digital,
e isso significa dizer que as informações enviadas por ele ao Arduino se basearão em duas
alternativas: nível lógico baixo ou nível lógico alto.

Figura 1 - Botão Push-Button.

Esse periférico possui o mesmo funcionamento elétrico que o interruptor, o qual é utilizado
para acender uma lâmpada em casa, ou seja, há a opção de fazer com que o circuito seja fechado
ou aberto, acendendo ou apagando a lâmpada.

Muitas vezes, o push-button inclui um mecanismo para que volte ao estado de repouso quando
liberado. Esse tipo de botão, quando no seu estado de repouso, pode ter os seus contatos abertos
- designado por NA (normalmente aberto), ou pode ter os seus contatos fechados, designado por
NF (normalmente fechado). Por vezes, a nomenclatura usa NO e NC do inglês normally open e
normally closed. Veja, na Figura 2, a representação desses botões.

Figura 2 - Botão normalmente aberto e normalmente fechado.

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 7

Mas, como utilizá-los?

Para fazer a montagem do botão na protoboard, precisa-se do auxílio de um resistor, pois o


botão é um componente muito sensível, e para que ele funcione perfeitamente é necessário
fazer com que a sua tensão seja menor do que a saída proporcionada pelo Arduino, e o resistor
é o responsável por “sumir” com essa tensão que sobrará, através da divisão de tensão. Veja um
exemplo de montagem na Figura 3:

Figura 3 - Montagem do botão.

Repare que para essa montagem utilizou-se um resistor de 1k[Ω]. Isso quer dizer que o circuito
não trabalha mais com a tensão de 5[V] e assim funciona perfeitamente.

Siga em frente!

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 8

BUZZER
O buzzer ou beeper, mostrado na Figura 4, é um dispositivo de sinalização de áudio, podendo
ser mecânico, eletromecânico ou piezoelétrico. Os buzzers têm maior uso em dispositivos de
alarme, temporizadores e confirmação de entrada do usuário, como um clique do mouse ou
pressionamento de tecla.

Figura 4 - Buzzer.

Siga em frente!

SENSOR DE LUMINOSIDADE (LDR)


Também conhecido como fotorresistor, o LDR (Light Dependent Resistor), que pode ser visto
na Figura 5, é um tipo de resistor que varia sua resistência, conforme a intensidade da luz.

O LDR é um componente eletrônico passivo, possui apenas dois terminais e não tem polaridade
definida. Existem fotorresistores mais sensíveis à luz visível sendo esses os mais comuns, porém
existem LDRs com maior excitabilidade à luz infravermelha.

Figura 5 - LDR ou fotorresistor.

Siga em frente!

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 9

LED RGB
Ao invés de se utilizar diversos LEDs de cores diferentes dentro de um projeto, existe a opção
de operar essa função com apenas um único componente, o qual retém as cores vermelha - red,
verde - green e azul - blue dentro de si e permite combiná-las.

Esse periférico é chamado de LED RGB, mostrado na Figura 6, o qual possui os seguintes terminais:
ânodo (positivo) ou cátodo (negativo) comum, e os outros três correspondem aos LEDs vermelho,
verde e azul, dentro da lâmpada.

Figura 6 - LED RGB.

Dentro do código, será utilizado o comando analogWrite para definir quais os valores de vermelho,
verde e azul serão acionados, gerando assim uma cor a ser irradiada. Por exemplo, um valor
RGB (255, 0, 0) é vermelho puro, enquanto um valor (0, 255, 0) é verde puro e (0, 0, 255), azul puro.
Misturando esses valores, é possível obter todas as cores.

Para mais informações sobre as gamas de cores que podem ser obtidas, consulte o link:
[Link]

Siga em frente!

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 10

POTENCIÔMETRO
O potenciômetro, mostrado na Figura 7, é um resistor ajustável com um alcance que vai de zero
a um valor definido (informado no próprio componente), podendo ser de 10KΩ, 20KΩ , 100KΩ,
entre outros.

Esse componente tem três terminais. Conectando apenas dois, ele se torna um resistor variável.
Conectando os três e aplicando uma voltagem, o potenciômetro se torna um divisor de tensão.

Figura 7 - Potenciômetro.

Siga em frente!

COMANDOS ANALOGREAD() E
DIGITALREAD()
Seguem agora dois comandos de código responsáveis por ler informações provenientes
dos periféricos:

analogRead(): Faz a leitura de um pino analógico, o qual pode ter sua intensidade variada.

A sua estrutura é:

analogRead(pino),

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 11

Onde está escrito “pino” significa que é a pinagem em que o dispositivo se encontra conectado.

Por exemplo, supondo que se queira ler a intensidade de resposta de um sensor que se encontre
no pino 3. Ficaria assim:

analogRead(3);

Todas as vezes que se utiliza esse comando, ele ‘contará’ ao Arduino qual o valor que o
dispositivo conectado ao pino 3 está lendo. Supondo então que neste pino esteja ligado o sensor
de luminosidade e que depois de um tempo esse sensor capta o valor 500. Em palavras gerais,
ele irá dizer ao Arduino o seguinte: “Arduino, o valor do ambiente aqui está dando 500” e com
base nesse dado, o Arduino tomará providências, ou seja, provocará determinadas manipulações.

Mas, como ele faz isso?

Como padrão, será adotado que um valor acima de 500 equivale a um ambiente escuro e que
abaixo, ele é claro. Agora, para que o Arduino saiba dessa informação, é necessário contar a ele.
E pode-se fazer isso de várias maneiras. Neste momento, será usada uma estrutura condicional
chamada de if.

Mas antes disso, outro comando será apresentado, chamado digitalRead, o qual é responsável
por fazer leituras digitais, como o próprio nome sugere. Em outras palavras, ele dirá se um botão,
por exemplo, está ligado ou desligado. O que significa que esse comando sempre retornará para
o programa em um estado baixo (LOW) ou alto (HIGH).

A sua sintaxe é representada por:

digitalRead(pino);

Onde: “pino” corresponde ao número do pino que o dispositivo a ser lido está ligado.

Siga em frente!

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 12

QUIZ 1
Chegou a hora de fazer um pequeno teste para avaliar o que você aprendeu.
Responda as questões abaixo e confira as respostas corretas.

Este questionário não é avaliativo, mas sim para fixação do conteúdo.

01/05
Em qual das opções o botão está ligado corretamente ao pino 9 do Arduino?

a. ( ) b. ( ) c. ( ) d. ( )

02/05
O botão push-button, quando no seu estado de repouso, pode ter os seus contatos...
a. ( ) Somente contatos abertos - designado por NA (normalmente aberto).
b. ( ) Abertos - designado por NA (normalmente aberto) - ou pode ter os seus contatos
fechados - designado por NF (normalmente fechado).
c. ( ) Somente contatos fechados - designado por NF (normalmente fechado).
d. ( ) Abertos - designado por NF - ou pode ter os seus contatos fechados - designado por NA.

03/05
A estrutura que faz a leitura de um pino analógico (que pode ter sua intensidade variada),
é:
a. ( ) digitalRead(pin) b. ( ) analogWrite(pin)
c. ( ) digitalWrite(pin) c. ( ) analogRead(pin)

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 13

04/05
Responsável por fazer leituras digitais. Ele nos dirá se um botão, por exemplo, está ligado
ou desligado. O que significa que esse comando, sempre retornará para o programa um
estado baixo (LOW) ou alto (HIGH).
a. ( ) analogRead(pin) b. ( ) analogWrite(pin)
c. ( ) digitalRead(pin) d. ( ) digitalWrite(pin)

05/05
O digitalRead e o analogRead normalmente estão acoplados a alguma condição.
Qual seria essa condição?
a. ( ) void loop b. ( ) If
c. ( ) void setup d. ( ) #define

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 14

ESTRUTURA CONDICIONAL
if (Se)
Como o próprio nome sugere, o objetivo do if é dar uma condição ao Arduino, e baseada nessa
condição, tomar as decisões que lhe forem mais pertinentes.

Assim, uma estrutura condicional faz comparações entre informações, e essa comparação
é denominada de condição. Por conta disso, é necessário ter em mãos os dados a serem conferidos.
Por exemplo, caso se deseje realizar uma comparação entre as notas dos alunos A e B, é essencial que
se conheça ambas as pontuações a fim de realizar um contraste entre elas, sendo possível chegar
a alguma conclusão.

Após fazer a comparação, concluiu-se que a nota do aluno A foi superior à nota do aluno B, e
por isso, o primeiro aluno resolveu ajudar o segundo a estudar. Então, a comparação das notas
(condição) levará a uma tomada de decisão (ações).

Neste momento, há três informações, dois dados e uma ação:


• Nota do aluno A;
• Nota do aluno B;
• Oferecer ajuda.

A estrutura condicional exige que esses dois dados sejam comparados para, posteriormente,
uma ação ser executada. Para fazer isso, usa-se as palavras “Se” e “Então”. Ou seja:

Se a “Nota do aluno A” for maior que a “a nota do aluno B”, então A vai “Oferecer ajuda” a B.

Antes de escrever o código em si, segue na Figura 8, um modelo de pseudocódigo, o qual


possibilita escrever um determinado programa em uma linguagem simples para que qualquer
pessoa possa compreender.

Figura 8 - Modelo de pseudocódigo.

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 15

else (Senão)
A estrutura else é bem simples e de fácil entendimento. Enquanto o if pode ser trocado pela
expressão “SE”, por sua vez, o else será o mesmo que “SENÃO”. A sua principal função é se opor
à condição do if.

Por exemplo, um determinado exercício pede que quando o dia estiver chuvoso, Maria abra
a sombrinha. Caso contrário, ela deverá estar fechada.

Esboçando a ideia em um pseudocódigo, na Figura 9:

Figura 9 - Pseudocódigo utilizando apenas a estrutura “se”.

Repare que o if é usado tanto para estabelecer uma condição, quanto para realizar uma outra
que se oponha à primeira. Esta metodologia está longe de estar errada. Porém, existe uma forma
mais simples de se fazer essa oposição. Utilizando o else neste pseudocódigo, ele ficará da seguinte
maneira, conforme a Figura 10:

Figura 10 - Pseudocódigo utilizando as estruturas "se" e "senão".

Repare como a estrutura se torna mais simples e direta. Cumpriu-se o mesmo objetivo com
um número menor de linhas.

Agora veja este outro exemplo.

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 16

“Na escola ‘Arduino - O valioso amigo da tecnologia’ a média final do curso de engenharia pode
variar entre 0 a 100 pontos. Vale ressaltar que, para que um aluno seja aprovado, é necessário
que a sua nota final seja igual ou superior a 60. Caso contrário, o aluno estará automaticamente
reprovado. Baseado nesses dados, faça um pseudocódigo que contemple essas condições.”

A solução do problema está representada na Figura 11:

Figura 11 - Resolução do exercício em pseudocódigo.

Mas, e se fosse necessário transformar esse pseudocódigo em código? Como faria? Para isso
são necessárias algumas adaptações. Suponha que todas as vezes que o aluno for aprovado, um
LED será aceso. Quando ele for reprovado, um LED será apagado.

Antes de continuar, é necessário conhecer a sintaxe dessa estrutura de oposição.


Observe na Figura 12:

Figura 12 - Sintaxe do else.

Escreva a palavra else, abra ‘chaves’, coloque todas as ações que deseja realizar e posteriormente
feche as ‘chaves’. Assim, transformando o pseudocódigo em código, ele ficaria da seguinte forma,
como mostra a Figura 13:

Figura 13 - Exemplo de código com if/else.

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 17

Agora, imagine uma situação em que, ao invés de ter apenas uma condição e o seu oposto,
você tenha duas condições. E apenas se ambas não forem averiguadas como verdadeiras é que a
condição contraditória poderá acontecer. Veja o pseudocódigo da Figura 14. Isso poderá lhe ajudar.

Figura 14 - Pseudocódigo representando uma cadeia de condições.

No pseudocódigo exemplificado acima, existe a introdução de mais uma nova estrutura,


que é o ‘senão se’. Ele nega a condição anterior ao mesmo tempo em que apresenta outra possibilidade.
Ao invés de apenas negar como o else, ela oferece mais uma opção de averiguação. Neste caso
então, a ação que contempla a estrutura ‘else’ só acontecerá quando nem a ‘condição 1’ e nem a
‘condição 2’ forem satisfeitas.

E sua sintaxe pode ser vista na Figura 15:

Figura 15 - Sintaxe da estrutura else if.

Exemplo: Edgar faz parte da equipe de futebol, e ele percebeu que muitas pessoas possuem
dificuldade em saber em qual categoria se encaixa. Então, ele pediu para que você o ajude a criar
um pseudocódigo que auxilie as pessoas sobre essa questão. Leve em consideração as informações
a seguir.

• Menos de 13 anos e maior que 8: Infantil

• De 14 a 17 anos: Juvenil

• Acima de 17 anos e menores que 20: Adulto

• Se a idade não estiver presente nestas faixas: Categoria Premium

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 18

A solução do exemplo está representada na Figura 16:

Figura 16 - Resolução do exemplo em pseudocódigo.

Pense Rápido
Qual a diferença entre o else e o else if ?
Resposta: A grande diferença é que o else é uma oposição à condição anterior. Ou seja, quando a
averiguação da mesma é falsa, ela tende a executar as ações que estão dentro do else. Enquanto que o
else if, além de se opor à condição anterior, abre a possibilidade de se analisar outra condição.

Agora, todas as vezes que for necessário utilizar mais de uma condição dentro do if ou else if,
deve-se utilizar um recurso chamado de 'Operadores Lógicos'.

Os operadores que serão utilizados nesta unidade são: "AND" (ou "E") e "OR " (ou "OU ").

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 19

QUIZ 2
Chegou a hora de fazer um pequeno teste para avaliar o que você aprendeu.
Responda as questões abaixo e confira as respostas corretas.

Este questionário não é avaliativo, mas sim para fixação do conteúdo.

01/03
Uma estrutura condicional faz comparações entre ________. Essa comparação é
denominada
de ___________. Por conta disso, é necessário se ter em mãos _______.
a. ( ) Condição; informações; os dados a serem conferidos;
b. ( ) Os dados a serem conferidos; condição; informações;
c. ( ) Os dados a serem conferidos; informações; condição;
d. ( ) Informações; condição; os dados a serem conferidos;

02/03
O else é um:
a. ( ) Comando para definição de pinos. b. ( ) Sensor para medir distâncias.
c. ( ) Estrutura de oposição. d. ( ) Comando indispensável para iniciar o
Arduino.

03/03
Complete a tabela de forma correta:

a. ( ) > , < , >= , <= , == , !=


b. ( ) > , < , >= , <= , = , =!
c. ( ) > , < , >>, << , == , /=
d. ( ) < , >, <= , >= , == , !=

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 20

OPERADORES LÓGICOS
Operador AND
O operador “AND”, ou “E”, tem o objetivo principal de estabelecer uma relação de inclusão entre
dois elementos. Por exemplo, quando é dito: “Eu estou participando do treinamento em Arduino
e estou gostando”, tem-se uma relação de soma. Ambas as situações estão acontecendo.
Quando isso é colocado em uma estrutura de condição, as ações provocadas por essas informações
só acontecerão se ambas forem verdadeiras.

Na programação a sua simbologia é &&, ou então pode-se escrever a palavra and.

Por exemplo, veja o código da Figura 17:

Figura 17 - Sintaxe do operador lógico "and".

Nesse caso, o LED só será aceso se o sensor1 e o sensor2 lerem um “ambiente escuro”.
Se por acaso, o sensor1 ler um “ambiente claro” e o sensor2 ler um “ambiente escuro”,
ou se o sensor1 ler um “ambiente escuro” e o sensor2 ler um “ambiente claro”, o LED não se
acenderá. Para que a ação aconteça, é necessário que ambas as condições sejam atendidas.

Com isso, percebe-se o conteúdo da Tabela 1:

Tabela 1 - Tabela da verdade do operador lógico "and".

Sensor 1 Sensor 2 Sensor 3

Ambiente claro Ambiente claro Não acende

Ambiente claro Ambiente escuro Não acende

Ambiente escuro Ambiente claro Não acende

Ambiente escuro Ambiente escuro Acende

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 21

Pois bem, e se por acaso existirem dois sensores, mas se somente um deles ler “ambiente
escuro”, já for suficiente para acender o LED? Em programação, como faria isso acontecer?

Para responder essa pergunta, será apresentado o operador lógico “OR”.

Operador OR

O operador “OR”, ou “OU”, tem por objetivo principal estabelecer uma relação de independência.
Se apenas um dos elementos estiver atendendo a condição, então uma ação será realizada em
cima disso.

Na programação a sua simbologia é ||, ou pode-se escrever a palavra or.

Por exemplo, veja o código da Figura 18:

Figura 18 - Sintaxe do operador lógico "or".

Neste caso, o LED só não será aceso se o sensor1 e o sensor2 lerem “ambiente claro”.
Se por ventura, qualquer um dos dois lerem um “ambiente escuro”, então o LED deverá ser aceso.

Com isso são percebidas as condições da Tabela 2:

Tabela 2 - Tabela da verdade do operador lógico "or".

Sensor 1 Sensor 2 LED

Ambiente claro Ambiente claro Não acende

Ambiente claro Ambiente escuro Acende

Ambiente escuro Ambiente claro Acende

Ambiente escuro Ambiente escuro Acende

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 22

Agora perceba o seguinte: cada sensor tem separadamente duas opções de leitura de ambiente:
“ambiente claro” ou “ambiente escuro”. A junção desses dois sensores oferece quatro possibilidades
de leitura: “ambiente claro – ambiente claro”, “ambiente claro – ambiente escuro”, “ambiente escuro
– ambiente claro” e “ambiente escuro – ambiente escuro”.

Se por acaso, fosse adicionado mais um sensor, existiriam 8 condições de leitura: “ambiente claro
– ambiente claro – ambiente claro”, “ambiente claro – ambiente claro – ambiente escuro”, “ambiente
claro – ambiente escuro – ambiente claro”, “ambiente claro – ambiente escuro – ambiente escuro”,
“ambiente escuro – ambiente claro – ambiente claro”, “ambiente escuro – ambiente claro – ambiente
escuro”, “ambiente escuro – ambiente escuro – ambiente claro”, “ambiente escuro – ambiente escuro
– ambiente escuro”. Isso acontece porque todas as possibilidades de um sensor, se junta com todas as
possibilidades do outro sensor. Veja a Figura 19 utilizando apenas dois sensores.

Figura 19 - Possibilidades de leitura utilizando dois sensores.

Se for feito um agrupamento de todas as opções que se repetem, no fim, existirão apenas
quatro opções válidas. Veja na Figura 20.

Figura 20 - Simplificando a tabela.

Siga em frente!

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 23

VARIÁVEIS, MILLIS() E PORTA SERIAL


millis ()
O millis tem como função retornar a faixa de tempo desde que o Arduino foi ligado até ele
ser desligado. É válido ressaltar que o valor retornado é em milissegundos, ou seja, 5 segundos
equivalem a 5000, 1 segundo a 1000, ½ segundo a 500. Esse número chegará ao seu valor máximo
e será reiniciado em um tempo de 50 dias. Em palavras gerais, ele contabiliza o tempo em que um
programa começou a ser rodado, até 50 dias após.

A sua estrutura é: millis()

Em suma, todas as vezes que algo for acontecer, sendo condicionado a uma faixa de tempo,
o millis pode ser utilizado.

Pense Rápido
O que é o millis? Qual é sua diferença em relação ao delay ?
Resposta: O millis é o responsável por contabilizar o tempo que o Arduino foi ligado até ele ser desligado.
A grande diferença entre o millis e o delay, é que o delay provoca um congelamento na varredura do
código, enquanto que o millis executa uma contagem sem paralisação.

Variáveis (int)
Resumidamente, uma variável é um local em que se é possível armazenar dados, sendo eles
de diversos tipos, como int e float.

As variáveis do tipo int são pertencentes ao conjunto dos números inteiros, que é aquele
conjunto que combina números negativos e positivos, incluindo o zero. O conjunto Z, que é como
o conjunto dos números inteiros é comumente chamado, pode ser representado da seguinte
maneira: Z = [...,-2,-1,0,1,2,...].

Provavelmente, em programação, esse é o tipo de dado mais familiar. São extremamente úteis
para aplicações que trabalham com dados numéricos. O espaço de memória usado para fazer esse
armazenamento é de 2 bytes (16 bits).

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 24

Variáveis (float)
Esse tipo de variável representa números reais que contém uma vírgula (um ponto decimal),
tal como 3,141519, ou números muito grandes tais como 1.85x1015. Os pontos flutuantes podem
ser divididos em dois tipos: float ou double.

Float: de -3.4 x 1038 até + 3.4 x 1038 com até 6 dígitos de precisão.

Double: de -1.7 x 10308 com até 10 dígitos de precisão.

Todas as vezes que utilizar alguma variável, tem-se por padrão, declará-las. Não é permitido usar
uma variável, seja ela de qualquer tipo, sem antes estar devidamente declarada. Esta declaração
pode ser feita em qualquer um dos blocos da sketch, ou seja, poderá ser declarada no void setup,
no void loop ou ainda na mesma região em que se utiliza o define.

Para fazer a declaração, utiliza-se a seguinte estrutura:

<tipo_de_dado><nome_variável>;

Onde:

<tipo_de_dado>: equivale se ela será do tipo int ou do tipo float;

<nome_variável>: nome que se quer dar a variável.

Mas repare no seguinte: as variáveis leitura_sensor1 e leitura_sensor2 são do mesmo tipo.


Quando isso acontece é possível otimizar a sua declaração, usando a estrutura:

<tipo_dado><nome_var1>,<nome_var2>,...<nome_varN>;

Ou seja, seguindo ainda o mesmo exemplo, ficaria:

float leitura_sensor1, leitura_sensor2;

Até o momento, viu-se o que é uma variável e como fazer a sua declaração. Mas no caso do
exemplo anterior, para usar a variável, é interessante colocar o valor da leitura dos sensores dentro
dela, para que assim ela possa armazená-lo. Para fazer isso, é necessário seguir a estrutura:

<nom_var>=<valor>;

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 25

Onde:

<nom_var>: equivale a variável que armazenará o valor;

=: corresponde a atribuição do valor a variável;

<valor>:o valor que se deseja armazenar.

Seguindo o exemplo anterior, ficaria:

leitura_sensor1 = analogRead(sensor1);

leitura_sensor2 = analogRead(sensor2);

Variáveis Locais e Globais


Todas as vezes que for feita uma declaração de variável dentro e somente do void setup ou
dentro e somente do void loop, significa que foi criada uma variável local. Isso é o mesmo que
dizer que se ela está declarada no void setup, o void loop não saberá que ela existe, e vice-versa.
Na Figura 21, pode-se observar a declaração de uma variável local.

Figura 21 - Declaração de uma variável local.

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 26

Ou seja, variáveis locais são aquelas variáveis que só são visíveis por trechos de códigos
específicos.

As variáveis globais são aquelas que são declaradas em um só local e podem ser manipuladas
tanto no void setup quanto no void loop. Esse tipo de variável é comumente declarado na mesma
região em que se coloca o define, ou seja, em um trecho de código acima do void setup, como
visto na Figura 22.

Figura 22 - Declaração de uma variável global.

Porta Serial
Na plataforma Arduino, existe uma ferramenta que possibilita a comunicação entre a sua
placa e um dispositivo externo, seja ele um computador, um módulo de GPS ou algum outro que
lhe for conveniente. Esta ferramenta é a comunicação serial. Ela é a responsável, por exemplo,
por transferir o código escrito na IDE do Arduino para a sua placa.

No Arduino Uno, existe um canal de comunicação por hardware, ou seja, pinos dedicados a
isso, e também um terminal. Esse terminal permite o envio de dados para a placa sem que seja
necessário recorrer a alguma ferramenta externa. Para ter acesso a esse terminal, basta que em
‘Ferramentas’ escolha a opção ‘Monitor Serial’, ou que clique no símbolo de lupa que se encontra
no canto superior direito da IDE, conforme mostrado na Figura 23.

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 27

Figura 23 - Formas de abrir o Monitor Serial.

Ao fazer um desses procedimentos, será aberta uma tela semelhante à que pode ser observada
na Figura 24.

Figura 24 - Monitor Serial aberto.

Esse monitor, pode ser utilizado para se obter a leitura dos periféricos de entrada.

Para se utilizar o terminal de forma adequada, é necessário inserir alguns comandos no código.

O primeiro deles será a função [Link]().

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 28

O [Link]() é uma função que tem como objetivo principal estipular a taxa de velocidade
que a porta serial fará a comunicação com o computador. Essa configuração é definida em bits
por segundo (baud rate).

A sua sintaxe é:

[Link](speed);

Onde speed corresponde à taxa de velocidade em baud rate.

Será utilizado o valor 9600, logo, todas as vezes que utilizar o [Link](), ele deverá ficar
da seguinte forma:

[Link](9600);

Essa é uma função que está configurando a taxa de velocidade do monitor serial. Logo essa
função será colocada dentro do void setup.

O segundo comando a ser utilizado é o [Link], que tem como objetivo principal escrever
alguma informação na tela do computador, através do terminal serial.

Esse comando tem como intuito escrever no monitor serial, textos em formato ASCII. Para isso,
basta que se siga a estrutura:

[Link]();

Por exemplo, se deseja escrever no terminal o número 27 e a frase “Estamos na semifinal”.


Isso deverá ser feito da seguinte forma:

[Link](27);

[Link](“Estamos na semifinal”);

Para escrever um número basta colocá-lo dentro do parêntese, que segue o escrito Serial.
print. Mas, para escrever um caractere ou uma frase, estes devem ser acompanhados por aspas
duplas. Para escrever o valor de uma variável, basta que dentro do parêntese, seja colocado o
nome dessa variável.

Caso as linhas de código citadas acima sejam executadas, no monitor serial deverá aparecer
o conteúdo da Figura 25:

Figura 25 - Monitor Serial printando mensagens.

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 29

Caso deseje pular uma linha para organizar melhor a escrita, basta que use o comando Serial.
println().

Esse comando tem o mesmo objetivo que o [Link](), com a diferença que desta vez quebra-
se uma linha para cada comando de escrita enviado, conforme apresentado na Figura 26:

Figura 26 - Monitor Serial printando mensagens em linhas diferentes.

Siga em frente!

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 30

CONCLUSÃO DO MÓDULO
Foram apresentados neste módulo alguns dos principais periféricos básicos utilizados em
projetos envolvendo o Arduino, bem como outros comandos e recursos de código importantes
para colocar em prática tudo o que já foi visto.

Agora que se criou uma boa base teórica, chegou o momento de colocar isso em prática.

O próximo módulo não trará nenhum conceito teórico novo, apenas propostas de projetos
para serem executados.

No Vídeo 2 se encontra o encerramento do módulo.

Vídeo 2 - Revisão

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 31

GABARITO DOS QUIZZES

Quiz 1

Questão Alternativa

1 a

2 b

3 d

4 b

5 c

Quiz 2

Questão Alternativa

1 b

2 c

3 a

s
by
Ebook _ Módulo 4 - Conhecendo mais comandos e periféricos 32

REFERÊNCIAS BIBLIOGRÁFICAS
MCROBERTS, Michael. Arduino básico. São Paulo, SP: Novatec, 2011.

EVANS, Martin. Arduino em ação. Joshua Noble, Jordan Hochenbaum. São Paulo, SP: Novatec,
2013.

GEDDES, Mark. Manual de projetos em Arduino. São Paulo, SP: Novatec, 2017. Comunidade oficial
do Arduino, com experimentos e tituriais online. Disponível em [Link]

Documentário sobre o Arduino. Disponível em [Link]

KIT MAKERS – “O que é um potenciômetro?”. Mauá, SP. Disponível em: [Link]


[Link]/cmp/[Link]

s
by
s
Engenharia e Tecnologia by

Você também pode gostar